---
session_id: S-2026-0405-0102
timestamp: 2026-04-04T23:02:43Z
predecessor: S-2026-0404-2250
tasks_active: [T-316, T-332, T-334, T-432, T-436, T-446, T-448, T-449, T-460, T-464, T-470, T-476, T-479, T-481, T-483, T-493, T-505, T-511, T-516, T-518, T-530, T-532, T-533, T-544, T-548, T-549, T-550, T-554, T-557, T-558, T-571, T-579, T-584, T-586, T-594, T-598, T-599, T-600, T-601, T-602, T-603, T-604, T-607, T-608, T-610, T-611, T-612, T-613, T-614, T-619, T-621, T-631, T-632, T-633, T-634, T-640, T-644, T-645, T-646, T-648, T-650, T-651, T-662, T-663, T-664, T-671, T-676, T-678, T-679, T-682, T-686, T-696, T-697, T-698, T-699, T-700, T-701, T-702, T-703, T-704, T-705, T-706, T-707, T-708, T-710, T-726, T-730, T-772, T-782, T-792, T-799, T-800, T-801, T-802, T-803, T-804, T-805, T-806, T-807, T-815, T-816, T-817, T-818, T-819, T-822, T-823, T-824, T-825, T-826, T-827, T-828, T-829, T-830, T-831, T-832, T-835, T-837, T-844, T-849, T-850, T-851, T-856, T-857, T-860, T-864, T-866]
tasks_touched: [T-815, T-819, T-828, T-831, T-857, T-860, T-801, T-633, T-818, T-866, T-837, T-844, T-805, T-799, T-849, T-804, T-823, T-829, T-806, T-864, T-807, T-800, T-851, T-827, T-792, T-832, T-824, T-802, T-648, T-817, T-803, T-830, T-835, T-856, T-850, T-826, T-822, T-621, T-816, T-664, T-825, T-483, T-862, T-861, T-854, T-852, T-867, T-869, T-839, T-853, T-809, T-834, T-868, T-568, T-812, T-848, T-808, T-821, T-843, T-859, T-855, T-841, T-870, T-569, T-840, T-842, T-820, T-847, T-814, T-810, T-863, T-838, T-813, T-836, T-865, T-846, T-858, T-845, T-833, T-567, T-811]
tasks_completed: []
uncommitted_changes: 3
token_usage: "1.1B tokens, 8978 turns"
token_input: "104.5K"
token_cache_read: "1.1B"
token_cache_create: "18.0M"
token_output: "1.5M"
commits_per_turn: "0.0379"
first_commit_turn: "93"
failed_tool_calls: "421"
failed_tool_call_rate: "0.0711"
edit_bursts: "246"
productive_turns_ratio: "0.3388"
session_turns: "8981"
session_commits: "340"
session_commits_per_turn: "0.0379"
session_failed_tool_calls: "421"
session_failed_tool_call_rate: "0.0711"
session_edit_bursts: "246"
session_productive_turns_ratio: "0.3388"
owner: claude-code
session_narrative: ""
---

# Session Handover: S-2026-0405-0102

## Where We Are

Session worked on: T-870 (Sync vendored .agentic-framework/ with T-868/T-869 bugfixes); T-869 (Fix ((var++)) set -e crash in bin/fw verify-acs); T-868 (Fix ((count++)) set -e crash in healing suggest.sh); T-864 (Inception research — task execution stats (NO-GO recommended)); T-866 (Inception research — audit cron zombie fix (GO recommended)). Plus 2 more commit(s).

## Work in Progress

<!-- horizon: now -->

### T-801: "fw costs CLI — token usage tracking from JSONL transcripts"
- **Status:** started-work (horizon: now)
- **Last action:** T-801: Add fw costs CLI — token usage tracking from JSONL transcripts
- **Next step:** See task file
- **Blockers:** None


### T-802: "Watchtower token dashboard — /costs page with session table and project summary"
- **Status:** started-work (horizon: now)
- **Last action:** T-012: Fix curl pipe exit 23 in verification commands (L-002)
- **Next step:** See task file
- **Blockers:** None


### T-803: "Landing page token widget — show current session tokens on Watchtower dashboard"
- **Status:** started-work (horizon: now)
- **Last action:** T-012: Fix curl pipe exit 23 in verification commands (L-002)
- **Next step:** See task file
- **Blockers:** None


### T-804: "Add fw costs to CLAUDE.md quick reference table"
- **Status:** started-work (horizon: now)
- **Last action:** T-804: Add fw costs to CLAUDE.md quick reference table
- **Next step:** See task file
- **Blockers:** None


### T-805: "Handover token summary — include session token usage in handover documents"
- **Status:** started-work (horizon: now)
- **Last action:** T-805: Fix cache read extraction — awk field 3 not 2
- **Next step:** See task file
- **Blockers:** None


