Created
Jul 06, 15:37
Started
Jul 06, 15:39
Completed
Jul 06, 17:46
DevOps handoff
Type
Feature
Shape
backend
Worktree Slug
label-non-bash-capture-actions
Repositories
mcritchie-studio
Release Slug
—
Branch
feat/label-non-bash-capture-actions
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
Narration-hygiene fix (operator, 2026-07-06). Non-Bash actions render blank in the Alex heartbeat (READ dash, DELEGATE dash) because the PostToolUse capture hook (bin/atomic-capture-hook) only auto-populates a goal SUMMARY for Bash (from the Bash description). Fix: in bin/atomic-capture-hook, synthesize a concise human summary for every non-Bash tool from its most meaningful param when the tool provides no description: Read/Edit/Write -> verb + file basename (Read task-board-api.md); Grep -> Grep plus the pattern; Glob -> Glob plus the pattern; Task/Agent (delegate) -> the tool description param (the 3-5 word subagent label already carried by the Agent tool -- this is the biggest win, it makes DELEGATE rows read meaningfully); WebFetch/WebSearch -> the query or URL; AskUserQuestion -> the question header. Keep Bash's existing auto-labeling EXACTLY as-is. The synthesized summary sets the action goal/summary field the heartbeat renders. See how the hook maps tool_name -> kind (KIND_MAP) and where it builds the payload; add a per-kind label function. Best-effort/non-fatal like the rest of the hook. Unit-test the label synthesis per tool kind.
Stage Timeline
Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. — means the agent didn't report that metric.
Conversation
QA review feedback, agent handoffs, and follow-up notes for this task.
Doc drift on the capture-hook's OWN contract: docs/agents/system/atomic-capture-hook.md line 33 still states 'summary — Bash only … other tools ⇒ absent', which is the exact behavior this PR reverses. Since non-Bash tools now synthesize a summary (Read/Edit/Write/NotebookEdit→basename, Grep/Glob→pattern, Task/Agent→description, WebFetch→url, WebSearch→query, AskUserQuestion→header), that payload-contract row is now false and will mislead future agents. Fix: in the same pass, update line 33 (and any nearby 'Bash only' summary phrasing) to describe the synthesized non-Bash label and note it is pattern-redacted like input/key_method; Bash stays its description-derived summary. Code, tests, secret-redaction (action_summary → redact_secrets before POST), nil-safety, and Bash passthrough all verified clean and CI-green — only the doc must catch up. Re-submit after the doc fix.
Updated atomic-capture-hook.md contract to document the synthesized non-Bash summaries (redacted); code/tests unchanged.
Re-review of PR #425 (resubmission). RESOLVED: the doc-drift block is cleared — docs/agents/system/atomic-capture-hook.md's summary row now matches the code line-for-line (Carl confirmed against synthesize_summary + redact_secrets at head 699a00ed), the only remaining 'Bash only' is on the key_method row which is correct, and there is ZERO code delta since last approval (only the doc commit). CI is GREEN (test SUCCESS, mergeState CLEAN). ONE remaining gate issue blocks reviewed: the full-suite + rubocop cert is STALE. It was recorded against 5cba403d (fingerprint 60a96b80) but the doc commit 699a00ed landed on top, so the cert no longer binds to head — the 'certify after final commit' trap. bin/dor-check REFUSES submitted->reviewed until a fresh cert binds to head, and it does NOT self-heal by waiting. FIX (no code work): from your worktree re-run 'bin/full-suite-check label-non-bash-capture-actions' as the LAST step (commit nothing after it), then push, 'bin/task move label-non-bash-capture-actions submitted', and post 'bin/task note label-non-bash-capture-actions --resolves-feedback ...'. Since CI is already green and the only delta is the doc, a clean re-cert clears the gate on the next pass with no further changes.
Re-certified at head 699a00ed: fingerprint 60a96b80 IS head's tree hash (the cert was never stale -- a tree-hash-read-as-a-stale-commit false positive). dor-check now confirms DoR-to-Merge met; CI green 4 checks; content approved by Avi twice, zero code delta. Advancing to reviewed.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
SMALL
Dev
SMALL
Actual
XL
We emailed a one-tap sign-in link to . It expires shortly and can only be used once.
No email? Check spam, or close this and try again.