[Implementer] Add hypothesis + kill-criterion regex gate to type:experiment clarifier and planner
kind: infra
Parent: #275 (audit item 2)
Background
Per the audit posted on #275 (item 2), the workflow ASKS for a falsifiable hypothesis + kill criterion in two places but does NOT statically enforce either:
.claude/skills/issue/clarifier.md:130-134— clarifier asks the questions but advancesstatus:proposed → status:planningbased on subjective LLM judgement of "All clear" vs "Ambiguities remain". Atype:experimentissue without a hypothesis can slip through if the clarifier-LLM deems it "minor"..claude/skills/adversarial-planner/SKILL.md:43— planner is instructed to include a Hypothesis section "if experiment". Same problem: instruction-not-gate. A planner that omits the section gets caught only if a Critic flags it, which is non-deterministic.
Proposed fix
A ~30 LOC static gate at each surface:
- Clarifier gate. Before posting
<!-- epm:clarify v1 -->"All clear", regex the issue body for**Hypothesis**(or### Hypothesis) AND**Kill criterion**(or### Kill criterion) sections. Iftype:experimentand either is missing, post the questions unconditionally as ambiguities — do not advance. - Planner gate. Before posting
<!-- epm:plan v1 -->, regex the drafted plan body for the same headers. Iftype:experimentand either is missing, refuse to post; loop back to the planner with the missing-section feedback.
Acceptance criteria
- A
type:experimentissue with no hypothesis section in the body cannot reachstatus:planningwithout explicit user override. - A drafted plan with no Hypothesis section cannot reach
status:plan-pendingwithout explicit user override. - Both gates can be bypassed with
--force-hypothesis-skipfortype:experimentissues that are pure ablations / re-runs (the clarifier already passes these without re-clarification). - New tests in
tests/test_skill_set_status_calls.py-shape: static fixture issue bodies hit the gate predictably.
Timeline · 0 events
No events recorded.
Comments · 0
No comments yet. (Auth + comment composer land in step 5.)