### T-806: "fw doctor token health — show session token usage in health check"
- **Status:** started-work (horizon: now)
- **Last action:** T-806: Add session token usage to fw doctor output
- **Next step:** See task file
- **Blockers:** None


### T-807: "Unit tests for lib/costs.sh token tracking"
- **Status:** started-work (horizon: now)
- **Last action:** T-807: Register lib_costs test component in fabric
- **Next step:** See task file
- **Blockers:** None


### T-815: "traceAI evaluation — OpenTelemetry AI observability vs framework directives"
- **Status:** started-work (horizon: now)
- **Last action:** T-815: Complete agent ACs, add recommendation section
- **Next step:** See task file
- **Blockers:** None


### T-825: "Timeline token usage — show per-session token costs in Watchtower /timeline"
- **Status:** started-work (horizon: now)
- **Last action:** T-825: Inception research — timeline token usage (GO recommended)
- **Next step:** See task file
- **Blockers:** None


### T-835: "Watchtower stale task dashboard — notification, batch review, and auto-resolution for 54+ pending human review tasks"
- **Status:** started-work (horizon: now)
- **Last action:** T-835: Inception complete — stale task dashboard research (GO recommended)
- **Next step:** See task file
- **Blockers:** None


### T-837: "Auto-detect context window from model — eliminate hardcoded CONTEXT_WINDOW default"
- **Status:** started-work (horizon: now)
- **Last action:** T-837: Inception research — auto-detect context window (NO-GO recommended)
- **Next step:** See task file
- **Blockers:** None


### T-844: "SSD evaluation — Simple Self-Distillation for code generation (arxiv 2604.01193)"
- **Status:** started-work (horizon: now)
- **Last action:** T-844: SSD paper evaluation — Simple Self-Distillation for code generation (DEFER)
- **Next step:** See task file
- **Blockers:** None


### T-856: "TermLink dispatch project context — fix worker CWD resolution so hooks find correct PROJECT_ROOT"
- **Status:** captured (horizon: now)
- **Last action:** T-856: Inception — TermLink dispatch project context (CWD resolution)
- **Next step:** See task file
- **Blockers:** None


### T-866: "Audit cron zombie accumulation — flock guard, timeout, stale reaper"
- **Status:** started-work (horizon: now)
- **Last action:** T-012: Session context updates + T-866 research addendum
- **Next step:** See task file
- **Blockers:** None


### Awaiting Human Review (60 tasks)

Agent ACs done. Human ACs pending — see "Awaiting Your Action" below.

