Files
Bridge-and-Join-s/docs/tasks/README.md
T
fontvielle 9e6e95f431 feat(m2m-core): FSM сделки, репозиторий, идемпотентность по GUID, метрики SLA
- internal/m2mcore/fsm.go: конечный автомат с переходами Draft → Validated → SubmittedToNSD → AwaitingDecision → Confirmed → AwaitingSUB16 → Done, ветки Rejected/TimedOut/ManualApproval
- internal/m2mcore/deal.go: доменная модель Deal с методами Validate/Submit/ReceiveDecision/Timeout/SendToManualApproval/ApproveManually/RejectManually/CompleteSUB16, журнал событий
- internal/m2mcore/uuid.go: генератор UUID v4 без внешних зависимостей (crypto/rand)
- internal/m2mcore/repo.go: порт Repository + MemoryRepository с идемпотентным Create по GUID
- internal/m2mcore/ports.go: порты NSDSender/LKCallbackClient/CryptoVerifier/FansyStore с no-op заглушками для M1
- internal/m2mcore/enrich.go: EnrichRequest — сборка M2MTransferRequest из ClaimInput + Fansy, генерация ReferenceID по каждой ЦБ
- internal/m2mcore/metrics.go: порт Recorder + MemoryRecorder в Prometheus-text формате
- cmd/m2m-core/main.go: HTTP-сервер с /healthz и /metrics, graceful shutdown
- migrations/m2m-core/001__deals.sql: схема для PostgreSQL-Repository (для M2)

Покрытие: 63.1%. make ci зелёный. Без внешних Go-зависимостей (pgx и
prometheus подключим в M2, когда прокси zetit откроет Go-модули).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 00:52:12 +03:00

49 lines
2.3 KiB
Markdown
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.
# docs/tasks — задачи разработки
Здесь лежат **готовые промпты** для Claude Code, выполняемые в порядке
PR-1 → PR-N. Каждая задача — самостоятельный осмысленный PR в `main`.
Архитектурный контекст и обоснование решений — в
`docs/architecture/plan.md` (полный план проекта) и
`docs/architecture/overview.md` (краткая выжимка).
## Очередь задач
| PR | Файл | Статус | Зависит от |
|----|------|--------|-----------|
| PR-1 | `PR-1-go-models-m2m.md` | выполнено | — |
| PR-2 | `PR-2-fansy-ddl.md` | выполнено | — (параллельно с PR-1) |
| PR-3 | `PR-3-lk-openapi.md` | выполнено | — (параллельно с PR-1) |
| PR-4 | `PR-4-m2m-core-skeleton.md` | выполнено | PR-1 |
| PR-5 | `PR-5-nsd-adapter-skeleton.md` | ждёт ИШ НРД и сертификаты | PR-1, PR-4 |
| PR-6 | `PR-6-crypto-service-skeleton.md` | ждёт КриптоПро JCP | PR-1 |
## Как запустить задачу
На dev-ВМ под `dev`, в корне репо:
```bash
cd /srv/dev/Bridge-and-Join-s
git pull
claude
```
В сессии Claude Code:
> Прочитай `docs/tasks/PR-1-go-models-m2m.md` и выполни задачу полностью.
> По завершении сделай commit и push в `main` (или открой MR, если так
> принято), обнови статус задачи в `docs/tasks/README.md` с «готово к
> запуску» на «выполнено» с указанием sha коммита.
## Соглашения
- **Без эмодзи** в коде и комментариях.
- Комментарии в коде — на русском, имена типов и полей — на английском
как в XSD/контрактах.
- Каждый PR проходит `make ci` зелёным.
- Перед коммитом — `go mod tidy`, `make fmt`, `make lint`.
- Сообщение коммита: `<тип>(<область>): <короткое описание>` +
расшифровка в теле.
- Документация изменений — в README соответствующего модуля
(`internal/<...>/README.md`).