Initial SFERA platform baseline
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# Codex Instructions for SFERA
|
||||
|
||||
Ты реализуешь SFERA по шагам. Не перескакивай к AI и UI, пока не работает semantic core.
|
||||
|
||||
## Абсолютные правила
|
||||
|
||||
1. Не писать autonomous code generation до готового SIR + parser + graph.
|
||||
2. Каждый parser bug превращать в golden fixture.
|
||||
3. Не писать напрямую в Neo4j вне `projection-engine`.
|
||||
4. Все изменения в будущем должны быть связаны с task/session/user, но в Phase 1 можно оставить placeholders.
|
||||
5. Русский UI и команды по умолчанию, но должен быть выбор английского интерфейса/команд; internal models — English.
|
||||
6. BSL parser обязан поддерживать смешанный русский/английский синтаксис 1С в одном тексте.
|
||||
7. Любые integration/security/agent слои делать только после core.
|
||||
|
||||
## Test stand and workspace
|
||||
|
||||
- Тестирование интегрированного проекта проводить на `docker-test` / `test-docker`, а не на локальном Docker Engine.
|
||||
- На `docker-test` разворачивать обе части: backend/server services и frontend.
|
||||
- Docker endpoint: `ssh://test-docker`.
|
||||
- Host: `docker-test.cin.su` (`192.168.200.61`), SSH user: `test`.
|
||||
- Portainer: `http://docker-test.cin.su:9000/`, user `admin`; пароль не сохранять в репозитории и проектных файлах.
|
||||
- Локальный рабочий путь проекта: `Z:\codex\SFERA`.
|
||||
- `Z:\codex\SFERA` — подмонтированная сетевая папка `\\nas\MST\codex\SFERA`.
|
||||
- Для Windows/npm/frontend команд использовать `Z:\codex\SFERA`, не UNC current directory.
|
||||
|
||||
## Frontend contract
|
||||
|
||||
Перед любым изменением frontend:
|
||||
|
||||
1. Прочитать `docs/frontend/SFERA_FRONTEND_PRODUCT_CONTRACT.md`.
|
||||
2. Прочитать `docs/frontend/SFERA_IDE_UI_CONTRACT.md`.
|
||||
3. Если меняется дерево 1С - прочитать `docs/frontend/SFERA_METADATA_TREE_CONTRACT.md`.
|
||||
4. Если меняются настройки проекта - прочитать `docs/frontend/SFERA_PROJECT_SETTINGS_CONTRACT.md`.
|
||||
5. Если контракт устарел - сначала обновить контракт, затем код.
|
||||
6. Все UI-изменения фиксировать в `docs/frontend/SFERA_FRONTEND_CHANGELOG.md`.
|
||||
|
||||
Не ломать принятую модель: SFERA = metadata-first semantic configurator for 1C, основной экран = IDE последнего проекта, проект выбирается сверху, левая панель = дерево текущего проекта, основная конфигурация и расширения = configuration-like roots одного уровня, центр = рабочая область, правая панель = контекстные свойства, низ = открытые объекты, tools и status.
|
||||
|
||||
Для 1C-specific поведения использовать official 1C docs через ITS/v8.1c.ru/1C DN или локальные knowledge packs. ITS credentials брать только из `.env.local`; реальные credentials не коммитить, не писать в markdown/Dockerfile и не выводить в logs.
|
||||
|
||||
## Текущий приоритет
|
||||
|
||||
Реализовать Phase 1:
|
||||
|
||||
```text
|
||||
packages/sir
|
||||
rust/crates/bsl-parser
|
||||
packages/semantic-kernel
|
||||
packages/projection-engine
|
||||
packages/incremental-indexer
|
||||
```
|
||||
|
||||
## Стиль кода
|
||||
|
||||
- Python 3.12+.
|
||||
- Pydantic v2.
|
||||
- Async где есть IO.
|
||||
- Rust parser сначала простой и детерминированный.
|
||||
- Тесты обязательны.
|
||||
- Минимальная магия.
|
||||
|
||||
## Definition of Done Phase 1
|
||||
|
||||
```text
|
||||
1. BSL procedures extracted.
|
||||
2. Calls extracted.
|
||||
3. Queries extracted.
|
||||
4. Writes extracted.
|
||||
5. SIR snapshot validates.
|
||||
6. Neo4j projection works.
|
||||
7. Incremental update works on changed file.
|
||||
```
|
||||
Reference in New Issue
Block a user