LearnNewsExamplesServices
Frontmatter
id11084
titlepr-review skill: Cycle-1 premise pre-flight + Drop+Supersede framing triggers
stateClosed
labels
documentationenhancementaimodel-experience
assigneesneo-opus-4-7
createdAtMay 10, 2026, 2:42 AM
updatedAtMay 10, 2026, 3:26 AM
githubUrlhttps://github.com/neomjs/neo/issues/11084
authorneo-opus-4-7
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 10, 2026, 3:26 AM

pr-review skill: Cycle-1 premise pre-flight + Drop+Supersede framing triggers

Closeddocumentationenhancementaimodel-experience
neo-opus-4-7
neo-opus-4-7 commented on May 10, 2026, 2:42 AM

Context

PR #11083 (closed unmerged) is the empirical anchor. As Cycle-1 reviewer I produced a ~1500-word Request Changes review with 5 iterative Required Actions, when the substrate-correct shape was an ~80-word Drop+Supersede close-recommendation. The PR's premise was invalid at first read (Discussion #11079 had no GRADUATED marker; author bypassed; "Execution Override" framing acknowledged peer-role §9 violation up-front). My own RA1 ("@neo-gpt formally graduates #11079") was structurally not-iterable on PR #11083 — it pointed at upstream Discussion graduation, which proves the substrate-correct call was Drop+Supersede, not Request Changes. The framing miss normalized "fix-these-5" as a valid merge path when no version of the PR was mergeable until upstream substrate graduated.

@tobiu surfaced the calibration: "sometimes a simple 'no!' (with rationale) wins. prevents damage."

The Problem

.agents/skills/pr-review/references/pr-review-guide.md §9 Strategic-Fit Step-Back lists Drop+Supersede as a first-class option, with three documented triggers (lines 357-363):

  1. ">5 cycles iterating on fundamentally-wrong premise"
  2. "Operator-intent correction reveals the abstraction itself needs reshape"
  3. "Iterative refinement is rearranging deck chairs"

All three triggers assume after-N-cycles detection. None codifies Cycle-1 premise pre-flight — recognizing wrong-premise on first read, before iteration sinks effort. The template structure + step-back framing combined push reviewers toward iterative shapes (Request Changes / Approve+Follow-Up) when the substrate-correct shape is decisive close.

The bias has a name: Velocity-Preservation Bias — preferring iterative paths that salvage work-already-done over decisive paths requiring restart, even when restart is substrate-correct.

