From 2cd52cfcec8048d5a0bb416445e3334ccb2b1eb5 Mon Sep 17 00:00:00 2001 From: vitya Date: Wed, 17 Jun 2026 11:24:21 +0300 Subject: [PATCH] feat(session-inbox-monitor): close -test-trigger (PASS) + add CLAUDE.md trigger-line test-trigger run in a clean session via 7 unprimed clean-context subagents. Positives 4/4 -> session-inbox-monitor (incl. CLAUDE.md-line P4). Negatives 2/3 clean (N2 multi-machine backend, N3 received-msg EN -> none); N1 RU received-msg = borderline false-positive, self-corrects on body-load, root cause = inter-session-peer-discipline sibling not installed in registry. Filed follow-up session-inbox-monitor-received-msg-fp. -review unblocked (needs a non-implementer session). Added `inbox monitor: raise on start` to project CLAUDE.md (user-approved) -- discoverable opt-in + materializes P4. Co-Authored-By: Claude Opus 4.8 (1M context) --- .tasks/STATUS.md | 37 +++++++++++++++++++++++++++---------- CLAUDE.md | 1 + 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index 04ec8ba..dfa92e3 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -1,5 +1,5 @@ # Task Board -_Updated: 2026-06-11 — task-loop-test-trigger closed (VERDICT PASS; live clean-session run: pos 6/6→task-loop, neg discrimination clean, task-loop FP 0/3, behavioral 4/4 [consult-gate, session_break BOUNDARY, empty-stop-no-poll, long-watch ScheduleWakeup≥1200 not CronCreate]; registry confirmed real via subagent probe; **ALL 3 task-loop baselines now done**; finding: session_break is the fragile gate — body-load-dependent, informational only, no fix). Ранее: 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)._ +_Updated: 2026-06-17 — session-inbox-monitor-test-trigger closed (VERDICT PASS; clean-session run, 7 непрайменных субагентов: pos 4/4→session-inbox-monitor [вкл. CLAUDE.md-line P4], neg 2/3 [N2 backend→none, N3 received-msg EN→none, N1 received-msg RU→FP]; FP borderline + body-load-self-correcting, корень=inter-session-peer-discipline не установлен; follow-up `session-inbox-monitor-received-msg-fp` заведён; `-review` разблокирован [нужна НЕ-имплементер сессия]; строка `inbox monitor: raise on start` добавлена в CLAUDE.md по согласию user). Ранее: task-loop-test-trigger closed (VERDICT PASS; live clean-session run: pos 6/6→task-loop, neg discrimination clean, task-loop FP 0/3, behavioral 4/4 [consult-gate, session_break BOUNDARY, empty-stop-no-poll, long-watch ScheduleWakeup≥1200 not CronCreate]; registry confirmed real via subagent probe; **ALL 3 task-loop baselines now done**; finding: session_break is the fragile gate — body-load-dependent, informational only, no fix). Ранее: 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)._ + --- @@ -1248,7 +1249,23 @@ NB: `stop-dispatcher.ps1` — machine-local (вне git, владелец — wo --- -## 🔵 [session-inbox-monitor-review] — Skill-review checkpoint для session-inbox-monitor (промоушен 2026-06-17). +## ⚪ [session-inbox-monitor-received-msg-fp] — Follow-up из `-test-trigger` (2026-06-17). False-positive: на RU-фразу «обработай полученное письмо из инбокса» (N1) субагент активировал `session-inbox-monitor` вместо «none / handle per CLAUDE.md inter-session rule». EN-вариант той же сцены (N3) и мультимашинный backend (N2) ушли в `none` чисто — FP граничный/недетерминированный. + +**Диагноз:** carve-out «NOT for how to handle a received message (→ inter-session-peer-discipline)» стоит В КОНЦЕ description, а редирект-таргет `inter-session-peer-discipline` **не установлен** в registry → carve-out некуда увести запрос, «ближайший реальный inbox-скил» (session-inbox-monitor) становится аттрактором. Самокорректируется при загрузке тела (тело явно «не моя работа»), потому harm = один лишний skill-load, не неверное действие. Изоморфно `session_break`-находке task-loop. + +**Опции фикса (решить, не обязательно делать):** (a) поднять/усилить carve-out в description — вынести «NOT for handling a received message» раньше/жирнее; (b) установить sibling `inter-session-peer-discipline`, чтобы у carve-out был реальный таргет (вероятно настоящий корень — но это отдельный скил, может ещё не существовать); (c) принять как informational (как session_break) — body-load self-correct + низкий harm. Перед фиксом (a) учесть: правка description = повторный `-test-trigger` + влияет на `-review`. + +**Weight:** needs-human +**Status:** ready +**Where I stopped:** (not started) — зафайлено при закрытии `-test-trigger`. +**Next action:** Решить опцию (a/b/c). Если (a) — bump PATCH, re-test, ре-инсталл. Если (b) — проверить, существует ли `inter-session-peer-discipline` как источник, и его baseline-лента. Если (c) — закрыть wontfix с пометкой про body-load self-correction. +**Branch:** n/a +**Notify:** OpeItcLoc03/workshop + + +--- + +## ⚪ [session-inbox-monitor-review] — Skill-review checkpoint для session-inbox-monitor (промоушен 2026-06-17). **Источник дизайна:** .workshop/.archive/2026-06-17-session-inbox-monitor.md + .workshop/.wiki/concepts/session-inbox-monitor.md. **Импл-таски:** -install, -hermes-mapping, -test-trigger, -sessionstart-hook, -stophook-blockfix-proof. @@ -1265,10 +1282,10 @@ Findings → follow-up tasks в claude-skills. **NB по семверу:** version 0.1.0 записан промоутером. Дальнейшие инкременты — владелец claude-skills, не ревьюер. -**Status:** blocked -**Where I stopped:** (not started) -**Next action:** Дождаться 🟢 у 5 baseline/content-тасок. Прогнать поведенческий smoke-test (см. чек-лист). Findings → tasks_create в claude-skills. -**Blocker:** impl-tasks: session-inbox-monitor-install, session-inbox-monitor-hermes-mapping, session-inbox-monitor-test-trigger, session-inbox-monitor-sessionstart-hook, session-inbox-monitor-stophook-blockfix-proof +**Status:** ready +**Where I stopped:** (not started) — разблокирован 2026-06-17: все 5 baseline/content-тасок 🟢 + `-test-trigger` 🟢 (VERDICT PASS). Зонтичное ревью. +**Next action:** **ТОЛЬКО НЕ-имплементер / другая сессия** (эта прогнала `-test-trigger` → для ревью недостоверна). Прогнать поведенческий smoke-test (см. чек-лист): активация на триггерах RU+EN / не на чужих; SessionStart sweep+inject (ровно один Monitor, headless skip); Stop-хук block-фикс без цикла; тело SKILL.md соответствует реальности. Учесть открытый finding `session-inbox-monitor-received-msg-fp`. Findings → tasks_create в claude-skills. +**Blocker:** (cleared — 5 baseline/content + test-trigger все 🟢) **Branch:** n/a **Notify:** OpeItcLoc03/workshop diff --git a/CLAUDE.md b/CLAUDE.md index ee458ee..62ea9cf 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,6 +8,7 @@ use task management system check across all projects pull remote before work session handoff: read on start, write on end +inbox monitor: raise on start follow project discipline follow tdd-criteria delegate to interns when allowed