73 lines
4.1 KiB
Markdown
73 lines
4.1 KiB
Markdown
# 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.
|
|
```
|