- **T-446**: "Rewrite README: sharp positioning, evidence-first, 5-min demo, honest gradient"
- **T-460**: "Create onboarding task template files for both init modes"
- **T-470**: "Deep-dive article 17: Why Bash, YAML and Files — the anti-enterprise stack"
- **T-476**: "GitHub Actions workflow for bats tests"
- **T-493**: "fw update command — CLI wrapper for framework self-update"
- **T-516**: "Tier B E2E tests — 4 agent-level Claude Code governance tests"
- **T-602**: "Fix multi-project cron collision — project-specific /etc/cron.d filenames"
- **T-607**: "Correction & Refinement Loop Research"
- **T-613**: "Update Homebrew tap formula to v1.4.0 + fix consumer project hook errors"
- **T-614**: "TermLink consumer project governance bypass investigation — Tier 0 bypass, taskless work, structural regression analysis"
- **T-621**: "fw serve — add UFW firewall check to watchtower.sh startup"
- **T-633**: "Auto-link file references — fw commands and Watchtower markdown emit clickable URLs"
- **T-634**: "Deterministic human review — shared _emit_review helper, auto-emit on partial-complete and inception decide, /review skill"
- **T-640**: "\"Complete Task\" button — show when all Human ACs checked, auto-complete via Watchtower"
- **T-644**: "Watchtower landing page refactor — summary dashboard pointing to /approvals as action hub"
- **T-645**: "Landing page summary card — replace full Human AC list with counts + top 3 + /approvals link"
- **T-646**: "MCP auto-config — seed .mcp.json during fw init and reconcile during fw upgrade"
- **T-648**: "Git-derived versioning — auto-increment patch from commit count since tag"
- **T-650**: "Bash task gate — safe-command allowlist + write-pattern detection in check-active-task.sh"
- **T-651**: "Agent/Task tool gate — add Agent|TaskCreate to check-active-task matcher"
- **T-662**: "Eliminate global HOME/.agentic-framework dependency — full project isolation without PATH-based fw resolution"
- **T-663**: "Fix framework hooks — replace bare fw with bin/fw in settings.json"
- **T-664**: "Project-detecting fw shim — replace global install symlink"
- **T-671**: "Landing page QR code — generate QR for /approvals URL on Watchtower dashboard"
- **T-676**: "Watchtower dark mode toggle — persist theme preference"
- **T-678**: "vnx-orchestration deep-dive — ingest, build fabric, analyze architecture and patterns"
- **T-679**: "Path C workflow refinement — document TermLink-based external ingestion, redo vnx experiment from scratch, capture learnings for TermLink and framework"
- **T-686**: "Article angle 3 — landscape differentiation research"
- **T-696**: "Qualify Path C as repeatable pattern — template + second experiment"
- **T-697**: "Deep-dive: KCP (Knowledge Context Protocol) — Path C codebase ingestion"
- **T-698**: "TermLink dispatch observability — evaluate interactive vs headless worker mode for human observation"
- **T-702**: "Single-source-of-truth generation — generate CLAUDE.md and hooks from structured manifest"
- **T-706**: "Write KCP deep-dive post — ingestion, evaluation, scoring, decision rationale"
- **T-707**: "Deep-dive: ntfy — Path C ingestion + framework notification enhancement"
- **T-708**: "lib/notify.sh — thin wrapper calling skills-manager alert dispatcher"
- **T-726**: "Integrate D3.js Fabric Explorer from OpenClaw evaluation into upstream Watchtower"
- **T-730**: "Integrate D3.js Fabric Explorer into upstream Watchtower"
- **T-772**: "Cross-project pickup channel — MCP/TermLink-based push for learnings, bugfixes, feature proposals"
- **T-782**: "Deep-dive article: Fabric Explorer — from static DAG to interactive architecture browser"
- **T-799**: "Token cost tracking — count/calculate per-task and project-total token usage and costs"
- **T-800**: "Token efficiency strategies — reduce per-task and per-session cost through context management, output discipline, caching, and dispatch optimization"
- **T-816**: "Null object fallback for hooks — fail-open resilience pattern"
- **T-817**: "3-tier config resolution — env var configuration layer for framework settings"
- **T-818**: "TermLink dispatch result persistence — ensure worker outputs survive parent budget exhaustion"
- **T-819**: "Build lib/config.sh — 3-tier config resolution for framework settings"
- **T-822**: "Complete fw_config migration — remaining hardcoded settings in hooks and lib scripts"
- **T-823**: "Automated Human AC verification — programmatic, TermLink E2E, and Playwright approaches for stale task clearance"
- **T-824**: "fw verify-acs CLI — automated Human AC evidence collection for stale tasks"
- **T-826**: "Timeline token usage — add per-session token costs to /timeline cards"
- **T-827**: "Timeline per-session token delta — show session-specific token and turn counts alongside cumulative"
- **T-828**: "Input/output token breakdown — enrich handover frontmatter and timeline with per-category token counts"
- **T-829**: "Input/output token breakdown — enrich handover frontmatter and timeline display"
- **T-830**: "Session length optimization — when to /clear vs continue, context cost vs momentum tradeoff"
- **T-831**: "Session quality metrics — session-metrics.sh JSONL analyzer + handover integration"
- **T-832**: "Fix install.sh unbound LOCAL_REPO variable in update path"
- **T-849**: "Fix Fabric Explorer double-refresh bug — componentData hoisting + hardcoded OpenClaw data"
- **T-850**: "Fix session metrics — per-session deltas instead of cumulative transcript analysis"
- **T-851**: "Linkable task references in handover session summary — clickable T-XXX links to Watchtower task pages"
- **T-857**: "fw upgrade sync gap — lib/, agents/task-create/, agents/handover/, agents/git/ not vendored to consumer projects"
- **T-864**: "Inception: Record task execution stats (timing, token cost, complexity) in task files"

<!-- horizon: next -->

### T-332: "Submit to awesome lists (awesome-ai-agents, awesome-agents, awesome-copilot)"
- **Status:** started-work (horizon: next)
- **Last action:** T-332: Submit awesome list PRs — bradAGI #2, e2b-dev #78
- **Next step:** See task file
- **Blockers:** None


### T-334: "Execute launch sequence: r/ClaudeAI soft launch → Show HN → amplification"
- **Status:** started-work (horizon: next)
- **Last action:** T-334: Update launch draft stats — 500+ tasks, 98% traceability, 130+ checks
- **Next step:** See task file
- **Blockers:** None


### T-449: "Deep-dive articles 02-06: editing pass — strip fabricated stats, tighten voice"
- **Status:** captured (horizon: next)
- **Last action:** T-450: Article 16 — honest machines, real doubt, fabricated stats exposed
- **Next step:** See task file
- **Blockers:** None


### T-464: "PR #6: feat: /capture skill + C-002 Exploratory Conversation Guard"
- **Status:** started-work (horizon: next)
- **Last action:** T-464: Cherry-pick /capture skill + C-002 Conversation Guard from PR #6
- **Next step:** See task file
- **Blockers:** None


