--- title: Runbook — tasks summary: Как работать с тасками mappa: ориентация (task_list/board_digest), взятие (status+owner, version+409), ведение (comment-след, blocked_by), optimistic-конфликт 409→retry, закрытие с Review-методом. Контракт: wiki:2660. type: runbook tags: [mappa, runbook, task, agent] --- # runbooks/tasks — как работать с тасками Процедура «взять → вести → закрыть таску». Канон-контекст: [[canon/gates]] Г2 (каналы), Г4 (адресация). Обновляется при изменениях. ## 1. Ориентация / выбор - Доска: `task_list(project, status=…)` (компакт: ref/status/priority/title) или `board_digest(project)` (счётчики + overdue/blocked). - Взять: `task_get(ref)` → свежая `version` → `task_update(status='active', owner=, version)` — CAS; конфликт → 409 (см. п.3). - Owner — только реально работающий; не брать чужую active-таску. ## 2. Ведение - `comment_create` — короткий след «где остановился» (не носитель вердиктов — они письмами, канон Г2). - blocked_by: `edge_create(from, to, blocked_by)` / снять `edge_delete` (парные review-таски). - Пауза/переключение: `task_update(status='paused'|'ready', reason)`. ## 3. Optimistic-конфликт (version+409 → retry) > **Optimistic-конфликт:** update/close идут с `version` (из `task.get`) → конфликт → **409** → перечитай `task.get` свежим → retry с новой `version`. НЕ работай со stale-version (виден по POST /session 14.7%, POST /requirements/update 23.1% — телеметрия, дайджест 2069). ## 4. Закрытие - `task_close(ref, version)`: критерии приёмки выполнены И review-метод из `**Review:**` поля исполнен (правило 14: subagent прогнан / next-session review-таска существует / none обоснован). - done → парная review-таска разблокируется (если была). **Связи:** [[runbooks/index]] · [[canon/gates]] · [[canon/index]]