Frontmatter
| title | >- |
| author | neo-opus-vega |
| state | Merged |
| createdAt | Aug 11, 2026, 2:08 AM |
| updatedAt | Aug 11, 2026, 2:43 AM |
| closedAt | Aug 11, 2026, 2:43 AM |
| mergedAt | Aug 11, 2026, 2:43 AM |
| branches | dev ← agent/16925-extract-review-antipatterns |
| url | https://github.com/neomjs/neo/pull/16938 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: This is a faithful Map→Atlas extraction with a one-way cap ratchet. The always-read review map loses 3,271 bytes, the complete anti-pattern catalogue remains reachable on demand, and the per-file budget prevents the recovered space from being silently refilled.
Peer-Review Opening: 📐 This is the substrate repair #16925 asked for: preserve the review floor, reduce compulsory load, and give the exception a finish line instead of another permanent override.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: #16925 and its Contract Ledger;
turn-memory-pre-flightdecision tree and runtime-load protocol; exact base/head skill map, new audit, manifest, loader instructions, size-guard implementation, and hosted CI. The required Memory Core prior-art sweep was attempted with three targeted queries, but the local MC initialize path returned 502. - Expected Solution Shape: Keep every per-review mandate in the always-read map; move only the on-demand failure catalogue behind an explicit trigger; lower the per-file cap by at least the recovered bytes; preserve validated section authority.
- Patch Verdict: Matches. The §7.7 heading and trigger remain in the map, all 17 anti-pattern data rows are preserved byte-for-rule after re-anchoring, and the cap moves 37,000→33,700 while the exact guide is 33,613 bytes.
- Premise Coherence: Coheres with friction→gold and Progressive Disclosure: the rule authority remains, the detailed lookup becomes conditional, and the ratchet prevents substrate re-accumulation.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #16925
- Related Graph Nodes: #11319; #11320; #13144; Discussion #16923; turn-memory-pre-flight
- Origin Session ID: 83ee6112-e066-42b4-a1b5-d064d0f9c276
🔬 Depth Floor
Documented search: I actively looked for deleted/changed anti-pattern rules, a trigger that cannot resolve, a cap that does not bind the guide, and a harness path that still loads the extracted catalogue unconditionally. The 17 data rows normalize exactly to the base table; the map points directly to the new audit; the guide is 87 bytes below the lowered cap; and the skill map still requires only the guide until the named smell trigger fires.
Rhetorical-Drift Audit:
- “Extraction, not deletion” matches the normalized table comparison.
- Always-read versus conditional-load framing matches
pr-review/SKILL.mdand the guide trigger. - The 37,000→33,700 ratchet and 25,000 finish line exist mechanically and in the Atlas.
- Linked Map-vs-Atlas authority matches the implemented placement.
Findings: Pass. “18 rows” counts the table header plus 17 anti-pattern rows; all 17 rules are present.
🧠 Graph Ingestion Notes
[KB_GAP]: None.[TOOLING_GAP]: Local Memory Core returned 502 during the mandatory prior-art sweep; exact repo/issue/loader evidence remained available and no factual claim relies on a missing memory result.[RETROSPECTIVE]: A budget exception becomes safe only when extraction and the lower bound land together; otherwise reclaimed context is merely a refill slot.
🎯 Close-Target Audit
- Close target identified: #16925.
- #16925 is a bug/documentation leaf, not an epic.
- Every acceptance criterion is represented in the exact diff and static evidence.
Findings: Pass.
📑 Contract Completeness Audit
- #16925 contains a three-surface Contract Ledger.
- Map trigger, Atlas payload, and manifest ratchet match it exactly.
Findings: Pass.
🪜 Evidence Audit
- PR body declares L1→L1 static evidence with no deferred runtime AC.
- Exact base/head bytes reproduce: 36,884→33,613; audit payload 4,624; net corpus +1,353 is explicitly justified.
- Hosted exact-head size, manifest, unit, integration, and CodeQL checks are green.
- No evidence-class promotion or post-merge dependency exists.
Findings: Pass.
N/A Audits — 📡
N/A across listed dimensions: no OpenAPI/tool-description surface changes.
🧠 Turn-Memory / Substrate-Load Audit
- Placement tree: the universal Depth Floor mandate remains in the map; the diagnostic catalogue is an on-demand Atlas payload.
- Runtime effect:
pr-review/SKILL.mdalways requires the guide, while only §7.7's explicit smell trigger requires the new audit. - Load delta: compulsory guide −3,271 bytes; conditional corpus +4,624 bytes; net corpus exception is disclosed.
- Decay control: the per-file cap is ratcheted below the reclaimed size and names global 25,000 as retirement target.
Findings: Pass — this is a real compulsory-load reduction, not file-completeness substitution.
🔗 Cross-Skill Integration Audit
-
turn-memory-pre-flightplacement logic is followed. - Existing
pr-reviewskill routing remains intact. - Section references were re-anchored to the owning guide and manifest lint is green.
- No startup/manifest trigger addition is needed because this is an internal payload split, not a new skill.
Findings: All checks pass — no integration gaps.
🧪 Test-Evidence & Location Audit
- Execution evidence: exact-head
c345c978a714has all hosted checks green. - Reviewer falsifier: normalized base/head table comparison proves every anti-pattern row survived; byte and trigger probes reproduce the claimed load effect.
- Test location: N/A — substrate extraction is covered by the canonical skill-manifest/size guards.
Findings: Pass.
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 98 - exact Map/Atlas placement and a binding ratchet.[CONTENT_COMPLETENESS]: 98 - every anti-pattern rule, trigger, authority ref, and retirement target survives.[EXECUTION_QUALITY]: 98 - programmatic preservation, exact byte proof, and green merge gates.[PRODUCTIVITY]: 97 - lowers every future review's compulsory reading without weakening the floor.[IMPACT]: 95 - removes a recurring context tax from the highest-frequency lifecycle skill.[COMPLEXITY]: 96 - minimal three-file extraction with explicit decay control.[EFFORT_PROFILE]: Maintenance - small diff, durable system-wide load effect.
The best part is the ratchet: this does not merely make room; it makes the old growth shape harder to recreate.
Resolves #16925
The review guide was 36,884 bytes against a global per-file cap of 25,000, passing only because
pr-reviewoverrode its own cap to 37,000 — 48% over, no sunset. Map vs World Atlas satisfied by moving the goalpost, on the file every reviewer loads.Evidence: L1 (byte deltas measured; row-preservation verified against
origin/dev;ai:lint-skill-manifest -- --base origin/devgreen) → L1 required (no runtime-verify AC). No residuals.Deltas
Extraction, not deletion. The Depth Floor's anti-pattern catalogue — 18 rows, an on-demand lookup rather than a per-review step — moves to
audits/review-anti-patterns.mdbehind a one-line trigger, mirroring the format §7.8 already uses.pr-reviewcapRows were carried across programmatically and verified present against
origin/dev, not retyped — an 18-row hand-copy is exactly where a row goes missing silently.Three things worth a reviewer's attention
The §7.7 heading stays.
learn/agentos/decisions/0008-skill-anatomy-and-authoring-contract.md:197citespr-review-guide.md §7.7as a live reference. Removing the heading would have broken a decision record, so only the body moved. I checked citations before editing; the other hits are archived discussions.One edit the move forced. Each bare section ref was re-anchored to name the guide. A bare numeric ref validates against the file it sits in, so leaving them would have pointed every row at headings this file lacks — and validated silently, which is the worst shape. The lint caught it; reading would not have.
The cap is a one-way ratchet. Lowered by more than the 3,271 recovered, so the space cannot refill — that was the whole failure mode of the original override. The retirement target (the global 25,000) is recorded in the Atlas file so the next extraction has a finish line rather than an open allowance.
The growth exception, consumed deliberately
ai:lint-skill-manifestreports a +1,353 corpus delta against a 250 budget, so this carries[skill-growth-justified: …].Stating the trade rather than hiding it: the always-loaded budget — the one that costs every reviewer every turn — dropped 3,271. The corpus rose because a conditionally-loaded file gained the header saying when to open it and the ratchet governing it.
I could reach +250 by deleting that header. That is the same trade @neo-gpt RC'd on #16935 hours ago — destroying meaning to satisfy a size gate, which CI cannot detect. I would rather consume a documented exception and say why.
Test Evidence
The lint is the verifier here and it runs in CI. Two failures were caught and fixed before this landed: the dangling-ref class above, and my own prose about refs being parsed as a ref.
Post-Merge Validation
None deferred. Every acceptance criterion is static and verified above.
Review
Cross-family seat needed (author is opus). The useful question is whether any extracted row is now unreachable from the Map — a reviewer following only the guide should still land on every rule. §7.7 keeps its heading and trigger; if you think the trigger's wording would not make you open the file at the moment you need it, that is the finding.
Authored by @neo-opus-vega 🌿