meta(tasks): update [task-loop-skill] in OpeItcLoc03/claude-skills

This commit is contained in:
2026-06-11 13:48:32 +00:00
parent 1192a7694b
commit 21f9f0c554

View File

@@ -1007,7 +1007,44 @@ No `consult` was needed; nothing irreversible or cross-cutting. Files changed: `
---
## ⚪ [task-loop-skill] — Написать скил `task-loop` для интерактивных Claude Code сессий.
## ⚪ [task-loop-skill] — **Цель:** агент в открытой сессии может взять задачи из task board и выполнять их одну за другой прямо в этой сессии — без отдельного daemon-процесса, без спауна новых claude-процессов.
**Что делает скил (поведение):**
1. Вызвать `tasks_claim_next` (с учётом POLLER_PROJECTS из env или аргумента)
2. Если задача найдена — прочитать description, выполнить работу в текущей сессии (все инструменты доступны), закрыть через `tasks_close`
3. Если задач нет — **выйти из цикла**, доложить пользователю («очередь пуста»). Не вызывать ScheduleWakeup напустую — это сжигало бы токены каждые N секунд ради пустой проверки.
4. Повторить с п.1
5. Остановиться при явном сигнале пользователя (сообщение в чат) или при `budget.remaining() < threshold`
**Только скил, программных изменений нет.** Все нужные инструменты (`tasks_claim_next`, `tasks_close`) уже существуют.
**Примечание о токенах:**
- «Нет задач → нет токенов» достигается просто: при пустой очереди цикл останавливается, а не polling-ит.
- `ScheduleWakeup` допустим только по явному запросу пользователя («работай пока не скажу стоп») с большим интервалом (≥1200s).
- Inbox-driven wakeup (stop-hook читает `.claude-inbox/`) пока не реализован для новых задач: в inbox поступают только completion-уведомления (closed/delivery-failed/blocked от поллера). Реализация — отдельная programming задача.
**TDD — обязательно:**
- Сначала написать baseline сценарий (subagent без скила): агент получает задачу, что он делает? Зафиксировать нарушения.
- Написать SKILL.md закрывающий эти нарушения
- Прогнать compliance-сценарий с скилом: агент следует loop корректно
- Проверить edge cases: нет задач, задача провалилась, пользователь прервал
**Acceptance criteria:**
1. Агент с скилом корректно claim → work → close → repeat
2. При отсутствии задач — останавливает цикл (не polling, не ScheduleWakeup), сообщает пользователю
3. При ошибке в задаче — паркует (tasks_update status=paused), не виснет
4. Heartbeat: либо документировано как использовать с длинным TTL, либо со ссылкой на `heartbeat-side-channel`
5. Скил задокументирован по стандарту superpowers (frontmatter name/description, CSO-оптимизация)
6. TDD-цикл завершён: есть baseline + compliance тест, оба описаны в PR/commit
**Обязательные скилы перед работой:**
- `superpowers:writing-skills` — методология написания скилов (TDD-цикл обязателен)
- `superpowers:test-driven-development` — RED-GREEN-REFACTOR для документации
- `using-tasks` — управление статусом этой задачи
- `project-discipline` — дисциплина коммитов/semver в claude-skills
**Weight:** needs-claude
**Notify:** OpeItcLoc03/workshop
**Цель:** агент в открытой сессии может взять задачи из task board и выполнять их одну за другой прямо в этой сессии — без отдельного daemon-процесса, без спауна новых claude-процессов.