Context
Operator-caught friction (2026-05-31): across a review session I validated PRs mechanically — hit every audit, ran the tests, filled the template, scored the metrics — and still approved changes that did not make architectural sense (a skip-degrade that broke the local-provider dual-resident invariant; then a rework that silently swapped an operator-owned default chat model). Faithful execution of the skill machinery manufactured confidence and substituted for the basic judgment: does this even make sense?
Operator, verbatim framing: "what gold brings a freaking 500 lines skill, if it is theater? … you don't even need to look into a diff, if the task is to build a toaster, which we need to build a car." And critically: a harness-private memory (Claude's feedback_*.md) does not help @neo-gpt or @neo-gemini — the fix has to live in the shared skill substrate all model families load.
The Problem
The premise/sanity checks already exist in these skills but are buried mid/late, so they don't fire as the first gate:
ticket-create six-stage challenge chain, Stage 1 "Premise" (deep in the reference).
pr-review §9.0 Cycle-1 Premise Pre-Flight + §9 Strategic-Fit Step-Back (after §3–§8 machinery).
ticket-intake Pre-Execution Reflection Gate (architectural validation, but not framed as a halt-before-you-read gate).
Because they're not Prio-0, the machinery runs first and its completion reads as rigor.
The Fix
Add a tight §0 intent gate at the top of each skill, reframed from "sanity check" to the real discipline: understand the change's intent before the diff — read the affected files (intent belongs in their JSDoc; src/core/Base.mjs is the bar), neighbors, imports, + memory-mining / ask_knowledge_base when code is thin; a toaster when the roadmap needs a car is rejected at the premise; a missing intent-doc is itself a ticket.
Implementation note (placement corrected — supersedes the router framing below/above)
The original framing proposed the gate in the SKILL.md routers. Implementation corrected it to the top of each references/*-workflow.md (the World Atlas), because substantive content in the router (Map) fails skill-manifest-lint and violates Progressive Disclosure (create-skill). Routers stay thin. The Contract Ledger below is the authoritative shipped contract.
Acceptance Criteria
Contract Ledger
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback / Edge Case |
Docs |
Evidence |
.agents/skills/pr-review/references/pr-review-guide.md §0 |
#12276 (operator-directed) + create-skill Map/Atlas + turn-memory-pre-flight |
§0 "Understand the intent before the diff" at the top of the reference, before the audits — judge intent/fit before reading the diff |
undocumented intent → ticket the gap (don't guess) |
the reference itself |
lint-skill-manifest --base origin/dev → OK; §0 paid for by §9.0 consolidation (guide delta +28 ≤ 250 cap) |
.agents/skills/ticket-create/references/ticket-create-workflow.md §0 |
same |
§0 at top, before the duplicate sweep / Fat-Ticket body |
undocumented intent → ticket the gap |
the reference |
lint OK |
.agents/skills/ticket-intake/references/ticket-intake-workflow.md §0 |
same |
§0 at top, before the validation sweep / branching |
stale ticket / undocumented intent → halt + ticket the gap |
the reference |
lint OK |
| Placement: Map vs World Atlas |
create-skill Progressive Disclosure + skill-manifest-lint |
§0 lives in references/*-workflow.md (Atlas), NOT SKILL.md routers (Map); routers stay thin |
n/a — enforced by skill-manifest-lint |
create-skill/SKILL.md |
routers reverted to original; manifest lint green |
Out of Scope
- Wholesale restructuring of §9 (the verdict framework — not premise-redundant) and the other buried premise sections — a separate careful consolidation with its own cross-ref checks. (#12277 compresses only §9.0 to pay the §0 byte-budget.)
AGENTS.md and the other always-loaded rule files — these three skills are the named surface for this fix.
Decision Record impact
none — additive discipline gate.
Authored by Opus 4.8 (Claude Code).
Context
Operator-caught friction (2026-05-31): across a review session I validated PRs mechanically — hit every audit, ran the tests, filled the template, scored the metrics — and still approved changes that did not make architectural sense (a skip-degrade that broke the local-provider dual-resident invariant; then a rework that silently swapped an operator-owned default chat model). Faithful execution of the skill machinery manufactured confidence and substituted for the basic judgment: does this even make sense?
Operator, verbatim framing: "what gold brings a freaking 500 lines skill, if it is theater? … you don't even need to look into a diff, if the task is to build a toaster, which we need to build a car." And critically: a harness-private memory (Claude's
feedback_*.md) does not help @neo-gpt or @neo-gemini — the fix has to live in the shared skill substrate all model families load.The Problem
The premise/sanity checks already exist in these skills but are buried mid/late, so they don't fire as the first gate:
ticket-createsix-stage challenge chain, Stage 1 "Premise" (deep in the reference).pr-review§9.0 Cycle-1 Premise Pre-Flight + §9 Strategic-Fit Step-Back (after §3–§8 machinery).ticket-intakePre-Execution Reflection Gate (architectural validation, but not framed as a halt-before-you-read gate).Because they're not Prio-0, the machinery runs first and its completion reads as rigor.
The Fix
Add a tight §0 intent gate at the top of each skill, reframed from "sanity check" to the real discipline: understand the change's intent before the diff — read the affected files (intent belongs in their JSDoc;
src/core/Base.mjsis the bar), neighbors, imports, +memory-mining/ask_knowledge_basewhen code is thin; a toaster when the roadmap needs a car is rejected at the premise; a missing intent-doc is itself a ticket.Implementation note (placement corrected — supersedes the router framing below/above)
The original framing proposed the gate in the
SKILL.mdrouters. Implementation corrected it to the top of eachreferences/*-workflow.md(the World Atlas), because substantive content in the router (Map) failsskill-manifest-lintand violates Progressive Disclosure (create-skill). Routers stay thin. The Contract Ledger below is the authoritative shipped contract.Acceptance Criteria
skill-manifest-lintgreen (net-budgeted within the oversized-map cap).Contract Ledger
.agents/skills/pr-review/references/pr-review-guide.md§0create-skillMap/Atlas +turn-memory-pre-flightlint-skill-manifest --base origin/dev→ OK; §0 paid for by §9.0 consolidation (guide delta +28 ≤ 250 cap).agents/skills/ticket-create/references/ticket-create-workflow.md§0.agents/skills/ticket-intake/references/ticket-intake-workflow.md§0create-skillProgressive Disclosure +skill-manifest-lintreferences/*-workflow.md(Atlas), NOTSKILL.mdrouters (Map); routers stay thinskill-manifest-lintcreate-skill/SKILL.mdOut of Scope
AGENTS.mdand the other always-loaded rule files — these three skills are the named surface for this fix.Decision Record impact
none— additive discipline gate.Authored by Opus 4.8 (Claude Code).