Compare commits

..

3 Commits

Author SHA1 Message Date
1433fd80ea meta(handoff): regen NEXT_SESSION — task-loop install+hermes-mapping closed, test-trigger next (clean session)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 17:52:53 +03:00
74a94a6696 feat(hermes): map task-loop as pending (intended auto/mcp)
task-loop orchestrates the projects-meta board cycle (tasks_claim_next /
tasks_close / tasks_update / tasks_heartbeat) and may arm a long ScheduleWakeup —
critical-infra-adjacent, so it lands in the behavioral-audit pending tier, not auto.
Promotion to auto gated on task-loop-test-trigger. Schema version untouched.

Closes [task-loop-hermes-mapping] (baseline 2/3).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 17:52:10 +03:00
e07413fec3 meta(tasks): close [task-loop-install] — installed + verified visible in available-skills
install.ps1 -Names task-loop → ~/.claude/skills/task-loop/SKILL.md (diff-identical to
source, v0.1.0). Post-/reload-plugins task-loop appears in available-skills with full
description (YAML parsed, RU/EN triggers present). Unblocks task-loop-test-trigger
(🔵 ready, needs clean session for live behavioral run).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 17:47:59 +03:00
3 changed files with 39 additions and 29 deletions

View File

@@ -1,32 +1,33 @@
--- ---
_last_updated_: 2026-06-11 _last_updated_: 2026-06-11
session_id: 2026-06-11-task-loop-skill session_id: 2026-06-11-task-loop-install-hermes
--- ---
# Next session handoff # Next session handoff
Shipped the `task-loop` skill (v0.1.0) end-to-end via TDD and filed its 3 deployment baselines. Next session's job is the deployment leg — starting with install in a fresh session so activation can actually be verified. Закрыты 2 из 3 deployment-baseline'ов `task-loop`: **install** (скил в `~/.claude/skills/`, виден в available-skills с полным description после `/reload-plugins`) и **hermes-mapping** (entry mode:pending, intended auto/mcp). Остался один — `task-loop-test-trigger`, и он **намеренно** отложен: ему нужна СВЕЖАЯ сессия (эта ставила скил = имплементер-прайм + грязный контекст, subagent-прогоны при разработке были прокси, не живой харнес).
## Recent commits ## Recent commits
- `0016c45` feat(task-loop): new skill for in-session board draining v0.1.0 (pushed) - `74a94a6` feat(hermes): map task-loop as pending (intended auto/mcp) — closes [task-loop-hermes-mapping]
- `abfb450` meta(tasks): close [task-loop-skill] — DONE, all 6 acceptance met (RED→GREEN→REFACTOR) - `e07413f` meta(tasks): close [task-loop-install] — installed + verified visible in available-skills
- `dd44b90` / `025e16a` / `47fc806` meta(tasks): create the 3 task-loop deployment follow-ups - `036e0d5` meta(handoff): regen NEXT_SESSION (предыдущий разворот)
- **NB: оба свежих коммита НЕ запушены** (автопуш не был выдан на ту сессию — Rule 4).
## Open треки ## Open треки
| Трек | Готовность | Entry-point | | Трек | Готовность | Entry-point |
|---|---|---| |---|---|---|
| `task-loop-install` (⚪ ready, needs-claude) | next up — **нужна свежая сессия** для проверки активации | `install.ps1 -Names task-loop` → открыть новую CC-сессию → убедиться `task-loop` в available-skills → /reload-plugins | | `task-loop-test-trigger` (⚪ ready, needs-claude) | **это и есть «следующий разумный шаг»****строго в чистой сессии** | positive/negative триггеры + поведенческий сценарий: consult-gate (human-only → STOP before close), session_break-halt, empty→stop (без polling), watch→ScheduleWakeup ≥1200s НЕ CronCreate |
| `task-loop-test-trigger` (🔵 blocked на install, needs-claude) | ждёт install | positive/negative триггеры + поведенческий сценарий (consult-gate, session_break-halt, empty→stop, watch→ScheduleWakeup-not-CronCreate) | | hermes build «red» (информ.) | не task-loop-задача | 3 ДРУГИХ unmapped-скила в mapping.yaml: `using-system-snapshot`, `meta-host-routing` (есть ⚪ `meta-host-routing-hermes-mapping`), `task-format` — каждый со своим baseline |
| `task-loop-hermes-mapping` (⚪ ready, **needs-human**) | в любой момент, human-only | entry в `hermes/mapping.yaml`, **mode: pending** (трогает claim/close/heartbeat-инфру) |
## Спроси user'а ## Спроси user'а
- С какой follow-up начинаем (рекомендация: `task-loop-install`разблокирует `-test-trigger`). - **Push** двух коммитов (`e07413f`, `74a94a6`) в `origin/master`грант на прошлую сессию НЕ переносится (Rule 4 reset). Спросить заново.
- Автопуш на новую сессию НЕ переносится — грант был только на прошлую (Rule 4 reset). Спросить заново перед push. - Слать ли closing-notify в `OpeItcLoc03/workshop` + дублировать close в projects-meta (`tasks_close`) для install/hermes-mapping — cross-project mutation, по умолчанию НЕ делал.
## Не делать (preemptive guards) ## Не делать (preemptive guards)
- НЕ auto-promote `task-loop-hermes-mapping` в mode:auto — critical-infra-adjacent (claim/close/heartbeat + ScheduleWakeup), нужен отдельный аудит. Держать pending. - НЕ прогонять `task-loop-test-trigger` в сессии, которая ставила/трогала скил — нужен чистый контекст, иначе тест активации недостоверен.
- НЕ редактировать закрытый блок `task-loop-skill` в STATUS.md (косметический дубль тела из workshop-правки — закрытая запись, не трогать). - НЕ промоутить `task-loop` pending→auto в mapping.yaml до `-test-trigger` + аудита tool-side эффектов (claim/close/heartbeat + ScheduleWakeup). Держать pending.
- НЕ запускать `task-loop-test-trigger` до install — субагент-прогоны при разработке были прокси, не живой харнес. - НЕ бампать schema-версию `hermes/mapping.yaml` (`version: 1`) — это schema, не контент.
- НЕ чинить 3 чужих unmapped-скила в рамках task-loop-ленты — у каждого свой baseline.
## Memory updates за сессию ## Memory updates за сессию
- (нет на этом раунде — нового durable факта о user/проекте не возникло; всё state в STATUS.md + `.tasks/task-loop-skill.md`) - (нет на этом раунде — нового durable факта о user/проекте не возникло; всё state в STATUS.md)

