Срез 0 (proposal): соглашения шаблона в CLAUDE.md, change slice-0-skeleton — скелет scan-gateway и эмулятор #2

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

Issue #1 (не закрывает: только proposal; код — после ревью спек).

Что внутри

  • CLAUDE.md: раздел «Соглашения шаблона» — что оставлено (включая SMB), что вырезается (web/, БД, raisa), что добавляется (src/gateway, src/normalizer, src/scan_emulator, src/contract, воркер).
  • openspec/config.yaml: кавычки для строк с двоеточием; стек под факты платформы.
  • openspec/changes/slice-0-skeleton/: proposal, design (9 решений), спеки image-recognition-gateway и scan-emulator, 15 задач ≤ полдня.

Ключевое из дизайна

  • Горячие папки через протокол HotFolder с режимами local (dev, тесты) и smb (прод, smbclient шаблона); имена каталогов настраиваемы.
  • NATS без JetStream: queue group scan-gateway, ack processing сразу, process-local LRU job_id (повторный запрос не создаёт второй файл в ИС), таймаут 5 мин → TIMEOUT, без повторов OCR (OQ-15).
  • Сырой ответ ИС — в S3 raw/{job_id}.json до нормализации; NullNormalizer пробрасывает ошибки Content AI, на успех отвечает NOT_IMPLEMENTED (нормализация — Срез 3).
  • Эмулятор ИС Сканирование в этом репозитории, тот же образ, отдаёт fixtures/ocr/aep_N*.json по имени файла, неизвестные → INVALID_DOCUMENT.
  • python:3.11-slim, make check / make check-full вместо CI.

Rulings I made

Таблица «Decisions made without discussion» в design.md.

Связанные PR

RSHB/arm-ka-docs (контракт v1.0, compose, эмулятор в compose), RSHB/arm-core, RSHB/arm-tabular-parser — ветки feat/1-slice-0-skeleton.

Проверка

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

🤖 Generated with Claude Code

Issue #1 (не закрывает: только proposal; код — после ревью спек). ## Что внутри - `CLAUDE.md`: раздел «Соглашения шаблона» — что оставлено (включая SMB), что вырезается (web/, БД, raisa), что добавляется (`src/gateway`, `src/normalizer`, `src/scan_emulator`, `src/contract`, воркер). - `openspec/config.yaml`: кавычки для строк с двоеточием; стек под факты платформы. - `openspec/changes/slice-0-skeleton/`: proposal, design (9 решений), спеки `image-recognition-gateway` и `scan-emulator`, 15 задач ≤ полдня. ## Ключевое из дизайна - Горячие папки через протокол `HotFolder` с режимами `local` (dev, тесты) и `smb` (прод, `smbclient` шаблона); имена каталогов настраиваемы. - NATS без JetStream: queue group `scan-gateway`, ack `processing` сразу, process-local LRU `job_id` (повторный запрос не создаёт второй файл в ИС), таймаут 5 мин → `TIMEOUT`, без повторов OCR (OQ-15). - Сырой ответ ИС — в S3 `raw/{job_id}.json` до нормализации; `NullNormalizer` пробрасывает ошибки Content AI, на успех отвечает `NOT_IMPLEMENTED` (нормализация — Срез 3). - Эмулятор ИС Сканирование в этом репозитории, тот же образ, отдаёт `fixtures/ocr/aep_N*.json` по имени файла, неизвестные → `INVALID_DOCUMENT`. - `python:3.11-slim`, `make check` / `make check-full` вместо CI. ## Rulings I made Таблица «Decisions made without discussion» в `design.md`. ## Связанные PR `RSHB/arm-ka-docs` (контракт v1.0, compose, эмулятор в compose), `RSHB/arm-core`, `RSHB/arm-tabular-parser` — ветки `feat/1-slice-0-skeleton`. ## Проверка `openspec validate slice-0-skeleton --strict` — valid. Код не менялся. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 2 commits 2026-10-03 15:23:30 +03:00
Срез 0 (issue #1): раздел «Соглашения шаблона» (что оставлено от шаблона команды, что
вырезается, что добавляется); change openspec/changes/slice-0-skeleton — proposal, design
с таблицей «Decisions made without discussion», спеки и tasks; в openspec/config.yaml
строки с двоеточием взяты в кавычки (YAML разбирал их как словари).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Обмен с ядром на 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>
aep merged commit dab74844fa into main 2026-10-03 16:43:02 +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-scan-gateway#2
No description provided.