Definition of Done
Минимальные критерии завершённости задачи по типам. Задача не переходит в status = 'done' пока не выполнены все пункты.
Research Task DoD
Применяется к: intel.*, research.*, niche.*
Обязательные критерии
| # | Критерий | Проверка |
|---|---|---|
| R1 | Бриф закрыт: question из payload получил ответ | result содержит executive_summary или answer |
| R2 | Минимум 5 независимых источников | result.source_count >= 5 или len(result.competitors) >= 5 |
| R3 | Структурированный отчёт | result содержит JSON с expected fields (не raw text) |
| R4 | Meta-данные записаны | result._meta содержит {cost_usd, tokens, duration_ms} |
| R5 | Confidence указан | result.confidence >= 0 (число, не null) |
| R6 | Нет JSON parse failures | result не содержит "error": "json_parse_failed" |
Желательные критерии (enforce после 3.2)
| # | Критерий | Проверка |
|---|---|---|
| R7 | Judge score ≥ 0.6 | TBD: Judge agent, Week 3.2 |
| R8 | Source URLs валидны | TBD: URL validation tool |
| R9 | Нет hallucinated facts | TBD: cross-reference check |
Failure modes (из Week 3.1)
Типичные причины, по которым research task не проходит DoD:
- Aggregate JSON truncation (R6 fail) — увеличить max_tokens или chunk input
- Scout возвращает 0 results (R2 fail) — domain mismatch в framing
- _meta не записана при failure (R4 fail) — обеспечить _meta даже в error path
Code Task DoD
Применяется к: code.*, refactor.*, fix.*
| # | Критерий | Проверка |
|---|---|---|
| C1 | Тесты пройдены | pytest / make test exit code 0 |
| C2 | Линтер пройден | ruff check exit code 0 |
| C3 | Коммит создан | git log содержит коммит с описанием изменения |
| C4 | Нет regressions | существующие тесты не сломаны |
| C5 | Документация обновлена (если API изменился) | README или docstrings актуальны |
Не требуется для code tasks:
- 100% test coverage (покрываем critical paths)
- Документация для internal-only helpers
- Benchmark/performance тесты (если нет явного требования)
Decision Task DoD
Применяется к: decision.*, архитектурные решения, выбор tooling
| # | Критерий | Проверка |
|---|---|---|
| D1 | ADR создан по Template-ADR | файл в 09-Decisions/ |
| D2 | Alternatives рассмотрены (минимум 2) | ADR содержит секцию Alternatives |
| D3 | Decision записан в Decision-Log | строка в таблице Decision-Log |
| D4 | Consequences описаны | ADR содержит секцию Consequences |
| D5 | Stakeholder aware | Notify или Approve по DecisionRights |
Pipeline Task DoD
Применяется к: multi-agent pipeline (CEO → Director → Executors)
| # | Критерий | Проверка |
|---|---|---|
| P1 | Все child tasks завершены | NOT EXISTS (children WHERE status NOT IN ('done','judging','failed')) |
| P2 | Aggregate выполнен | Director result содержит stage: 'aggregate' |
| P3 | Суммарный cost в бюджете | sum(children._meta.cost_usd) <= parent.budget_usd |
| P4 | Каждый child прошёл свой DoD | Research children → R1-R6, Code children → C1-C4 |
Enforcement
Сейчас (MVP)
DoD проверяется вручную через dashboard + meta.json файлы. mark_task_done() ставит status = 'judging' — финальный done после review.
После 3.2 (Judge agent)
Judge agent автоматически проверяет R1-R6 / C1-C4 и выставляет status = 'done' или status = 'failed' + revision instructions.
Note: Until Judge enforcement layer ships, enforcement steps executed manually by Founder + Strategy Claude. Judge-the-agent is operational (running in Navigator/Chamber), Judge-as-governance-enforcer is planned.
Связанные документы
- INV-2 — artifact trail обязателен
- ObservabilityContract — что именно записывать
- Agent-Judge — автоматическая проверка DoD
- Process-TaskLifecycle — статусы задач