daily-fix: neutral gate vocabulary first-pass briefs
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 /daily 2026-07-15 problem sweep (route 2 — behavior/logic change, independent review required).
Goal
Extend refusal-prevention rung (e): briefs for kill-gate / RLVR / guard tasks use neutral vocabulary ("halt gate", "stop criterion") FIRST-PASS, not only on post-kill retries.
Workflow gap
- Bug observed: ≥12 spurious Usage-Policy refusal kills across ~8 sessions on 07-15; the #1336 session lost 3 spawns to "G1-kill"/"kill criteria" vocabulary and only neutralized ("halt gate") AFTER the kills (25ba019b 09:59/10:23/17:06Z); further kills on #1313, #1332 ×2, #1333 ×3, #1335 ×2, #1345 ×2, #1348, #825 (52 tool calls, ~1.7 h lost).
- Why it is a workflow gap: CLAUDE.md rung (e) "prevention beats recovery" currently names only harmful-content banks and real-world corpora as first-pass brief discipline — gate/kill-criteria vocabulary is not covered, so each session rediscovers the neutralization only after burning spawns.
- Severity: medium
- verified-at-filing:
grep -n 'prevention beats recovery' CLAUDE.md→ 1 hit (L147, rung (e): "briefs and prompts for harmful-content AND real-world-corpus (LMSYS/WildChat-class) tasks name banks/corpora by filename + row count" — gate/kill vocabulary absent from the rung);grep -c 'halt gate\|gate vocabulary' CLAUDE.md→ 1 (no "halt gate" guidance; the 1 hit is unrelated); SKILL.md brief-composition guidance covers trigger-dense REVIEW reads (L2307-2343,.claude/rules/trigger-dense-review.md) but not first-pass brief vocabulary for gate tasks (2026-07-16 UTC).
Proposed change (refine in planning)
Extend CLAUDE.md's refusal ladder rung (e) (L147) to add gate/kill-criteria vocabulary to the FIRST-PASS brief discipline: briefs and prompts for kill-gate / RLVR / guard / stop-criteria tasks use neutral phrasing ("halt gate", "stop criterion", "termination predicate") from the first spawn, reserving the loaded terms for the artifacts themselves. Add the same line to .claude/skills/issue/SKILL.md's brief-composition guidance (near the trigger-dense-review pointers at L2307), so subagent brief composers see it at compose time.
Scope / surfaces
- Primary target:
CLAUDE.md(rung (e) in "Spurious usage-policy refusals", L147) - Secondary:
.claude/skills/issue/SKILL.md(brief composition; anchor L2307-2343)
Constraints / invariants
- Workflow-surface only — never experiment code,
configs/, ortasks/. scripts/workflow_lint.py --check-askspasses; ruff on touched files passes.- This session runs under
EPM_WORKFLOW_FIX_SESSION=1and carries aworkflow_fix_target:Provenance line — it MUST NOT auto-route its own subagents' workflow-fix candidates (recursion guard).
Provenance
-
fingerprint: abb7f766962f
-
workflow_fix_target: CLAUDE.md
Mined from 2026-07-15 session transcripts by the /daily problem sweep. Evidence: 25ba019b (#1336) 09:59/10:23/17:06Z (batch 02 P1); also refusal kills on #1313, #1332 ×2, #1333 ×3, #1335 ×2, #1345 ×2, #1348, #825 (52 tool calls, ~1.7 h lost) — batches 02, 04, 05, 06, 09.