diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index 7c7f7c9..69936c5 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -802,21 +802,19 @@ needs-claude --- -## 🔴 [using-tasks-status-read-perf-review] — Review фикса STATUS.md bloat в `using-tasks`. +## 🟢 [using-tasks-status-read-perf-review] — Review фикса STATUS.md bloat в `using-tasks`. -- [ ] Ориентация действительно идёт через `tasks_get_status`, не Read -- [ ] Нет регрессий — полный обзор доски всё ещё работает когда нужен -- [ ] Правило архивации done-задач понятно сформулировано +- [x] Ориентация действительно идёт через `tasks_get_status`, не Read — **deviation validated** (см. ниже) +- [x] Нет регрессий — полный обзор доски всё ещё работает когда нужен +- [x] Правило архивации done-задач понятно сформулировано **Weight:** needs-claude -**Status:** active -**Where I stopped:** (not started) -**Next action:** Прочитать обновлённый SKILL.md, проверить что Read STATUS.md убран из ориентационного flow +**Status:** done +**Where I stopped:** **VERDICT PASS 3/3.** Reviewed `skills/using-tasks/SKILL.md` v1.3.0 + concept page `using-tasks-status-archival.md`. (1) The «ориентация через `tasks_get_status`» criterion rests on a factual error — re-verified against the **live** tool schema: `tasks_get_status(target_project, slug)→{status, found}` takes a REQUIRED slug and returns ONE task; it provably cannot enumerate the board, so it cannot drive orientation. Implementer correctly rejected the impossible instruction and fixed the real problem (bloat→archival); deviation documented in concept page + close note. Criterion satisfied by a validated deviation, not a literal swap. (2) No regression: orientation still reads local STATUS.md (Session start §2) and the «what's next» flow still reads the board — change is purely additive (archival rule + explicit warnings against `tasks_aggregate`/`tasks_get_status` for enumeration). (3) Archival rule clear & complete: ≥10 🟢 threshold, two trigger points (Session start §7 + Task completion §7), monthly append-only `archive/YYYY-MM.md`, verbatim blocks, dedicated commit, cross-referenced from Structure/steps/Rules. Informational (non-blocking): this repo's own STATUS.md (>10 🟢) would itself trip the new rule — dogfooding tracked separately as `tasks-board-cleanup-2026-05`, correctly scoped out. No follow-up tasks needed. Review verdict appended to concept page. +**Next action:** (none — kept until merged) **Branch:** n/a -**Owner:** DESKTOP-NSEF0UK:claude-opus:18704 -**Claim token:** ec64d6dc-a378-4f66-b45a-eb3d7c83f257 -**Claim expires at:** 2026-06-09T16:48:03.591Z + --- diff --git a/.wiki/concepts/using-tasks-status-archival.md b/.wiki/concepts/using-tasks-status-archival.md index 0fae32b..60f49b3 100644 --- a/.wiki/concepts/using-tasks-status-archival.md +++ b/.wiki/concepts/using-tasks-status-archival.md @@ -61,3 +61,24 @@ wrong tool propagates the error everywhere. Pairs with [[using-tasks-session-break]] (the prior v1.2.0 increment) and the local-first read rule in [[projects-meta-skills]]. + +## Review verdict (2026-06-09) + +Paired review task [using-tasks-status-read-perf-review] — **VERDICT PASS 3/3**. + +- **"Orientation via `tasks_get_status`, not Read"** — the deviation was independently re-verified + against the **live** tool schema: `mcp__projects-meta__tasks_get_status(target_project, slug)` + takes a **required** `slug` and returns `{status, found}` for a single task. It provably cannot + enumerate the board, so it cannot drive orientation. The implementer correctly rejected an + impossible instruction and fixed the real problem (bloat) via archival. Criterion satisfied by a + validated deviation, not by a literal swap. +- **No regression** — orientation still reads the local `STATUS.md` (Session start §2) and the + "what's next" recommendation flow still reads the local board; the change is purely additive + (archival rule + explicit warnings against `tasks_aggregate` / `tasks_get_status` for enumeration). +- **Archival rule is clear** — threshold (≥10 🟢), two trigger points, monthly append-only + `archive/YYYY-MM.md`, verbatim blocks, dedicated commit; cross-referenced from Structure, both step + lists, and Rules. + +Informational, non-blocking: this repo's own `STATUS.md` (>10 🟢 done blocks) would itself trip the +new rule — dogfooding tracked separately as [tasks-board-cleanup-2026-05]; impl correctly scoped it +out. diff --git a/.wiki/log.md b/.wiki/log.md index c19fb62..f7cbc7d 100644 --- a/.wiki/log.md +++ b/.wiki/log.md @@ -72,3 +72,4 @@ Parseable: `grep "^## \[" .wiki/log.md | tail -20`. ## [2026-06-09] review | using-system-snapshot v0.1.0 — VERDICT PASS on all 3 acceptance criteria (skill-using-system-snapshot-review). Tool contract verified by a live `meta_system_snapshot` call (output matches the documented `poller`/`docker`/`tasks` shape exactly). Behavioral trigger smoke = 9 fresh-context subagents over a simulated registry (real descriptions + using-vds-ops/using-projects-meta/using-tasks competitors, no expected-answer hint): 4/4 positives → using-system-snapshot; VDS-logs → using-vds-ops; mutate/full-board → using-projects-meta; `docker-compose.yml` edit → none (no FP on "docker" keyword). No-claim-without-snapshot rule explicit in 4 places; three-line output format confirmed achievable against the live payload. 3 informational findings (none blocking): (1) cross-project task-COUNT phrasings overlap with using-projects-meta — by-design, snapshot defers precise per-task work; (2) LOCAL-container deep diagnosis is unowned — vds-ops incident triggers grab local containers its VDS-only tools can't reach (vds-ops scoping, not this skill); (3) deployment scaffold missing — skill committed but not installed to `~/.claude/skills/`, not in `hermes/mapping.yaml`, no -install/-hermes-mapping/-test-trigger baseline tasks; recommended follow-ups (hermes mode could be `auto`, read-only skill). Review outcome appended to concepts/using-system-snapshot-design.md. ## [2026-06-09] decision | using-tasks-status-archival — `using-tasks` 1.2.0→1.3.0 (MINOR): added done-task archival rule to fix STATUS.md bloat ("huge STATUS.md" complaint). When ≥10 🟢 done blocks pile up — checked at session start (step 7) and after close (Task completion step 7) — move them verbatim to `.tasks/archive/YYYY-MM.md` (append, one file per month, one-time header), leaving only 🔴/🟡/⚪/🔵 on the board; committed on its own. Did NOT follow the task's literal instruction to replace `Read STATUS.md` with `tasks_get_status` for orientation: that tool returns a single task's live status by known slug (`{status, found}`) and cannot enumerate the board, and `tasks_aggregate` is cross-project + cache-based + doesn't index ready/done (its docs say read STATUS.md directly for the current project). So orientation stays a local board-read (kept cheap by archival); skill now warns against both tools for board enumeration and points `tasks_get_status` at its real single-task use. Core goal (kill the bloat) met by archival alone. Concept page concepts/using-tasks-status-archival.md + index. TDD N/A (markdown policy). Deviation flagged for paired review task using-tasks-status-read-perf-review. ## [2026-06-09] decision | using-tasks-session-break — `using-tasks` 1.1.0→1.2.0 (MINOR): added the `session_break` marker. Task author sets `session_break: true | ""` in task frontmatter (mirrored as `**Session break:**` on the local board); after the task closes 🟢, before `tasks_claim_next`, an autonomous agent prints the verbatim line `🔚 SESSION BOUNDARY — [slug] закрыта. Рекомендую завершить текущую сессию. Следующий трек: [value | "см. STATUS.md"]` and stops instead of chaining the next task. Absent → behaviour unchanged. Enforced in Task completion step 6 + Rules bullet + format docs. Marker not heuristic: the stop-point is an authoring choice, not a runner guess. +## [2026-06-09] review | using-tasks-status-archival v1.3.0 — VERDICT PASS 3/3 (using-tasks-status-read-perf-review). Criterion «ориентация через `tasks_get_status`, не Read» is satisfied by a **validated deviation**, not a literal swap: re-verified against the live tool schema that `tasks_get_status(target_project, slug)→{status, found}` takes a required slug and returns ONE task — it cannot enumerate the board, so it cannot drive orientation; the implementer correctly rejected the impossible instruction and fixed the real problem (bloat→archival). No regression: orientation still reads local STATUS.md (Session start §2) and the «what's next» flow still reads the board — change is purely additive. Archival rule clear & complete (≥10 threshold, two trigger points, monthly append-only archive, verbatim blocks, dedicated commit, cross-referenced). One informational non-blocking note: this repo's own STATUS.md (>10 🟢) would itself trip the rule — dogfooding tracked separately as tasks-board-cleanup-2026-05. No follow-up tasks. Verdict appended to concepts/using-tasks-status-archival.md.