Срез 0 (proposal): соглашения шаблона, сверка макета, change slice-0-skeleton (контракт v1.0, compose, проверки) #2

Merged
aep merged 5 commits from feat/1-slice-0-skeleton into main 2026-10-03 16:43:12 +03:00
Owner

Issue #1 (не закрывает: PR содержит только proposal и документы, реализация — после ревью спек).

Что внутри

  • A. Соглашения шаблона команды — context/03-architecture.md: раскладка api/src/ + web/ (а не backend/+frontend/), схема PostgreSQL dkb, один бакет S3 с префиксами-ролями, настройки OPENBAO__*, DI ручными Depends, тесты, линтеры (ruff + mypy), сборка, фронт, что вырезается в сервисах распознавания; 00-workspace-layout.md — worktree среза в зеркальном workspace .wt/<срез>/.
  • B. Сверка макета — 10-user-journey.md, mockup/INDEX.md сверены с 33 снимками; досняты 22 состояния (scripts/mockup_crawl_extra.py, mockup/report-extra.json); закрыт раздел «Что осталось уточнить» (экрана проверки ОСВ/xlsx в макете нет); расхождения с DBML/правилами — OQ-31…OQ-44 в 07-open-questions.md, OQ-45…47 — по контракту и seed.
  • C. OpenSpec — openspec/ инициализирован; change slice-0-skeleton: контракт v1.0 (три схемы: запрос, конверт с ack processing/результат, файл результата), docs/dev/docker-compose.yml (PostgreSQL 16, NATS без JetStream, MinIO, эмулятор ИС Сканирование, три сервиса), quality-checks (make check / make check-full вместо CI), tasks в порядке зависимостей между репозиториями.
  • Правка KICKOFF-PROMPT.md (задача B) перенесена из рабочего дерева main.

Факты платформы, учтённые в дизайне (ответы 03.10.2026)

Python 3.11; Node неизвестен; Nexus недоступен до прода; CI в Gitea нет, пайплайн платформы не трогаем; NATS без JetStream; PostgreSQL 16; JWT РАИСА — позже.

Rulings I made (решения без обсуждения, полный список — openspec/changes/slice-0-skeleton/design.md)

  1. Контракт вендорится копией в каждый сервис + проверка идентичности; общий пакет не публикуется.
  2. group_schema убран из конверта результата — берётся из файла результата.
  3. Без JetStream: queue group'ы, ack сервиса = конверт status = processing, повторная публикация ядром 30 с × 3 → dlq, дедуп по result_msg_id.
  4. Один бакет arm-ka, роли как префиксы; схема PostgreSQL dkb (из шаблона).
  5. Эмулятор ИС Сканирование живёт в scan-gateway, запускается тем же образом.
  6. Compose в docs/dev/, Dockerfile разыгнорирован в сервисах (единственная правка шаблона).
  7. Проверки качества make check / make check-full, конфигураций CI нет.
  8. В конт��акт добавлены NOT_IMPLEMENTED и статус processing.
  9. Seed продукта (план счетов 94н + типовые субсчета 1С, правила элиминации, права) — в arm-core/api/seed/, не в fixtures.
  10. Версии: python:3.11-slim, PostgreSQL 16, NATS 2.10 без -js, node:22 до ответа.
  11. raisa_* фильтруются при dev-установке; npm raisa-* → optionalDependencies.

Открытые вопросы к человеку

Версия Node; параметры JWT РАИСА (к первому деплою); имена каталогов ИС Сканирование (к Срезу 3).

Связанные PR