### T-532: "Onboarding gate — structural enforcement that setup tasks complete before other work"
- **Status:** started-work (horizon: next)
- **Last action:** T-012: Check completed Agent ACs on T-532, T-533, T-601, T-603 — research done, decisions recorded
- **Next step:** See task file
- **Blockers:** None


### T-533: "Agent-to-TermLink dispatch rerouting — PreToolUse hook enforcing TermLink-first for heavy parallel work"
- **Status:** started-work (horizon: next)
- **Last action:** T-012: Check completed Agent ACs on T-532, T-533, T-601, T-603 — research done, decisions recorded
- **Next step:** See task file
- **Blockers:** None


### T-544: "Create TermLink Homebrew tap with GitHub Actions builds"
- **Status:** started-work (horizon: next)
- **Last action:** See git log
- **Next step:** See task file
- **Blockers:** None


### T-548: "npm install pathway — evaluate whether to build npm-based framework installation"
- **Status:** started-work (horizon: next)
- **Last action:** T-012: Complete T-548 inception research — npm install pathway (NO-GO recommendation)
- **Next step:** See task file
- **Blockers:** None


### T-549: "OpenClaw deep-dive — ingest existing project, evaluate architecture, extract value, capture framework learnings"
- **Status:** started-work (horizon: next)
- **Last action:** T-012: Close superseded T-567/T-568/T-569 — covered by parent T-549/T-678
- **Next step:** See task file
- **Blockers:** None


### T-554: "Single started-work gate — enforce one active task, inception starts as captured"
- **Status:** started-work (horizon: next)
- **Last action:** T-554: Add concurrent started-work advisory + inception starts as captured
- **Next step:** See task file
- **Blockers:** None


### T-557: "Inception GO decision human-confirm gate — block fw inception decide for agent, require human confirmation"
- **Status:** started-work (horizon: next)
- **Last action:** T-557: Add Tier 0 gate for inception decide — human authority required
- **Next step:** See task file
- **Blockers:** None


### T-558: "Build task risk signal detection — PreToolUse gate requiring inception for high-impact builds"
- **Status:** started-work (horizon: next)
- **Last action:** T-012: Fix audit C-001 warnings — add artifact references to 4 inception tasks
- **Next step:** See task file
- **Blockers:** None


### T-586: "Language strategy — TypeScript adoption for new framework components vs bash+Python hybrid status quo"
- **Status:** started-work (horizon: next)
- **Last action:** T-734: Commit untracked research artifacts — OpenClaw patterns, T-586 spikes
- **Next step:** See task file
- **Blockers:** None


### T-601: "Multi-project cron collision — fw audit schedule install overwrites single /etc/cron.d/agentic-audit, silently disabling all other projects"
- **Status:** started-work (horizon: next)
- **Last action:** T-012: Check completed Agent ACs on T-532, T-533, T-601, T-603 — research done, decisions recorded
- **Next step:** See task file
- **Blockers:** None


### T-603: "Inception: Project boundary exceptions — /etc/cron.d and other legitimate outside-PROJECT_ROOT writes"
- **Status:** started-work (horizon: next)
- **Last action:** T-012: Check completed Agent ACs on T-532, T-533, T-601, T-603 — research done, decisions recorded
- **Next step:** See task file
- **Blockers:** None


### T-604: "Cron copy-on-change — git-tracked cron definitions with drift detection and sudo degradation"
- **Status:** started-work (horizon: next)
- **Last action:** T-559: Complete — boundary gate verified and ACs checked
- **Next step:** See task file
- **Blockers:** None


### T-608: "Frictionless Tier 0 human confirmation — prove human acted without terminal switching"
- **Status:** started-work (horizon: next)
- **Last action:** T-012: Fix audit C-001 warnings — add artifact references to 4 inception tasks
- **Next step:** See task file
- **Blockers:** None


### T-682: "TermLink product feedback — --working-dir flag for spawn + MCP as default"
- **Status:** captured (horizon: next)
- **Last action:** See git log
- **Next step:** See task file
- **Blockers:** None


### T-705: "KCP integration — knowledge.yaml generation from fabric/context + MCP bridge adoption"
- **Status:** started-work (horizon: next)
- **Last action:** T-012: Session housekeeping — complete T-700/T-701/T-705/T-714, generate episodics
- **Next step:** See task file
- **Blockers:** None


### Awaiting Human Review (23 tasks)

Agent ACs done. Human ACs pending — see "Awaiting Your Action" below.