Amplifiers:

  • Auto Mode "prefer action over planning" → iteration feels like action
  • Peer-role "produce evidence-backed pressure" → reads as "find things to fix" not "verify the premise is sound"
  • CI green → makes merge feel proximate; bias toward incremental gates over premise audit
  • Substantive content partially correct (60% in #11083 case) → "salvage the 60%" feels efficient; cost is normalizing process violations

The Architectural Reality

  • Mechanically, Drop+Supersede uses the same GitHub --request-changes state as Request Changes (per pr-review-guide line 358-359). The distinction is reviewer-recommendation framing ("close PR + supersede" vs "iterate these RAs"), not GH state.
  • The §9 step-back is documented as a META-decision after technical defects (line 365-367), but the prompt structure during review surfaces "what changes get this to merge" before "should this PR exist at all" — biasing toward iteration framing.
  • File: .agents/skills/pr-review/references/pr-review-guide.md §9 (around line 342-363). Possibly also .agents/skills/pr-review/assets/pr-review-template.md Strategic-Fit Decision section (around line 5-9).

The Fix

Add a Cycle-1 Premise Pre-Flight subsection to pr-review-guide §9, fired BEFORE composing Required Actions. Concrete shape:

§9.0 Cycle-1 Premise Pre-Flight (Decisiveness-Before-Iteration). Before composing Required Actions on a Cycle-1 review, ask: "Does this PR have any structural issue that makes Request Changes wrong-shape?" If any of the following triggers fire, default to Drop+Supersede framing, NOT iterative RAs:

  1. Premise-invalid: PR's stated premise (resolves #X / implements feature Y / cycle-N-of-Discussion-Z) is FALSE — the upstream substrate the PR claims to work from doesn't exist or has different shape.
  2. Upstream not graduated: PR depends on a Discussion / parent ticket / Epic that hasn't reached its required graduation/closure state.
  3. Author bypassed: PR author lacks authority for the change (e.g., self-marking graduation on a Discussion authored by another peer; amending substrate they don't own without consultation).
  4. Anti-pattern instantiation: change instantiates a pattern Neo doctrine forbids.
  5. Strategic-misalignment: work conflicts with active roadmap direction the author wasn't aware of.
  6. Better-existing-substrate: there's already a substrate that solves the problem; PR is reinventing.

If any trigger fires: framing is "close PR + restart from corrected upstream state" — not "fix these N items to merge." Required Action shape is single-item ("close + restart"), not multi-item iteration list.

Companion to verify-before-assert (claudeMd §23 atlas).

Optionally also add a 1-line cross-link in pr-review-template.md Strategic-Fit Decision section pointing to §9.0 pre-flight.

Acceptance Criteria

  • .agents/skills/pr-review/references/pr-review-guide.md §9 contains a §9.0 Cycle-1 Premise Pre-Flight subsection enumerating the 6 triggers.
  • Each trigger has a 1-sentence definition and an empirical anchor (#11083 for #1-3 minimum).
  • Drop+Supersede framing rule explicit: single-item "close + restart" RA, NOT multi-item iteration list.
  • Velocity-Preservation Bias named in the new subsection (or in a §7 anti-pattern entry).
  • Cross-link from pr-review-template.md Strategic-Fit Decision section to §9.0 (1 line, not a duplicated checklist).
  • Empirical anchor citation: PR #11083 + this ticket # in the §9.0 body.
  • No new checklist gate added (substrate-accretion defense per claudeMd §13). Pre-flight is per-turn discipline, not mechanical gate. Net loaded-bytes addition < 60 lines.

Out of Scope

  • Meta-substrate "calibrated rigor" pattern (operator-surfaced: ideation depth vs implementation surface, e.g. v13 document had orchestrator ideation but we still had to challenge basics days later). That's a deeper substrate question worth its own ticket / Discussion after #11079 graduates. Don't bundle.
  • #11079 Option E enforcement of skill-amendment Double Diamond. This ticket is filed BEFORE #11079 graduates per operator-directive override; the inline divergence matrix in Avoided Traps below preempts the gap. Once #11079 graduates with Option E, downstream tickets may need to retro-fit. Operator decides.
  • pr-review-template.md restructure. Keep the template stable; only add 1-line cross-link to §9.0.
  • Revisiting all prior pr-review verdicts. Forward-only application.

Avoided Traps / Divergence Matrix

The conversational exploration that surfaced this ticket considered four shapes; this ticket implements Shape 3:

# Shape When right Falsifying source / why rejected Residual risk
1 Add new checklist gate (mandatory premise-audit checkbox per review) If substrate-violation PRs were daily Substrate-accretion (claudeMd §13) — adds gate without sunset; ceremony for trivial PRs that don't need it Premise-violations slip through if checklist is skimmed
2 Matrix-required on every pr-review (regardless of severity) If divergent-shape exploration was always cheap Same accretion concern; #11079 Option C explicitly rejected universal-matrix shape for analogous reason (ceremony for low-blast-radius work) Trivial PRs become heavyweight
3 Cycle-1 premise pre-flight discipline (selected) When a small set of structural triggers reliably distinguishes wrong-premise from iterable-defect PRs n/a — selected Reviewer must internalize the trigger list; checklist-skip risk is the same as for any discipline
4 Don't change skill (rely on reviewer judgment) If PR #11083 case were idiosyncratic PR #11083 + my framing miss are empirical evidence the existing §9 triggers (after-N-cycles) miss the Cycle-1 case; rejecting Shape 4 is the load-bearing observation Maybe over-fitting to one case; mitigated by the 6 triggers being substrate-grounded, not #11083-specific

Anti-pattern explicitly rejected: don't conflate Drop+Supersede with Request Changes' GH-state. They share --request-changes mechanically; they differ in reviewer-recommendation framing. The skill amendment is about framing discipline, not GH-state taxonomy.

Related

  • Empirical anchor (closed unmerged): PR #11083 https://github.com/neomjs/neo/pull/11083 + Issue #11082.
  • Substrate-recovery context: Discussion #11079 (Double Diamond divergence guard, Option E in flight, not yet graduated).
  • Companion discipline: claudeMd §23 atlas verify-before-assert + §13 substrate-accretion defense.
  • Related but out-of-scope: operator-surfaced meta-substrate pattern (calibrated rigor / ideation-depth vs implementation-surface) — defer to follow-up ticket after #11079 graduates.

Origin Session ID: c2912891-b459-4a03-b2af-154d5e264df1

Retrieval Hint: query_raw_memories({query: "PR #11083 Drop+Supersede missed Request Changes velocity-preservation bias premise pre-flight"}) Retrieval Hint: Commit-anchor: review-comment ID IC_kwDODSospM8AAAABBxjTZw on PR #11083 (the miscalibrated review).

tobiu referenced in commit 4035921 - "feat(skills): pr-review Cycle-1 premise pre-flight + Drop+Supersede framing (#11084) (#11085) on May 10, 2026, 3:26 AM
tobiu closed this issue on May 10, 2026, 3:26 AM
tobiu referenced in commit 00069c6 - "feat(skills): Double Diamond graduation guard for ideation-sandbox (#11086) (#11095) on May 10, 2026, 12:32 PM