Правка пользователя из рабочего дерева main перенесена в ветку среза без изменений. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
7.6 KiB
KICKOFF-PROMPT — первое сообщение агенту в workspace
Запускать claude из корня workspace (~/work/arm-ka/), когда выполнен чек-лист в конце файла.
Ты начинаешь разработку АРМ КА с нуля в workspace из нескольких git-репозиториев (docs/, fixtures/, arm-core/,
tabular-parser/, scan-gateway/). Прочитай в таком порядке и не пиши код, пока не закончишь:
CLAUDE.md(workspace) иdocs/context/00-workspace-layout.md— как устроена рабочая область, статус аналитики, макет.docs/context/01-project-overview.md,02-glossary.md— предметная область.docs/context/03-architecture.md,04-data-model-guide.md, затем весьdocs/model/data-model-v5.13.dbmlиdocs/model/entities-v5.13.md.docs/context/05-domain-rules.md— алгоритмы (особенно §1.0 и §12 — парсеры ищут структуру по содержимому);06-test-data.md;07-open-questions.md;10-user-journey.md;09-delivery-plan.md.arm-core/,tabular-parser/,scan-gateway/— три репозитория, развёрнутые из нулевого коммита шаблона команды, и ихCLAUDE.md. Выясни соглашения шаблона: структура, DI, ORM/миграции, тесты, линтеры, сборка, фронт.docs/mockup/INDEX.md— индекс макета. HTML-файлы макета не читай подряд; открывай один экран, только когда он нужен для задачи.
Затем сделай четыре вещи и остановись для ревью:
A. Дополни docs/context/03-architecture.md разделом «Соглашения шаблона» и заполни секции «Соглашения шаблона» в
CLAUDE.md каждого из трёх репозиториев. Не переделывай шаблон под документ — наоборот. Зафиксируй, что вырезано из
шаблона в tabular-parser и scan-gateway (фронт, лишние таргеты).
**B. Сверь docs/context/10-user-journey.md и docs/mockup/INDEX.md со снимками docs/mockup/screens/ — дополни пропуски из раздела «Что осталось уточнить», расхождения с DBML/правилами занеси в 07-open-questions.md. HTML макета не читай как текст; при необходимости рендерь scripts/mockup_crawl.py.
C. Напиши OpenSpec proposal для Среза 0 — три change, по одному в каждом сервисном репозитории
(openspec/changes/slice-0-skeleton/), и один в docs/ для сквозного: docker-compose workspace-уровня (PostgreSQL,
NATS, MinIO, эмулятор ИС Сканирование), контракт recognition-result.schema.json v1.0, CI-шаблон. В arm-core:
миграция 0001 по DBML целиком, seed справочников/ролей/прав, auth с dev-эмитентом JWT, check_dbml_vs_orm.py.
В tasks.md — задачи ≤ половины дня, в порядке зависимостей, с указанием репозитория.
D. Составь список вопросов ко мне — только те, без которых нельзя начать Срез 0 (версии Python/Node в шаблоне,
секреты, реестр образов, доступ к arm-ka-fixtures из CI). Вопросы по предметной области не задавай — они в
07-open-questions.md; если нужен ответ для среза — делай допущение по правилам из этого файла.
Ограничения на всё время работы:
- имена таблиц, колонок и enum'ов — ровно как в DBML v5.13; поля, которых нет в DBML, не изобретать;
- алгоритмы — только из
05-domain-rules.md; из страниц ТЗ напрямую не кодировать; - парсеры: никаких координат ячеек, букв колонок, имён листов и номеров строк в коде — структура по содержимому,
синонимы в
rules/*.yaml; фикстуры — регрессия, не спецификация; - деньги —
Decimal/numeric(18,2); - всё, что в DBML помечено «не хранится / вычисляется», — чистые функции в
domain/; - любое изменение модели — через новую версию DBML с changelog и миграцию;
- один OpenSpec change и один PR — на один репозиторий;
git -C <repo>; никаких коммитов вmain; - общение, коммиты, комментарии, документация — по-русски; идентификаторы — по-английски.
Когда Срез 0 принят: Срез 1 (справочники, arm-core), затем Срез 2 (tabular-parser + маппинг в arm-core) — его
начинай с property-тестов на fixtures/osv/** и fixtures/statements-xlsx/**, потом парсер.
Подготовка workspace перед kickoff (чек-лист для пользователя)
Репозитории в Gitea: arm-ka-docs, arm-ka-fixtures (ограниченный доступ), arm-core, arm-tabular-parser,
arm-scan-gateway; main защищён везде.
mkdir ~/work/arm-ka && cd ~/work/arm-ka— workspace, неgit initdocs/: клонироватьarm-ka-docs, положить содержимое пакетаdocs/+docs/source/tz/(22 md +_tree.json+_export.mdс датой экспорта) +docs/source/biq/(3 docx → pandoc md) +docs/mockup/dkb_24.09.26/;python ../scripts/mockup_index.py docs/mockup/dkb_24.09.26 > docs/mockup/INDEX.mdCLAUDE.mdпакета — в корень workspace (не в docs);scripts/— вdocs/scripts/или корень workspacefixtures/: клонироватьarm-ka-fixtures, разложить файлы по06-test-data.md§6 (scripts/sort_osv_fixtures.pyиз инструкции), добавитьstatements-xlsx/(попросить у аналитиков ББ/ОФР в Excel; пока — лист «Отчетность» изАнализ *.xlsxи рекомендуемые формы)arm-core/,tabular-parser/,scan-gateway/: из нулевого коммита шаблона (00-workspace-layout.md), в каждый —CLAUDE.mdизdocs/repo-templates/, пустойopenspec/(openspec init), codegraph-индекс.claude/settings.jsonworkspace: хуки guard-main (по репозиторию файла), require-plan, cc-status; разрешения наgit -Ctea login; меткиslice-0 … slice-8в каждом сервисном репозитории- первый коммит в каждом репозитории — «шаблон/контекст как есть», в ветке, PR, merge — единственный раз без плана