- **T-479**: "Primary development platform: GitHub vs OneDev — source of truth, CI, issues, community interaction for post-launch"
- **T-481**: "Fix install.sh update path — handle dirty state and macOS filemode"
- **T-483**: "Fix Python 3.9 compat — replace union type hints (dict | None) with Optional"
- **T-505**: "Deep-dive article: Blast Radius — structural impact analysis for agentic engineering"
- **T-511**: "Write governance.yaml — predictability x blast-radius operation class declarations"
- **T-518**: "Fix bash 3.2 compat — replace declare -A with POSIX-safe lookups (macOS)"
- **T-530**: "Port claude-fw --termlink flag from consumer project to upstream"
- **T-571**: "TermLink supervisor event loop — reliable bidirectional signaling between supervisor and dispatched agents"
- **T-579**: "Inception: Idempotency/dedup layer — prevent hook re-entry and double task completion"
- **T-594**: "Port loop detector to TypeScript — first real TS hook component"
- **T-598**: "Inception: Bridge fw dispatch to TermLink file/remote — replace SSH text pipe with native hub routing and file transfer"
- **T-610**: "Parse Agent/Human AC sections + confidence markers in Watchtower"
- **T-611**: "Tier 0 approval queue — pending/approved/rejected cards in Watchtower"
- **T-612**: "Agent approval pickup — hook/cron scanning Watchtower approval ledger"
- **T-619**: "Inception: Bash task gate with bootstrap allowlist"
- **T-631**: "Human AC review via clickable URL + QR code — fw task review command"
- **T-632**: "Watchtower file viewer — clickable links to docs/reports and task files"
- **T-699**: "fw stats — observability instrumentation via SQLite event logging"
- **T-700**: "3-tier validation consistency across all fw tools"
- **T-701**: "Context budgeting hints — token estimates and load priority in component cards"
- **T-703**: "Incremental adoption levels — fw init --level 1|2|3"
- **T-710**: "fw notify CLI — setup, test, enable, disable commands"
- **T-792**: "Pickup: TermLink agent dispatch pattern — cwd, timeout, worktree merge (from 050-email-archive)"

<!-- horizon: later -->

### T-316: "Spike: layered CLAUDE.md (framework base + project overrides)"
- **Status:** started-work (horizon: later)
- **Last action:** T-012: Complete T-316 inception research — layered CLAUDE.md (NO-GO, no include mechanism)
- **Next step:** See task file
- **Blockers:** None


### T-432: "Re-evaluate SKIP refactoring findings (27 items, score ≤4)"
- **Status:** started-work (horizon: later)
- **Last action:** T-012: Complete T-432 inception research — SKIP refactoring reassessment (NO-GO, 8 moot)
- **Next step:** See task file
- **Blockers:** None


### T-550: "Composition-based adapter pattern — evaluate for agent provider and TermLink backend abstraction"
- **Status:** started-work (horizon: later)
- **Last action:** T-550: Inception research — composition adapter pattern (DEFER, no multi-adapter problem)
- **Next step:** See task file
- **Blockers:** None


### T-704: "DAG federation for cross-machine knowledge graphs"
- **Status:** captured (horizon: later)
- **Last action:** T-697: Create follow-up tasks from KCP pattern harvest
- **Next step:** See task file
- **Blockers:** None


### T-860: "Audit performance — 123 active tasks × 7 loops × 15 Python calls = >90s runtime"
- **Status:** captured (horizon: later)
- **Last action:** See git log
- **Next step:** See task file
- **Blockers:** None


### Awaiting Human Review (5 tasks)

Agent ACs done. Human ACs pending — see "Awaiting Your Action" below.

- **T-436**: "Auto-compact YOLO mode: automatic compact → resume → autonomous proceed"
- **T-448**: "Cron registry v2: web UI controls, registry YAML, LLM docs (Option B)"
- **T-584**: "Inception: Structured logging helper — subsystem-tagged log function for framework scripts"
- **T-599**: "Inception: MCP server for TermLink — expose session/file/remote/hub commands as structured tools for agent discovery"
- **T-600**: "Inception: TermLink attach-self — register an existing shell session as a TermLink endpoint for bidirectional cross-machine agent communication"

## Inception Phases

**60 inception task(s) pending decision** — run `fw inception status` for details.

## Awaiting Your Action (Human)

**78 task(s) with unchecked Human ACs.** These are waiting for you — not for agent cleanup.
Review each when ready. No urgency implied.

- **T-436**: Auto-compact YOLO mode: automatic compact → resume → autonomous proceed (1 unchecked)
  - e.g.: [REVIEW] Review autonomous continuation design — comfortable
- **T-446**: Rewrite README: sharp positioning, evidence-first, 5-min demo, honest gradient (1 unchecked)
  - e.g.: [REVIEW] Positioning reads as "governance layer" not "assist
- **T-448**: Cron registry v2: web UI controls, registry YAML, LLM docs (Option B) (2 unchecked)
  - e.g.: [REVIEW] Cron controls work correctly and feel safe
- **T-460**: Create onboarding task template files for both init modes (1 unchecked)
  - e.g.: [REVIEW] Onboarding task content is useful for new framework
- **T-470**: Deep-dive article 17: Why Bash, YAML and Files — the anti-enterprise stack (1 unchecked)
  - e.g.: [REVIEW] Voice and tone match Dimitri's writing style
