Feedback Type
Feature request — strengthen existing guidance to actual enforcement
Description
PR #355 (v1.77.0) added skill-text guidance to skills/sdlc/SKILL.md:
Confidence gate — NEVER invoke below HIGH 95%; below that the evaluator rubber-stamps flailing as progress.
DLC binding — condition MUST name the DLC (/sdlc, /gdlc, /ldlc, etc.) so the evaluator anchors on "doing it right."
This is documentation, not enforcement. Nothing prevents (or even warns) when a user types /goal <condition> without first reaching HIGH 95% confidence — exactly the failure mode the guidance is meant to prevent (Haiku evaluator rubber-stamping flailing).
This mirrors the plan-mode auto-approval gate pattern already in /sdlc (skip plan approval ONLY when confidence ≥ 95% AND task is single-file/trivial). We have that gate for plans. We should have an analogous gate for /goal.
The gap
| Layer |
/effort low |
/goal low-confidence |
| Skill-text guidance |
✅ |
✅ (PR #355) |
| Hook warning |
✅ hooks/model-effort-check.sh (LOUD warning when below xhigh) |
❌ none |
| Programmatic block |
❌ (intentional — soft nudge) |
❌ |
model-effort-check.sh is the proven pattern: SessionStart hook reads settings, emits a LOUD warning when effort < recommended. /goal deserves the same treatment as a per-invocation guard.
Proposed scope
- New hook
hooks/goal-confidence-check.sh — UserPromptSubmit matcher on prompts starting with /goal (excluding /goal status and /goal clear).
- Detection signal: scan the prior assistant turn in transcript for an explicit confidence statement (
HIGH (95%, HIGH 95%, Confidence: HIGH, etc. — same patterns the SDLC scoring rubric already greps for).
- If prior turn has HIGH 95%+ confidence stated → silent, exit 0.
- If prior turn does NOT → emit LOUD warning block:
/goal invoked without HIGH-95% confidence statement in prior turn.
The Haiku evaluator can rubber-stamp flailing as progress.
Recommendation: cancel with /goal clear, do research first, restate
confidence as HIGH (≥95%), then re-issue /goal.
See: skills/sdlc/SKILL.md (Long-Running Goals section)
Non-blocking (exit 0) — same soft-warn pattern as model-effort-check.sh.
- DLC-binding co-check: also warn when the
/goal condition string does not name a DLC (/sdlc, /gdlc, /ldlc). Both checks in one hook.
- Tests (quality, not existence): fixture transcripts where prior turn DID/DID NOT state HIGH 95%; fixture conditions WITH/WITHOUT DLC binding; assert warnings fire/don't fire correctly. Mirror the test structure in
tests/test-hooks.sh for model-effort-check.
Alternatives considered
- Statusline nudge — too easy to ignore.
- Native CC primitive request — feature-request to Anthropic to bake confidence-gating into
/goal itself. Could be filed in parallel but doesn't help wizard users until shipped.
- Skill-only (status quo) — what we have. Doesn't survive the failure mode it's trying to prevent (LLM ignores documentation under pressure).
Enforcement layer is the missing piece.
Prerequisites / blast radius
- CC version: requires
UserPromptSubmit hook event (already required by sdlc-prompt-check.sh, so no version bump).
- No
id-token / network / package.json changes.
- Plugin manifest needs the new hook registered.
- CLI distributes the hook file (8th → 9th distributed hook).
Why now
/goal is new enough (CC v2.1.139, ~mid-May 2026) that wizard users are forming habits NOW. The earlier the gate ships, the less ingrained the "/goal everything" reflex becomes.
Context
Submitted via `/feedback` skill
Feedback Type
Feature request — strengthen existing guidance to actual enforcement
Description
PR #355 (v1.77.0) added skill-text guidance to
skills/sdlc/SKILL.md:This is documentation, not enforcement. Nothing prevents (or even warns) when a user types
/goal <condition>without first reaching HIGH 95% confidence — exactly the failure mode the guidance is meant to prevent (Haiku evaluator rubber-stamping flailing).This mirrors the plan-mode auto-approval gate pattern already in
/sdlc(skip plan approval ONLY when confidence ≥ 95% AND task is single-file/trivial). We have that gate for plans. We should have an analogous gate for/goal.The gap
hooks/model-effort-check.sh(LOUD warning when below xhigh)model-effort-check.shis the proven pattern: SessionStart hook reads settings, emits a LOUD warning when effort < recommended./goaldeserves the same treatment as a per-invocation guard.Proposed scope
hooks/goal-confidence-check.sh—UserPromptSubmitmatcher on prompts starting with/goal(excluding/goalstatus and/goal clear).HIGH (95%,HIGH 95%,Confidence: HIGH, etc. — same patterns the SDLC scoring rubric already greps for).model-effort-check.sh./goalcondition string does not name a DLC (/sdlc,/gdlc,/ldlc). Both checks in one hook.tests/test-hooks.shformodel-effort-check.Alternatives considered
/goalitself. Could be filed in parallel but doesn't help wizard users until shipped.Enforcement layer is the missing piece.
Prerequisites / blast radius
UserPromptSubmithook event (already required bysdlc-prompt-check.sh, so no version bump).id-token/ network / package.json changes.Why now
/goalis new enough (CC v2.1.139, ~mid-May 2026) that wizard users are forming habits NOW. The earlier the gate ships, the less ingrained the "/goal everything" reflex becomes.Context
/feedbackinvocation while pausing the v1.76+v1.77 release archooks/model-effort-check.sh(already in repo) is the closest existing analogueSubmitted via `/feedback` skill