Andrey Epifancev 7a35b79d5e docs: change slice-0-skeleton под факты платформы — NATS без JetStream, Python 3.11, без CI и Nexus
Обмен с ядром на core NATS: подписка queue group, ack status=processing сразу по получении, process-local
LRU job_id против повторных запросов, публикация результата с повторами; удалены durable consumer / max_deliver /
ack_wait. Dockerfile python:3.11-slim; make check / make check-full вместо CI; raisa_* фильтруются при
dev-установке. Обновлены proposal, design (решения без обсуждения), specs, tasks, CLAUDE.md, openspec/config.yaml.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 16:21:45 +04:00

41 lines
4.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

schema: spec-driven
context: |
Репозиторий tabular-parser — часть системы АРМ КА (ДКБ, Россельхозбанк): stateless-сервис разбора XLS/XLSX/XLSB (ОСВ по счетам, ББ/ОФР из Excel). Без доступа к БД: вход — NATS recognition.tabular.request + файл в S3, выход — JSON по ../docs/contracts/recognition-result.schema.json. Структура ищется по содержимому (05-domain-rules.md §1.0, §12), синонимы — rules/*.yaml.
Workspace из нескольких репозиториев; общий контекст — ../CLAUDE.md и ../docs/ (репозиторий arm-ka-docs).
Источники истины по приоритету: ../docs/model/data-model-v5.13.dbml → ../docs/model/entities-v5.13.md →
../docs/context/05-domain-rules.md → страницы ТЗ в ../docs/source/tz (черновик, старые имена v4).
Открытые вопросы — ../docs/context/07-open-questions.md; план срезов — ../docs/context/09-delivery-plan.md.
Фикстуры — ../fixtures (реальные данные, не спецификация формата).
Стек: Python 3.11, FastAPI, SQLAlchemy 2 async + Alembic, PostgreSQL 16, pydantic v2, NATS без JetStream (ack и повторы — на уровне приложения), S3 (MinIO, miniopy-async),
loguru; фронт — React + TypeScript, rsbuild, antd, Redux Toolkit, biome. Язык документов и коммитов — русский,
идентификаторы — английские, как в DBML.
rules:
proposal:
- Указывать номер среза из 09-delivery-plan.md и затронутые репозитории; сквозные изменения — отдельный change в ../docs
- Перечислять таблицы DBML v5.13, которые затрагиваются; поля вне DBML не вводить — сначала новая версия DBML
- Ссылаться на параграфы 05-domain-rules.md для каждого алгоритма; правило, которого там нет, — в 07-open-questions.md
- Раздел «Non-goals» обязателен
- Любое допущение по открытому вопросу помечать ASSUMPTION(OQ-nn)
specs:
- Сценарии на реальных фикстурах из ../fixtures, синтетика — только для форматов, которых там нет
- "Для парсеров: ни одного требования, завязанного на букву колонки, номер строки или имя листа"
design:
- Вычисляемые объекты консолидации (сводная ОСВ, пары ВГО, шахматка) — чистые функции в domain/, без ORM-таблиц
- Деньги — Decimal / numeric(18,2); единицы измерения (руб. / тыс. руб.) указывать явно
tasks:
- Задачи не больше половины дня, с указанием репозитория и файлов
- Первые задачи — тесты и фикстуры, затем реализация
- Последняя задача среза — обновление docs (03-architecture, 07-open-questions) и README
operations:
apply:
guidance:
- Работать в ветке; git -C <repo>; один PR на репозиторий
- Перед кодом перечитать затрагиваемые таблицы DBML и параграфы 05-domain-rules.md
- После изменений прогонять линтеры и тесты репозитория; для web — tsc, biome, rsbuild build
archive:
guidance:
- "Перед архивированием: DoD среза из ../CLAUDE.md выполнен, открытые вопросы занесены в 07-open-questions.md"