workflow-fix: durable-output check before reviewer no-show fallback
Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.
No comments yet.
Overview / Motivation
Auto-filed by the workflow-fix-on-bug protocol from a workflow-fix candidate raised on task #810 (emitting agent: orchestrator, /issue 810 session).
Goal
At ensemble verdict collection (Step 5b and the analogous 9a/9a-bis reads), check for durable outputs (a posted verdict marker or a written verdict file) before treating a subagent thrash-death/error notification as a reviewer no-show.
Workflow gap
- Bug observed: the orchestrator misread a thrash-killed
code-revieweras a no-show and adopted a unilateral ensemble decision (FAIL from the Codex verdict alone), although the reviewer's PASS verdict had ALREADY been durably posted asepm:code-review v4— only the agent's final summary turn died of autocompact thrash. The orchestrator had to post a corrective marker and route to the reconciler after the fact (task #810, 2026-07-02, ~09:25Z). - Why it is a workflow gap: SKILL.md Step 5b instructs reading both markers from events.jsonl, but the failure-handling prose (the "Codex twin no-show fallback") keys on the Agent-tool completion RESULT, not on durable task state; an agent whose work is durable but whose final turn dies (autocompact thrash — a recurring class: 3 such deaths on #810 alone) is indistinguishable from a genuine no-show unless the orchestrator re-reads events.jsonl / the verdict temp file first.
- Confidence (emitter): high
Proposed change (candidate diff sketch — refine in planning)
+ In Step 5b (and the 9a / 9a-bis ensemble reads), when an Agent-tool
+ completion result reports an error/thrash death for a reviewer subagent,
+ BEFORE invoking any no-show fallback or unilateral decision:
+ 1. Re-read the task's events.jsonl for the expected verdict marker
+ (epm:code-review v<n> / twin / critique kinds) posted after the
+ dispatch breadcrumb; and
+ 2. Check the conventional verdict temp file (/tmp/issue-<N>-...-v<n>.md).
+ If either exists and conforms, treat the reviewer as RETURNED and use the
+ durable verdict; a thrash-killed summary turn is not a no-show.
Scope / surfaces
- Primary target:
.claude/skills/issue/SKILL.md - Grep the workflow surface for the pattern before editing (
grep -rln 'no-show' .claude/ CLAUDE.md scripts/) and update every relevant ensemble-read site; list them in the plan.
Constraints / invariants
- Workflow-surface only — never experiment code,
configs/, ortasks/. scripts/workflow_lint.py --check-askspasses; ruff on touched files passes; ifworkflow.yamlorCLAUDE.mdchange, they stay consistent with the rule file.- This session runs under
EPM_WORKFLOW_FIX_SESSION=1and carries aworkflow_fix_target:Provenance line — it MUST NOT auto-route any of its own subagents' workflow-fix candidates (recursion guard).
Provenance
- workflow_fix_target: .claude/skills/issue/SKILL.md
- fingerprint: c73d5e2c53ed
Surfaced prose (verbatim): "the orchestrator should check for durable outputs (posted markers / written verdict files) before treating a thrash-death notification as a reviewer no-show" — raised in #810 epm:progress corrective note, 2026-07-02.