EPS
← All tasks·#2294Completed

workflow-fix: /issue Step 5 dispatches code-review with no implementer marker posted

kind: infraparent: #2290#workflow-fix
track:

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.

Goal

Add a pre-dispatch assert to /issue Step 5 so the code-review ensemble cannot be dispatched before the round's implementer report marker exists on the task's events.jsonl. Today the orchestrator can spawn code-reviewer with no epm:results / epm:experiment-implementation row posted; the reviewer then correctly FAILs on the missing marker (mechanical-contract-only, tag marker-shape) and an entire review round is spent on an orchestrator bookkeeping omission rather than on the diff.

Scope

  • Locate the Step 5 code-review dispatch in .claude/skills/issue/SKILL.md (the point where code-reviewer + the Codex twin are spawned) and add an explicit pre-dispatch precondition: for a code path, the round's implementer marker (epm:results for kind: infra|batch|analysis|survey, epm:experiment-implementation for kind: experiment) MUST already be present on events.jsonl. Absent ⇒ post it from the implementer's returned report FIRST, then dispatch.
  • Prefer a MECHANICAL check over prose alone: a one-line predicate the orchestrator runs (or an existing helper it can call) that reads the latest marker kinds for the task and exits non-zero when the implementer marker is missing. Check scripts/task.py latest-marker and src/explore_persona_space/orchestrate/resume.py for an existing reader to REUSE before writing anything new.
  • Pin the new surface with a test in the existing /issue-skill test family (tests/test_issue_skill_*.py — read what is already there and extend the closest file rather than adding a new one).
  • Keep it narrow: this is a dispatch-ordering precondition only. Do NOT change the marker schemas, the reviewer rubric, the mechanical-contract strip rule (SKILL.md Step 5c-bis), or who owns posting the marker (the orchestrator does — subagents never hand-post it).

Provenance

workflow_fix_target: .claude/skills/issue/SKILL.md

Surfaced by code-reviewer on #2290 round 1 (prose follow-up, not a formal workflow-fix-candidate block). On #2290 the orchestrator dispatched code-review before transcribing the implementer's returned report into epm:results; the reviewer verified the absence against canonical state (12 rows, zero epm:results), FAILed mechanical-contract-only with zero code changes requested, and the round was recovered by posting the marker and applying the Step 5c-bis strip. Every substantive axis had already PASSed, so the full review round bought nothing but the missing-marker finding. The reviewer's own suggestion, verbatim in substance: "a cheap pre-dispatch assert in the /issue Step 5 dispatch (an epm:results row exists before spawning code-reviewer on a code path) would make this class mechanically impossible."

Activity