9e6e95f431
- 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>
49 lines
2.3 KiB
Markdown
49 lines
2.3 KiB
Markdown
# 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`).
|