4.7 KiB
4.7 KiB
Срез 0 — сквозной скелет (docs) — фаза 1: контракт и инфраструктура — план исполнения (Срез 0)
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Branch: feat/1-slice-0-skeleton (worktree .wt/slice-0/docs). Issue: #1.
Spec: openspec/changes/slice-0-skeleton/ — proposal.md, design.md, specs/*/spec.md этого change'а. Спека — единственный источник истины при рулингах; этот план сгенерирован из её tasks.md 1:1 (номера в скобках — исходные номера задач tasks.md; по завершении задачи отметить её - [x] и в tasks.md).
Global Constraints
- Репозиторий
arm-ka-docs: документы, контракты,docs/dev/.docs/source/**не редактировать. - Контракт v1.0: три схемы JSON Schema 2020-12 (
recognition-request,recognition-result-message,recognition-result),schema_version="1.0"; статусы конвертаprocessing | done | needs_check | error; коды ошибок — перечень из specrecognition-contract(включаяNOT_IMPLEMENTED); деньги — строки^-?\d+(\.\d{1,2})?$;Nats-Msg-Id:<job_id>:<attempt>,ack:<job_id>:<attempt>,result:<job_id>:<attempt>. - Платформа: Python 3.11, PostgreSQL 16, NATS 2.10 без JetStream, один бакет S3
arm-ka; Nexus недоступен; CI нет —make check/make check-full. - Compose собирает сервисы из
../../<repo>относительноdocs/dev/; версии образов фиксированы. - Язык документов и коммитов — русский; коммит заканчивается строкой
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>.
Задачи
Task 1: [1.1] [docs] docs/contracts/recognition-result.schema.json
- [docs]
docs/contracts/recognition-result.schema.json: снять «ЧЕРНОВИК» из title, добавить$commentо версионировании, добавитьNOT_IMPLEMENTEDвerror.code; проверитьpython -m jsonschemaна файле схемы (метасхема 2020-12 валидна)
Task 2: [1.2] [docs] Новый docs/contracts/recognition-request.schema.json по spec `recogniti
- [docs] Новый
docs/contracts/recognition-request.schema.jsonпо specrecognition-contract(поля, enum, форматы uuid/date-time); проверить метасхемой
Task 3: [1.3] [docs] Новый docs/contracts/recognition-result-message.schema.json (конверт
- [docs] Новый
docs/contracts/recognition-result-message.schema.json(конверт:status∈ processing | done | needs_check | error; условные обязательные поля черезif/then); проверить метасхемой
Task 4: [1.4] [docs] Примеры docs/contracts/examples/
- [docs] Примеры
docs/contracts/examples/:request-tabular.json,request-image.json,result-message-processing.json,result-message-done.json,result-message-error.json,result-osv-minimal.json,result-statement-minimal.json,result-error.json; скриптdocs/scripts/validate_contracts.pyвалидирует все примеры схемами и возвращает 0
Task 5: [1.5] [docs] 03-architecture.md
- [docs]
03-architecture.md: таблица «Контракт обмена через NATS» — ссылки на три файла схем, правилаNats-Msg-Id, ack черезprocessing, повторная публикация; проверить, что текст ссылается на существующие файлы
Task 6: [2.1] [docs] docs/dev/docker-compose.yml
- [docs]
docs/dev/docker-compose.yml: сервисыpostgres(16),nats(2.10, без--jetstream),minio,minio-init(создаёт бакетarm-ka), healthcheck'и, именованные тома;docs/dev/.env.example; проверка:docker compose up -d→ все healthy,mc lsвидит бакет,curl :8222/varzотвечает
Task 7: [2.2] [docs] docs/dev/README.md
- [docs]
docs/dev/README.md: запуск инфраструктуры, переменные, сброс томов, запуск сервисов из venv без Nexus (make venvфильтруетraisa_*), черновик — дописывается в 5.4