34 lines
3.2 KiB
Markdown
34 lines
3.2 KiB
Markdown
---
|
||
title: Runbook — tasks
|
||
summary: Как работать с тасками mappa: ориентация, выбор (priority/due), взятие (status+owner), исполнение, закрытие, review-связка, comment. Контракт: wiki:2660 (interactive). Источник: brainstorm:173.
|
||
type: runbook
|
||
tags: [mappa, runbook, tasks, agent]
|
||
---
|
||
# Runbook: tasks
|
||
|
||
Цикл работы с таской: ориентация → выбор → взятие → исполнение → закрытие.
|
||
|
||
## Ориентация / выбор
|
||
- Доска проекта: `task_list(project, parent='root')` (корни) или `board_digest(project)` (счётчики+overdue+blocked). Кросс-проектно: `board_digest()` без project.
|
||
- Выбор по приоритету/дедлайну. Priority — территория человека: агент ставит P0–P2/deadline только при создании, дефолт P1. Overdue → notify (admin_overdue_scan), авто-бамп запрещён.
|
||
- Таска без `**Review:**` в описании — не принимается к работе (вернуть постановщику, правило 14).
|
||
|
||
## Взятие (interactive contract, wiki:2660)
|
||
`task_update(project, id, status='active', owner=<себя>, version=<из task_get>)` — одной мутацией (status→active + owner). Версия — optimistic concurrency: конфликт → 409 → re-GET → retry.
|
||
|
||
## Исполнение
|
||
- Работаешь по критериям приёмки из описания; след «где остановился/что попробовал» — comment_create (короткий), вердикты/отчёты — письмом (Г2).
|
||
- Смена фокуса → status=paused/ready с reason (не бросать в active).
|
||
|
||
## Закрытие (handover)
|
||
- Перед close: проверить покрытие критериев + метод ревью из описания выполнен (`subagent` прогнан / `next-session` review-таска существует / `none` обоснован).
|
||
- `task_close(project, id, version)` → status=done.
|
||
- Review-связка: импл-таска → парная `<slug>-review` (blocked, blocker=impl) ИЛИ зонтик на кластер (не BOTH). Ревьюер — следующая сессия, НЕ имплементер. Вердикт ревью — письмом полностью.
|
||
|
||
## Создание таски (для босса/делегирования)
|
||
`task_create(project, slug, title, description, status='ready', priority=P1, session_id)`. Номер — только из ответа. Делегирование кросс-проект = пара: таска + сопроводительное письмо (inbox_send) — таска на борде не пингует живую сессию.
|
||
- Зависимости: `edge_create(from, to, 'blocked_by')` (task→task, цикл → 422).
|
||
- Импл-таска обязана нести `**Review:**` (subagent | next-session | none).
|
||
|
||
## Связано
|
||
[[runbooks/index]] · [[canon/gates]] (Г2 каналы) · [[runbooks/inbox]] · контракт wiki:2660 · brainstorm:173 · requirements:23 |