Initial SFERA platform baseline

This commit is contained in:
2026-05-16 19:03:49 +03:00
commit 3b845c8fce
282 changed files with 55045 additions and 0 deletions
+72
View File
@@ -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.
```