4.1 KiB
Codex Instructions for SFERA
Ты реализуешь SFERA по шагам. Не перескакивай к AI и UI, пока не работает semantic core.
Абсолютные правила
- Не писать autonomous code generation до готового SIR + parser + graph.
- Каждый parser bug превращать в golden fixture.
- Не писать напрямую в Neo4j вне
projection-engine. - Все изменения в будущем должны быть связаны с task/session/user, но в Phase 1 можно оставить placeholders.
- Русский UI и команды по умолчанию, но должен быть выбор английского интерфейса/команд; internal models — English.
- BSL parser обязан поддерживать смешанный русский/английский синтаксис 1С в одном тексте.
- Любые 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/, useradmin; пароль не сохранять в репозитории и проектных файлах. - Локальный рабочий путь проекта:
Z:\codex\SFERA. Z:\codex\SFERA— подмонтированная сетевая папка\\nas\MST\codex\SFERA.- Для Windows/npm/frontend команд использовать
Z:\codex\SFERA, не UNC current directory.
Frontend contract
Перед любым изменением frontend:
- Прочитать
docs/frontend/SFERA_FRONTEND_PRODUCT_CONTRACT.md. - Прочитать
docs/frontend/SFERA_IDE_UI_CONTRACT.md. - Если меняется дерево 1С - прочитать
docs/frontend/SFERA_METADATA_TREE_CONTRACT.md. - Если меняются настройки проекта - прочитать
docs/frontend/SFERA_PROJECT_SETTINGS_CONTRACT.md. - Если контракт устарел - сначала обновить контракт, затем код.
- Все 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:
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
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.