- **T-479**: Primary development platform: GitHub vs OneDev — source of truth, CI, issues, community interaction for post-launch (1 unchecked)
  - e.g.: [REVIEW] Decision made: which option (A, B, or C) and why
- **T-481**: Fix install.sh update path — handle dirty state and macOS filemode (1 unchecked)
  - e.g.: [RUBBER-STAMP] Run installer twice on macOS — second run suc
- **T-493**: fw update command — CLI wrapper for framework self-update (1 unchecked)
  - e.g.: [RUBBER-STAMP] Run `fw update --check` and verify output
- **T-505**: Deep-dive article: Blast Radius — structural impact analysis for agentic engineering (1 unchecked)
  - e.g.: [REVIEW] Voice/tone matches writing style
- **T-511**: Write governance.yaml — predictability x blast-radius operation class declarations (1 unchecked)
  - e.g.: [REVIEW] Operation classes accurately reflect governance mod
- **T-516**: Tier B E2E tests — 4 agent-level Claude Code governance tests (1 unchecked)
  - e.g.: [RUBBER-STAMP] Run `tests/e2e/runner.sh --tier b` and verify
- **T-518**: Fix bash 3.2 compat — replace declare -A with POSIX-safe lookups (macOS) (1 unchecked)
  - e.g.: [RUBBER-STAMP] Verify on macOS bash 3.2
- **T-530**: Port claude-fw --termlink flag from consumer project to upstream (1 unchecked)
  - e.g.: [REVIEW] Run `claude-fw --termlink` and verify remote attach