View File

@@ -1,5 +1,5 @@
# Task Board # Task Board
_Updated: 2026-06-11 — using-tasks-session-lock shipped (using-tasks 1.3.0→1.4.0; session lock guard: start step 1 + end step 1 + .gitignore + Structure docs). Ранее: meta-host-routing-review closed (VERDICT PASS; behavioral 8/8 via clean-context subagents — 5 pos→meta-host-routing, 3 neg routed away incl. known-Gitea Skip-clause; Steps verified vs live infra: yt-tools→OpeItcLoc03/meta-yt-tools dedicated host resolves, .common grep hits, excludesFile/auth.toml present; failure-modes→STOP+ask, What-NOT accurate; no blocking findings on skill v0.3.0. Observation: task acceptance «resolves .common» is stale — skill+reality route yt-tools to dedicated meta-yt-tools host. Caveat: -install + -hermes-mapping baselines remain ⚪ open — skill not in ~/.claude/skills nor hermes/mapping.yaml; review covers content+trigger-discrimination only, not live-harness activation). Ранее: task-format skill v0.1.0 created (TDD via writing-skills; RED 3-fail → GREEN 2-pass). Ранее: using-markitdown-cli-rewrite-review done (VERDICT PASS; SKILL.md без `mcp__markitdown__`, CLI-примеры совпадают с `markitdown 0.1.6 --help`, version 1.0.0→1.0.1 PATCH, dist консистентен; 1 informational finding — docker-контейнер респаунится из out-of-scope `~/.claude.json` MCP-регистрации → follow-up `using-markitdown-mcp-deregister` needs-human). Ранее: skill-using-system-snapshot-review done (VERDICT PASS 3/3; live tool-contract verify + 9-way fresh-context trigger test, 8 clean; 3 informational findings, none blocking — incl. missing deployment scaffold: skill not installed / not in hermes-mapping / no baseline tasks). Ранее: using-tasks-status-read-perf done (using-tasks 1.2.0→1.3.0; done-task archival rule fixes STATUS.md bloat; literal `tasks_get_status`-for-orientation swap NOT done — tool can't enumerate the board, documented). Ранее: session-break-using-tasks done (using-tasks 1.1.0→1.2.0; `session_break` marker — stop after close before claim-next). Ранее: delegate-task-review done (VERDICT PASS; smoke-test 6/6 fresh subagents, no blocking findings, 3 informational notes). Ранее: delegate-task-test-trigger done (pos 5/5, neg 2/3; FP на «создать задачу себе» → follow-up delegate-task-description-fp-fix, shipped v0.2.1). Ранее (2026-06-08): откат churn'а от агент-раннера (always-on dry-run): 5 тасок (using-yt-tools-rate-limit-guard, archive-roundtrip-test, skills-grouping-revisit, hermes-converter-ci, tdd-criteria-precommit-hook) спуриозно claimed/blocked из-за workspace-divergence бага раннера → возвращены в ⚪ ready. yt-tools re-scoped на plugin-репо `OpeItcLoc03/yt-tools` (исходный stub deprecated)._ _Updated: 2026-06-11 — task-loop-hermes-mapping closed (task-loop entry → hermes/mapping.yaml mode:pending, intended auto/mcp; reason claim/close/heartbeat + ScheduleWakeup; YAML validated; schema version untouched. 2 of 3 task-loop baselines now done; -test-trigger ⚪ remains, needs clean session). Ранее: task-loop-install closed (skill installed to ~/.claude/skills/, diff-identical to source, visible in available-skills with full description post-/reload-plugins; -test-trigger unblocked → ⚪ ready, needs clean session). Ранее: using-tasks-session-lock shipped (using-tasks 1.3.0→1.4.0; session lock guard: start step 1 + end step 1 + .gitignore + Structure docs). Ранее: meta-host-routing-review closed (VERDICT PASS; behavioral 8/8 via clean-context subagents — 5 pos→meta-host-routing, 3 neg routed away incl. known-Gitea Skip-clause; Steps verified vs live infra: yt-tools→OpeItcLoc03/meta-yt-tools dedicated host resolves, .common grep hits, excludesFile/auth.toml present; failure-modes→STOP+ask, What-NOT accurate; no blocking findings on skill v0.3.0. Observation: task acceptance «resolves .common» is stale — skill+reality route yt-tools to dedicated meta-yt-tools host. Caveat: -install + -hermes-mapping baselines remain ⚪ open — skill not in ~/.claude/skills nor hermes/mapping.yaml; review covers content+trigger-discrimination only, not live-harness activation). Ранее: task-format skill v0.1.0 created (TDD via writing-skills; RED 3-fail → GREEN 2-pass). Ранее: using-markitdown-cli-rewrite-review done (VERDICT PASS; SKILL.md без `mcp__markitdown__`, CLI-примеры совпадают с `markitdown 0.1.6 --help`, version 1.0.0→1.0.1 PATCH, dist консистентен; 1 informational finding — docker-контейнер респаунится из out-of-scope `~/.claude.json` MCP-регистрации → follow-up `using-markitdown-mcp-deregister` needs-human). Ранее: skill-using-system-snapshot-review done (VERDICT PASS 3/3; live tool-contract verify + 9-way fresh-context trigger test, 8 clean; 3 informational findings, none blocking — incl. missing deployment scaffold: skill not installed / not in hermes-mapping / no baseline tasks). Ранее: using-tasks-status-read-perf done (using-tasks 1.2.0→1.3.0; done-task archival rule fixes STATUS.md bloat; literal `tasks_get_status`-for-orientation swap NOT done — tool can't enumerate the board, documented). Ранее: session-break-using-tasks done (using-tasks 1.1.0→1.2.0; `session_break` marker — stop after close before claim-next). Ранее: delegate-task-review done (VERDICT PASS; smoke-test 6/6 fresh subagents, no blocking findings, 3 informational notes). Ранее: delegate-task-test-trigger done (pos 5/5, neg 2/3; FP на «создать задачу себе» → follow-up delegate-task-description-fp-fix, shipped v0.2.1). Ранее (2026-06-08): откат churn'а от агент-раннера (always-on dry-run): 5 тасок (using-yt-tools-rate-limit-guard, archive-roundtrip-test, skills-grouping-revisit, hermes-converter-ci, tdd-criteria-precommit-hook) спуриозно claimed/blocked из-за workspace-divergence бага раннера → возвращены в ⚪ ready. yt-tools re-scoped на plugin-репо `OpeItcLoc03/yt-tools` (исходный stub deprecated)._
<!-- <!--
Canonical layout. One block per task. Per-task deep context lives in Canonical layout. One block per task. Per-task deep context lives in
@@ -1103,7 +1103,7 @@ Acceptance 1-6 all met by test evidence (not by inspection). Per-task detail in
--- ---
## [task-loop-install] — [skill task-loop, baseline 1/3] Установить скил task-loop (shipped 0016c45). Запустить install.ps1 (Windows) / install.sh в ~/projects/claude-skills/, проверить что скил появляется в available-skills новой сессии (триггер-фразы из description), /reload-plugins. ## 🟢 [task-loop-install] — [skill task-loop, baseline 1/3] Установить скил task-loop (shipped 0016c45). Запустить install.ps1 (Windows) / install.sh в ~/projects/claude-skills/, проверить что скил появляется в available-skills новой сессии (триггер-фразы из description), /reload-plugins.
## Обязательные скилы — вызвать до начала работы ## Обязательные скилы — вызвать до начала работы
- invoke `using-tasks` — управление статусом этой задачи - invoke `using-tasks` — управление статусом этой задачи
@@ -1113,16 +1113,17 @@ Acceptance 1-6 all met by test evidence (not by inspection). Per-task detail in
**weight:** needs-claude **weight:** needs-claude
**notify:** OpeItcLoc03/workshop **notify:** OpeItcLoc03/workshop
**Status:** ready **Status:** done
**Where I stopped:** (not started) **Where I stopped:** Установлен 2026-06-11 через `install.ps1 -Names task-loop` (Windows/PS 5.1) → `~/.claude/skills/task-loop/SKILL.md`. Verified: (a) `diff` установленного против `skills/task-loop/SKILL.md` пустой — байт-идентичны, v0.1.0; (b) после `/reload-plugins` `task-loop` появился в available-skills этой сессии с ПОЛНЫМ описанием (YAML распарсился, RU/EN-триггеры «поработай очередь»/«work the queue»/«drain the board» на месте — не fallback к H1). Прецедент-консистентно с delegate-task-install / private-dev-public-publish-install (закрытие на «visible in available-skills post-load»; живой clean-session behavioral тест — отдельная задача -test-trigger). NB: reload отрапортовал «1 error during load — run /doctor» — НЕ про task-loop (тот загрузился чисто, с полным description); требует отдельной диагностики /doctor.
**Next action:** Запустить install.ps1 -Names task-loop (Windows), открыть новую CC-сессию, убедиться что task-loop в available-skills, /reload-plugins. Закрыть с пометкой как verified. **Next action:** (none — verified, kept until merged). Closing-notify в OpeItcLoc03/workshop + projects-meta tasks_close — отдельным шагом (cross-project mutation, требует подтверждения).
**Branch:** n/a **Branch:** n/a
**Notify:** OpeItcLoc03/workshop **Notify:** OpeItcLoc03/workshop
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/claude-skills / 2026-06-11T14:37:55.052Z --> <!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/claude-skills / 2026-06-11T14:37:55.052Z -->
<!-- closed-by: DESKTOP:claude-opus / 2026-06-11 / installed via install.ps1, diff-identical to source; task-loop visible in available-skills with full description post-/reload-plugins; clean-session behavioral test deferred to -test-trigger -->
--- ---
## [task-loop-hermes-mapping] — [skill task-loop, baseline 2/3] Добавить запись task-loop в ~/projects/claude-skills/hermes/mapping.yaml. **Режим: pending** (НЕ auto) — скил оркеструет claim/close/heartbeat (tasks_claim_next/tasks_close/tasks_update/tasks_heartbeat) и может армить ScheduleWakeup; это critical-infra-adjacent поведение, требует отдельного hermes-аудита tool-side эффектов перед auto-promotion (delegate-task Step 0). ## 🟢 [task-loop-hermes-mapping] — [skill task-loop, baseline 2/3] Добавить запись task-loop в ~/projects/claude-skills/hermes/mapping.yaml. **Режим: pending** (НЕ auto) — скил оркеструет claim/close/heartbeat (tasks_claim_next/tasks_close/tasks_update/tasks_heartbeat) и может армить ScheduleWakeup; это critical-infra-adjacent поведение, требует отдельного hermes-аудита tool-side эффектов перед auto-promotion (delegate-task Step 0).
## Обязательные скилы — вызвать до начала работы ## Обязательные скилы — вызвать до начала работы
- invoke `using-tasks` — управление статусом этой задачи - invoke `using-tasks` — управление статусом этой задачи
@@ -1132,16 +1133,17 @@ Acceptance 1-6 all met by test evidence (not by inspection). Per-task detail in
**weight:** needs-human **weight:** needs-human
**notify:** OpeItcLoc03/workshop **notify:** OpeItcLoc03/workshop
**Status:** ready **Status:** done
**Where I stopped:** (not started) **Where I stopped:** Запись добавлена 2026-06-11 в `hermes/mapping.yaml`, секция «pending (behavioral audit required)» (счётчик 6→7). `mode: pending` + `intended: {mode: auto, category: mcp}` + reason про оркестрацию claim/close/update/heartbeat (tasks_claim_next/tasks_close/tasks_update/tasks_heartbeat) + одиночный длинный ScheduleWakeup + critical-infra-adjacent. Category=mcp зеркалит delegate-task (tasks_*-touching → mcp). Стиль зеркалит delegate-task/session-handoff pending-записи. Schema-версию mapping (`version: 1`) НЕ бампал — это schema, не контент (прецедент delegate-task-hermes-mapping). Верификация: YAML парсится, task-loop теперь mapped. NB: build целиком ещё red — остаются 3 ДРУГИХ unmapped-скила (using-system-snapshot, meta-host-routing, task-format), каждый со своей отдельной -hermes-mapping таской; не в scope этой.
**Next action:** Добавить entry task-loop в hermes/mapping.yaml с mode: pending + intended {mode: auto, category: ...} + reason про claim/close/heartbeat-оркестрацию и ScheduleWakeup. Стиль зеркалить с delegate-task/meta-host-routing pending-записями. Не бампать schema-версию mapping. **Next action:** (none — kept until merged). Перевод pending→auto только после `task-loop-test-trigger` + аудита tool-side эффектов (claim/close/heartbeat).
**Branch:** n/a **Branch:** n/a
**Notify:** OpeItcLoc03/workshop **Notify:** OpeItcLoc03/workshop
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/claude-skills / 2026-06-11T14:38:06.509Z --> <!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/claude-skills / 2026-06-11T14:38:06.509Z -->
<!-- closed-by: DESKTOP:claude-opus / 2026-06-11 / task-loop entry added mode:pending, intended auto/mcp, reason claim/close/heartbeat + ScheduleWakeup; YAML validated, task-loop mapped; schema version untouched -->
--- ---
## 🔵 [task-loop-test-trigger] — [skill task-loop, baseline 3/3] Живая активация + trigger-discrimination для task-loop в чистой сессии (subagent-прогоны при разработке — прокси, не харнес). ## [task-loop-test-trigger] — [skill task-loop, baseline 3/3] Живая активация + trigger-discrimination для task-loop в чистой сессии (subagent-прогоны при разработке — прокси, не харнес).
**Должен активироваться (positive):** «поработай очередь», «прогони доску», «бери задачи по очереди», «работай пока не скажу стоп», «work the queue», «drain the board». **Должен активироваться (positive):** «поработай очередь», «прогони доску», «бери задачи по очереди», «работай пока не скажу стоп», «work the queue», «drain the board».
**НЕ должен (false-positive check):** «делегируй таску в проект X» (→ delegate-task), «обнови статус задачи Y» / «возобнови задачу Y» (→ using-tasks), «настрой поллер / agent-runner» (→ infra, не loop). **НЕ должен (false-positive check):** «делегируй таску в проект X» (→ delegate-task), «обнови статус задачи Y» / «возобнови задачу Y» (→ using-tasks), «настрой поллер / agent-runner» (→ infra, не loop).
@@ -1155,10 +1157,10 @@ Acceptance 1-6 all met by test evidence (not by inspection). Per-task detail in
**weight:** needs-claude **weight:** needs-claude
**notify:** OpeItcLoc03/workshop **notify:** OpeItcLoc03/workshop
**Status:** blocked **Status:** ready
**Where I stopped:** (not started) **Where I stopped:** Разблокирована 2026-06-11 — `task-loop-install` закрыт (скил в `~/.claude/skills/`, виден в available-skills). Сама эта сессия НЕ годится для прогона: она ставила скил (имплементер-прайм) + контекст не чист. Нужна свежая CC-сессия.
**Next action:** В чистой сессии (после task-loop-install) прогнать positive/negative триггеры + поведенческий сценарий (consult-gate, session_break-halt, empty→stop, watch→ScheduleWakeup-not-CronCreate). Findings → follow-up tasks. Закрыть когда зелено или findings зафайлены. **Next action:** В ЧИСТОЙ сессии прогнать positive/negative триггеры + поведенческий сценарий (consult-gate, session_break-halt, empty→stop, watch→ScheduleWakeup-not-CronCreate). Findings → follow-up tasks. Закрыть когда зелено или findings зафайлены.
**Blocker:** task-loop-install **Blocker:** (cleared — install done)
**Branch:** n/a **Branch:** n/a
**Notify:** OpeItcLoc03/workshop **Notify:** OpeItcLoc03/workshop
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/claude-skills / 2026-06-11T14:38:22.728Z --> <!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/claude-skills / 2026-06-11T14:38:22.728Z -->

View File

@@ -138,7 +138,7 @@ skills:
mode: skip mode: skip
reason: "Claude-Code-only orchestrator — Hermes uses hermes-installer-skill instead." reason: "Claude-Code-only orchestrator — Hermes uses hermes-installer-skill instead."
# ─── pending (6 — behavioral audit required) ───────────────────────── # ─── pending (7 — behavioral audit required) ─────────────────────────
delegate-task: delegate-task:
mode: pending mode: pending
@@ -181,3 +181,10 @@ skills:
mode: auto mode: auto
category: software-development category: software-development
reason: "Steps shell out to git / gh / Gitea-API, handle tokens, force-push, and repo deletion/privacy toggles — not a purely stylistic skill. Behavioral audit via private-dev-public-publish-test-trigger required before promotion to auto." reason: "Steps shell out to git / gh / Gitea-API, handle tokens, force-push, and repo deletion/privacy toggles — not a purely stylistic skill. Behavioral audit via private-dev-public-publish-test-trigger required before promotion to auto."
task-loop:
mode: pending
intended:
mode: auto
category: mcp
reason: "Orchestrates the board claim/close/update/heartbeat cycle via mcp__projects-meta__tasks_claim_next / tasks_close / tasks_update / tasks_heartbeat (cross-session claim ownership, irreversible close, Gitea side-effects) and may arm a single long ScheduleWakeup for the explicit long-watch opt-in. Critical-infra-adjacent — touches the same claim/close machinery the unattended poller relies on. Behavioral audit via task-loop-test-trigger required before promotion to auto."