From 5fc0ccc1d34f060654b6e51824f3292ea16d93b6 Mon Sep 17 00:00:00 2001 From: vitya Date: Sun, 5 Jul 2026 11:46:19 +0300 Subject: [PATCH] =?UTF-8?q?delegate-task=200.2.3=E2=86=920.2.4:=20downstre?= =?UTF-8?q?am-task=20=D0=B4=D0=BB=D1=8F=20=D0=B6=D0=B8=D0=B2=D0=BE=D0=B9?= =?UTF-8?q?=20=D1=81=D0=B5=D1=81=D1=81=D0=B8=D0=B8=20=D1=82=D1=80=D0=B5?= =?UTF-8?q?=D0=B1=D1=83=D0=B5=D1=82=20task+inbox-=D0=BF=D0=B8=D1=81=D1=8C?= =?UTF-8?q?=D0=BC=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Пробел: ТЗ, поручающее прогу создать deploy-таску админу, требовало лишь tasks_create — таска на борде живую сессию не пингует, повисла бы незамеченной. Добавлен Step 6 + What-NOT-to-do bullet: poller→Weight/Notify, live→inbox-письмо, не уверен→оба. Инцидент тиража snolla (оператор вставлял прогам за меня). Co-Authored-By: Claude Opus 4.8 (1M context) --- skills/delegate-task/SKILL.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/skills/delegate-task/SKILL.md b/skills/delegate-task/SKILL.md index a9a681b..d558063 100644 --- a/skills/delegate-task/SKILL.md +++ b/skills/delegate-task/SKILL.md @@ -1,6 +1,6 @@ --- name: delegate-task -version: 0.2.3 +version: 0.2.4 description: > Use when delegating a task to another agent or project via mcp__projects-meta__tasks_create. Triggers: «делегировать таску», @@ -106,6 +106,14 @@ description: > Без явного `weight` поллер не маршрутизирует review-таску (reconciler её пропускает) — поэтому проставлять всегда, даже когда impl и review совпадают по tier'у. +### 6. Downstream-задача для ЖИВОЙ сессии → требовать task + inbox-письмо + +Если тело задачи **поручает агенту самому создать downstream-задачу** для другого проекта, где работает **живая интерактивная сессия** (напр. прог сам ставит deploy-таску админу), — в ТЗ **явно потребуй И `tasks_create`, И inbox-письмо** тому проекту (`/.claude-inbox/-.md`). + +Причина: таска на борде живую сессию **НЕ пингует**. Поллер подхватит по `Weight`/`Notify`, но живая интерактивная сессия узнаёт только через inbox-монитор / Stop-хук — т.е. через письмо. ТЗ, требующее лишь `tasks_create`, оставляет downstream-таску висеть незамеченной, и кто-то доделывает пинг руками. + +Правило: poller-driven таргет → `Weight`/`Notify` обязательны; live-сессия → inbox-письмо обязательно; **не уверен, поллер или живой — требуй ОБА.** Это же правило применяй, когда пингуешь пира сам: task + letter, не только task. + ## Failure modes - **Пользователь отказывает на pre-flight** → abort, задачу не создавать. @@ -130,3 +138,4 @@ description: > - Не назначать `weight: cheap-ok` для задач где дисциплина критична (review, security, schema migration) — слабые модели могут игнорировать invoke-инструкции. - Не назначать `weight: needs-claude` или `cheap-ok` задачам, меняющим критическую инфраструктуру (поллер, MCP серверы, deploy, CI/CD) — только `needs-human`. - Не ставить `session_break` рутинно на каждую задачу — это маркер реальной границы (domain-switch / milestone / heavy infra), не дефолт; иначе `using-tasks` рвёт сессию после каждого close. +- **Не поручать агенту создать downstream-таску для живой сессии без парного inbox-письма** (см. Step 6). `tasks_create` в чужой борд живую сессию не пингует — ТЗ обязано требовать И таску, И письмо, иначе downstream-таска висит незамеченной.