- **T-571**: TermLink supervisor event loop — reliable bidirectional signaling between supervisor and dispatched agents (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-579**: Inception: Idempotency/dedup layer — prevent hook re-entry and double task completion (1 unchecked)
  - e.g.: [REVIEW] Review findings and approve no-go
- **T-584**: Inception: Structured logging helper — subsystem-tagged log function for framework scripts (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go decision
- **T-594**: Port loop detector to TypeScript — first real TS hook component (1 unchecked)
  - e.g.: [RUBBER-STAMP] Verify loop detection fires by repeating the 
- **T-598**: Inception: Bridge fw dispatch to TermLink file/remote — replace SSH text pipe with native hub routing and file transfer (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve defer decis
- **T-599**: Inception: MCP server for TermLink — expose session/file/remote/hub commands as structured tools for agent discovery (1 unchecked)
  - e.g.: [REVIEW] Review findings and approve minimal wiring
- **T-600**: Inception: TermLink attach-self — register an existing shell session as a TermLink endpoint for bidirectional cross-machine agent communication (1 unchecked)
  - e.g.: [REVIEW] Review and confirm defer
- **T-607**: Correction & Refinement Loop Research (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-610**: Parse Agent/Human AC sections + confidence markers in Watchtower (1 unchecked)
  - e.g.: [REVIEW] Human AC cards render correctly with structured lay
- **T-611**: Tier 0 approval queue — pending/approved/rejected cards in Watchtower (1 unchecked)
  - e.g.: [REVIEW] Approval cards are clear and usable — approve/rejec
- **T-612**: Agent approval pickup — hook/cron scanning Watchtower approval ledger (1 unchecked)
  - e.g.: [RUBBER-STAMP] End-to-end flow works: agent blocked → approv
- **T-613**: Update Homebrew tap formula to v1.4.0 + fix consumer project hook errors (1 unchecked)
  - e.g.: [RUBBER-STAMP] Verify brew upgrade works on macOS
- **T-619**: Inception: Bash task gate with bootstrap allowlist (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-631**: Human AC review via clickable URL + QR code — fw task review command (2 unchecked)
  - e.g.: [RUBBER-STAMP] URL opens correct task page in browser
- **T-632**: Watchtower file viewer — clickable links to docs/reports and task files (1 unchecked)
  - e.g.: [RUBBER-STAMP] Click a file link and verify it renders
- **T-633**: Auto-link file references — fw commands and Watchtower markdown emit clickable URLs (1 unchecked)
  - e.g.: [RUBBER-STAMP] Verify auto-linked references are clickable i
- **T-644**: Watchtower landing page refactor — summary dashboard pointing to /approvals as action hub (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-645**: Landing page summary card — replace full Human AC list with counts + top 3 + /approvals link (1 unchecked)
  - e.g.: [REVIEW] Landing page summary card looks clean and useful
- **T-646**: MCP auto-config — seed .mcp.json during fw init and reconcile during fw upgrade (1 unchecked)
  - e.g.: [RUBBER-STAMP] Consumer project gets .mcp.json after fw init
- **T-650**: Bash task gate — safe-command allowlist + write-pattern detection in check-active-task.sh (1 unchecked)
  - e.g.: [RUBBER-STAMP] Verify Bash gate works in a fresh session
- **T-651**: Agent/Task tool gate — add Agent|TaskCreate to check-active-task matcher (1 unchecked)
  - e.g.: [RUBBER-STAMP] Add Agent|TaskCreate matcher to settings.json
- **T-662**: Eliminate global HOME/.agentic-framework dependency — full project isolation without PATH-based fw resolution (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-663**: Fix framework hooks — replace bare fw with bin/fw in settings.json (1 unchecked)
  - e.g.: [RUBBER-STAMP] Start a fresh Claude Code session and verify 
- **T-671**: Landing page QR code — generate QR for /approvals URL on Watchtower dashboard (1 unchecked)
  - e.g.: [RUBBER-STAMP] Scan QR with phone and verify it opens /appro
- **T-676**: Watchtower dark mode toggle — persist theme preference (1 unchecked)
  - e.g.: [RUBBER-STAMP] Toggle dark mode and verify it persists acros
- **T-678**: vnx-orchestration deep-dive — ingest, build fabric, analyze architecture and patterns (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-679**: Path C workflow refinement — document TermLink-based external ingestion, redo vnx experiment from scratch, capture learnings for TermLink and framework (1 unchecked)
  - e.g.: [REVIEW] Review Path C workflow document — is it clear enoug
- **T-686**: Article angle 3 — landscape differentiation research (1 unchecked)
  - e.g.: [REVIEW] Positioning angles resonate — pick preferred angle 
- **T-696**: Qualify Path C as repeatable pattern — template + second experiment (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-697**: Deep-dive: KCP (Knowledge Context Protocol) — Path C codebase ingestion (1 unchecked)
  - e.g.: [REVIEW] Review deep-dive findings and friction log
- **T-698**: TermLink dispatch observability — evaluate interactive vs headless worker mode for human observation (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-699**: fw stats — observability instrumentation via SQLite event logging (1 unchecked)
  - e.g.: [REVIEW] Review findings and approve go/no-go decision
- **T-700**: 3-tier validation consistency across all fw tools (1 unchecked)
  - e.g.: [REVIEW] Review findings and approve go/no-go decision
- **T-701**: Context budgeting hints — token estimates and load priority in component cards (1 unchecked)
  - e.g.: [REVIEW] Review findings and approve decision
- **T-702**: Single-source-of-truth generation — generate CLAUDE.md and hooks from structured manifest (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-703**: Incremental adoption levels — fw init --level 1|2|3 (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-706**: Write KCP deep-dive post — ingestion, evaluation, scoring, decision rationale (1 unchecked)
  - e.g.: [REVIEW] Voice and tone match writing style
- **T-707**: Deep-dive: ntfy — Path C ingestion + framework notification enhancement (1 unchecked)
  - e.g.: [REVIEW] Review deep-dive findings and enhancement design
- **T-708**: lib/notify.sh — thin wrapper calling skills-manager alert dispatcher (1 unchecked)
  - e.g.: [RUBBER-STAMP] Receive test notification on phone
- **T-710**: fw notify CLI — setup, test, enable, disable commands (1 unchecked)
  - e.g.: [RUBBER-STAMP] Receive test notification on phone
- **T-726**: Integrate D3.js Fabric Explorer from OpenClaw evaluation into upstream Watchtower (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-730**: Integrate D3.js Fabric Explorer into upstream Watchtower (1 unchecked)
  - e.g.: [REVIEW] Fabric Explorer renders correctly with interactive 
- **T-772**: Cross-project pickup channel — MCP/TermLink-based push for learnings, bugfixes, feature proposals (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-782**: Deep-dive article: Fabric Explorer — from static DAG to interactive architecture browser (1 unchecked)
  - e.g.: [REVIEW] Voice and tone match writing style
- **T-792**: Pickup: TermLink agent dispatch pattern — cwd, timeout, worktree merge (from 050-email-archive) (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-799**: Token cost tracking — count/calculate per-task and project-total token usage and costs (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-800**: Token efficiency strategies — reduce per-task and per-session cost through context management, output discipline, caching, and dispatch optimization (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-816**: Null object fallback for hooks — fail-open resilience pattern (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-817**: 3-tier config resolution — env var configuration layer for framework settings (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-818**: TermLink dispatch result persistence — ensure worker outputs survive parent budget exhaustion (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
- **T-819**: Build lib/config.sh — 3-tier config resolution for framework settings (1 unchecked)
  - e.g.: [REVIEW] Watchtower /config page is clear and useful
- **T-822**: Complete fw_config migration — remaining hardcoded settings in hooks and lib scripts (1 unchecked)
  - e.g.: [RUBBER-STAMP] Watchtower /config page shows new settings
- **T-823**: Automated Human AC verification — programmatic, TermLink E2E, and Playwright approaches for stale task clearance (1 unchecked)
  - e.g.: [REVIEW] Review 10 verified tasks and approve/close those wi
- **T-826**: Timeline token usage — add per-session token costs to /timeline cards (1 unchecked)
  - e.g.: [RUBBER-STAMP] Token usage badges appear on timeline session
- **T-827**: Timeline per-session token delta — show session-specific token and turn counts alongside cumulative (1 unchecked)
  - e.g.: [RUBBER-STAMP] Per-session token deltas display correctly on
- **T-828**: Input/output token breakdown — enrich handover frontmatter and timeline with per-category token counts (1 unchecked)
  - e.g.: [REVIEW] Review findings and approve go/no-go decision
- **T-829**: Input/output token breakdown — enrich handover frontmatter and timeline display (1 unchecked)
  - e.g.: [RUBBER-STAMP] Token breakdown visible on timeline session c
- **T-830**: Session length optimization — when to /clear vs continue, context cost vs momentum tradeoff (1 unchecked)
  - e.g.: [REVIEW] Review findings and approve measurement implementat
- **T-831**: Session quality metrics — session-metrics.sh JSONL analyzer + handover integration (1 unchecked)
  - e.g.: [RUBBER-STAMP] Session metrics appear in handover frontmatte
- **T-832**: Fix install.sh unbound LOCAL_REPO variable in update path (2 unchecked)
  - e.g.: [RUBBER-STAMP] Installer works from curl pipe
- **T-849**: Fix Fabric Explorer double-refresh bug — componentData hoisting + hardcoded OpenClaw data (1 unchecked)
  - e.g.: [REVIEW] Fabric Explorer renders on first page load without 
- **T-850**: Fix session metrics — per-session deltas instead of cumulative transcript analysis (1 unchecked)
  - e.g.: [RUBBER-STAMP] Handover frontmatter shows distinct per-sessi
- **T-851**: Linkable task references in handover session summary — clickable T-XXX links to Watchtower task pages (1 unchecked)
  - e.g.: [RUBBER-STAMP] Task links in /timeline are clickable and nav
- **T-857**: fw upgrade sync gap — lib/, agents/task-create/, agents/handover/, agents/git/ not vendored to consumer projects (1 unchecked)
  - e.g.: [RUBBER-STAMP] Run upgrade on a consumer project and verify 
- **T-864**: Inception: Record task execution stats (timing, token cost, complexity) in task files (1 unchecked)
  - e.g.: [REVIEW] Review exploration findings and approve go/no-go de
## Gaps Register

**11 concern(s) being watched** — see `.context/project/concerns.yaml`

- **G-004** [low]: Multi-agent collaboration untested
- **G-011** [low]: PostToolUse hooks are advisory-only — cannot block actions
- **G-015** [medium]: Sub-agent results bypass task governance — no structural linking
- **G-017** [medium]: Execution gates do not cover proposal/suggestion layer
- **G-018** [high]: No structural guard against silent quality decay in generated artifacts
- **G-019** [high]: Agent treats symptom-level fixes as complete — no self-escalation to systemic root cause
- **R-018** [medium]: Invalid YAML data disappears without error
- **R-024** [medium]: UI silently drops data on parse errors
- **R-032** [medium]: Long inception gate conflict
- **R-036** [medium]: Multi-agent coordination untested
- **R-037** [low]: Project boundary hook scans bash command text literally — false positives on string literals

Run `fw audit` to check if any trigger conditions are met.

## Decisions Made This Session

None

## Things Tried That Failed

None

## Open Questions / Blockers

None

## Token Usage

- **Total:** 1.1B tokens
- **Turns:** 8978
- **Cache read:** 1.1B

Run `fw costs current` for detailed breakdown.

## Gotchas / Warnings for Next Session

See gaps register above.

## Suggested First Action

Continue T-446: "Rewrite README: sharp positioning, evidence-first, 5-min demo, honest gradient"

## Files Changed This Session

 ...869-fix-var-set--e-crash-in-binfw-verify-acs.md |  11 +-
 ...870-sync-vendored-agentic-framework-with-t-8.md |  54 +++++++
 docs/reports/fleet-doctor.sh                       |  28 ++++
 docs/reports/fleet-health-2026-04-05.md            |  60 +++++++
 30 files changed, 590 insertions(+), 190 deletions(-)

## Recent Commits

- f4616549 T-012: Context updates — learnings, audit history, working state
- af36b483 T-012: Add fleet-doctor.sh — reusable fleet health check script
- dc3b5ef7 T-012: Fleet health report + 524/524 unit tests pass
- d5a5cc20 T-012: Session housekeeping — T-868/T-869/T-870 completions
- 360fbdc8 T-870: Sync vendored .agentic-framework/ with T-868/T-869 bugfixes

---

## Handover Quality Feedback (for next session to complete)

- Did this handover help? [ ]
- What was missing?
- What was unnecessary?