Ветки feat/1-slice-0-skeleton в RSHB/arm-core, RSHB/arm-tabular-parser, RSHB/arm-scan-gateway (issue #1 в каждом).

Проверка

openspec validate slice-0-skeleton --strict — valid. Код не менялся.

🤖 Generated with Claude Code

Issue #1 (не закрывает: PR содержит только proposal и документы, реализация — после ревью спек). ## Что внутри - **A. Соглашения шаблона команды** — `context/03-architecture.md`: раскладка `api/src/` + `web/` (а не `backend/`+`frontend/`), схема PostgreSQL `dkb`, один бакет S3 с префиксами-ролями, настройки `OPENBAO__*`, DI ручными `Depends`, тесты, линтеры (ruff + mypy), сборка, фронт, что вырезается в сервисах распознавания; `00-workspace-layout.md` — worktree среза в зеркальном workspace `.wt/<срез>/`. - **B. Сверка макета** — `10-user-journey.md`, `mockup/INDEX.md` сверены с 33 снимками; досняты 22 состояния (`scripts/mockup_crawl_extra.py`, `mockup/report-extra.json`); закрыт раздел «Что осталось уточнить» (экрана проверки ОСВ/xlsx в макете нет); расхождения с DBML/правилами — OQ-31…OQ-44 в `07-open-questions.md`, OQ-45…47 — по контракту и seed. - **C. OpenSpec** — `openspec/` инициализирован; change `slice-0-skeleton`: контракт v1.0 (три схемы: запрос, конверт с ack `processing`/результат, файл результата), `docs/dev/docker-compose.yml` (PostgreSQL 16, NATS без JetStream, MinIO, эмулятор ИС Сканирование, три сервиса), `quality-checks` (`make check` / `make check-full` вместо CI), tasks в порядке зависимостей между репозиториями. - Правка `KICKOFF-PROMPT.md` (задача B) перенесена из рабочего дерева main. ## Факты платформы, учтённые в дизайне (ответы 03.10.2026) Python 3.11; Node неизвестен; Nexus недоступен до прода; CI в Gitea нет, пайплайн платформы не трогаем; **NATS без JetStream**; PostgreSQL 16; JWT РАИСА — позже. ## Rulings I made (решения без обсуждения, полный список — `openspec/changes/slice-0-skeleton/design.md`) 1. Контракт вендорится копией в каждый сервис + проверка идентичности; общий пакет не публикуется. 2. `group_schema` убран из конверта результата — берётся из файла результата. 3. Без JetStream: queue group'ы, ack сервиса = конверт `status = processing`, повторная публикация ядром 30 с × 3 → `dlq`, дедуп по `result_msg_id`. 4. Один бакет `arm-ka`, роли как префиксы; схема PostgreSQL `dkb` (из шаблона). 5. Эмулятор ИС Сканирование живёт в `scan-gateway`, запускается тем же образом. 6. Compose в `docs/dev/`, `Dockerfile` разыгнорирован в сервисах (единственная правка шаблона). 7. Проверки качества `make check` / `make check-full`, конфигураций CI нет. 8. В конт��акт добавлены `NOT_IMPLEMENTED` и статус `processing`. 9. Seed продукта (план счетов 94н + типовые субсчета 1С, правила элиминации, права) — в `arm-core/api/seed/`, не в fixtures. 10. Версии: `python:3.11-slim`, PostgreSQL 16, NATS 2.10 без `-js`, `node:22` до ответа. 11. `raisa_*` фильтруются при dev-установке; npm `raisa-*` → `optionalDependencies`. ## Открытые вопросы к человеку Версия Node; параметры JWT РАИСА (к первому деплою); имена каталогов ИС Сканирование (к Срезу 3). ## Связанные PR Ветки `feat/1-slice-0-skeleton` в `RSHB/arm-core`, `RSHB/arm-tabular-parser`, `RSHB/arm-scan-gateway` (issue #1 в каждом). ## Проверка `openspec validate slice-0-skeleton --strict` — valid. Код не менялся. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 5 commits 2026-10-03 15:23:18 +03:00
03-architecture.md: раздел «Соглашения шаблона команды» (раскладка, конфигурация, БД и миграции,
клиенты, DI, тесты, линтеры, сборка, фронт, что вырезано в сервисах распознавания); слои arm-core
переписаны под реальный шаблон (api/src вместо backend/app, web вместо frontend); таблица обмена
через NATS — три схемы контракта v1.0, Nats-Msg-Id, group_schema только в файле результата;
один бакет S3 с префиксами-ролями; схема PostgreSQL dkb. 00-workspace-layout.md: worktree среза
в зеркальном workspace .wt/<срез>/.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
10-user-journey.md и mockup/INDEX.md сверены с 33 снимками; досняты Playwright модалка
«Изменить статус», формы ГК/ЮЛ/ГСК/ГСЗ, меню ЮЛ и ГСК, раскрытый срез ЕХ, режимы редактирования
вкладок отчёта, экран 03. Раздел «Что осталось уточнить» закрыт (экрана проверки ОСВ в макете
нет). Расхождения макета с DBML/правилами — OQ-31…OQ-44; OQ-45…OQ-47 — по контракту и seed
Среза 0; OQ-29 дополнен ролями макета.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
openspec init (config с контекстом docs-репозитория) и change slice-0-skeleton: proposal, design
(11 решений без обсуждения, открытые вопросы к человеку), спеки recognition-contract,
dev-environment, ci-template, tasks в порядке зависимостей между репозиториями. 06-test-data.md §6:
справочники продукта — seed arm-core, не фикстуры. 09-delivery-plan.md: Срез 0 по факту (change'и,
compose в docs/dev, контракт копией без общего пакета, seed).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Правка пользователя из рабочего дерева main перенесена в ветку среза без изменений.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
По ответам пользователя 03.10.2026: обмен через recognition_job перестроен на core NATS (queue group'ы,
ack сервиса = конверт status=processing, повторная публикация ядром 30 с × 3 → dlq, дедуп по result_msg_id);
capability ci-template заменена на quality-checks (make check / make check-full, конфигураций CI нет);
compose: PostgreSQL 16, NATS без --jetstream, python:3.11-slim; пакеты raisa_* фильтруются при dev-установке,
npm raisa-* → optionalDependencies. Обновлены 03-architecture, 09-delivery-plan, 00-workspace-layout,
proposal/design/specs/tasks change'а; открытые вопросы к платформе закрыты, остались Node и JWT РАИСА.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
aep merged commit 05a906ef90 into main 2026-10-03 16:43:12 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-ka-docs#2
No description provided.