Initial SFERA platform baseline
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# SPRINT 1 — SIR Core
|
||||
|
||||
## Цель
|
||||
|
||||
Создать `packages/sir`.
|
||||
|
||||
## Files
|
||||
|
||||
- `enums.py`
|
||||
- `source_ref.py`
|
||||
- `lineage.py`
|
||||
- `nodes.py`
|
||||
- `edges.py`
|
||||
- `diagnostics.py`
|
||||
- `references.py`
|
||||
- `snapshot.py`
|
||||
- `delta.py`
|
||||
- `validation.py`
|
||||
- `serialization.py`
|
||||
- `hashing.py`
|
||||
|
||||
## DoD
|
||||
|
||||
```bash
|
||||
pytest packages/sir/tests
|
||||
```
|
||||
|
||||
Должно проходить:
|
||||
|
||||
- snapshot validation ok;
|
||||
- dangling edge detected;
|
||||
- serialization roundtrip;
|
||||
- snapshot hash deterministic;
|
||||
- diagnostics/unresolved references serializable.
|
||||
@@ -0,0 +1,27 @@
|
||||
# SPRINT 2 — Rust BSL Parser MVP
|
||||
|
||||
## Цель
|
||||
|
||||
`rust/crates/bsl-parser` должен возвращать `ParsedSemanticUnit`:
|
||||
|
||||
- procedures;
|
||||
- functions;
|
||||
- calls;
|
||||
- queries;
|
||||
- query tables;
|
||||
- writes;
|
||||
- diagnostics.
|
||||
|
||||
## Важное
|
||||
|
||||
Поддержать RU/EN keywords.
|
||||
|
||||
## MVP ограничение
|
||||
|
||||
Можно начать с deterministic line-based parser. Позже заменить на полноценный lexer/parser.
|
||||
|
||||
## DoD
|
||||
|
||||
```bash
|
||||
cd rust && cargo test
|
||||
```
|
||||
@@ -0,0 +1,27 @@
|
||||
# SPRINT 3 — Semantic Kernel
|
||||
|
||||
## Цель
|
||||
|
||||
`packages/semantic-kernel` конвертирует parsed result в SIR snapshot.
|
||||
|
||||
## Вход
|
||||
|
||||
`.bsl` файлы.
|
||||
|
||||
## Выход
|
||||
|
||||
`SirSnapshot` с nodes/edges:
|
||||
|
||||
- MODULE;
|
||||
- PROCEDURE/FUNCTION;
|
||||
- QUERY;
|
||||
- TABLE/REGISTER;
|
||||
- DECLARES;
|
||||
- CALLS;
|
||||
- OWNS_QUERY;
|
||||
- READS_TABLE;
|
||||
- WRITES.
|
||||
|
||||
## DoD
|
||||
|
||||
`index_project(path)` возвращает валидный snapshot.
|
||||
@@ -0,0 +1,17 @@
|
||||
# SPRINT 4 — Neo4j Projection
|
||||
|
||||
## Цель
|
||||
|
||||
`SirSnapshot → Neo4j graph`.
|
||||
|
||||
## Queries
|
||||
|
||||
- find procedures;
|
||||
- find callers;
|
||||
- find callees;
|
||||
- find query tables;
|
||||
- find writes.
|
||||
|
||||
## Rule
|
||||
|
||||
Only `projection-engine` can mutate Neo4j.
|
||||
@@ -0,0 +1,13 @@
|
||||
# SPRINT 5 — Incremental Indexer
|
||||
|
||||
## Цель
|
||||
|
||||
Изменился один `.bsl` файл — пересобираем только fragment и применяем delta.
|
||||
|
||||
## Components
|
||||
|
||||
- source hash;
|
||||
- change detector;
|
||||
- SirDelta builder;
|
||||
- snapshot transition;
|
||||
- projection delta.
|
||||
Reference in New Issue
Block a user