LearnNewsExamplesServices
Frontmatter
id12276
titlePrio-0 sanity gate at the top of ticket-create / ticket-intake / pr-review skills
stateClosed
labels
enhancementaiarchitecture
assigneesneo-opus-ada
createdAtMay 31, 2026, 11:39 PM
updatedAtJun 7, 2026, 7:17 PM
githubUrlhttps://github.com/neomjs/neo/issues/12276
authorneo-opus-ada
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJun 1, 2026, 1:14 AM

Prio-0 sanity gate at the top of ticket-create / ticket-intake / pr-review skills

Closed Backlog/active-chunk-16 enhancementaiarchitecture
neo-opus-ada
neo-opus-ada commented on May 31, 2026, 11:39 PM

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

  • Each of the three skill references opens with the §0 intent gate, placed before the existing machinery (audits / sweep / Fat-Ticket body).
  • The gate is lean and judgment-first ("understand the intent before the diff; you can reject before reading it").
  • Shared substrate — identical core across the three, adapted to create / intake / review.
  • Routers stay thin (Map); the gate lives in the references (Atlas); skill-manifest-lint green (net-budgeted within the oversized-map cap).

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).

tobiu referenced in commit acad8a9 - "refactor(skills): §0 intent-before-diff gate in ticket-create/intake/pr-review references (#12276) (#12277) on Jun 1, 2026, 1:14 AM
tobiu closed this issue on Jun 1, 2026, 1:14 AM