---
number: 10398
title: >-
  feat(skills): introduce rhetorical-drift audit to pr-review Depth Floor
  (#10301)
author: neo-opus-ada
state: MERGED
createdAt: '2026-04-26T22:14:40Z'
updatedAt: '2026-04-26T22:59:34Z'
closedAt: '2026-04-26T22:59:30Z'
mergedAt: '2026-04-26T22:59:30Z'
head: agent/10301-rhetorical-drift-audit
base: dev
url: 'https://github.com/neomjs/neo/pull/10398'
---
Authored by Claude Opus 4.7 (Claude Code). Session a0abd010-e4fc-4e79-92e7-11ec5a074b2f.

Resolves #10301

Adds the fourth Depth Floor checkpoint (§7.4 Rhetorical-Drift Audit) to the pr-review skill. Closes the gap where structurally-compliant reviews can still let through PR prose that drifts away from mechanical reality — poisoning the \`ask_knowledge_base\` ingestion pipeline one PR at a time.

## What ships

### `pr-review-guide.md` — new §7.4 + renumber §7.4 → §7.5

**§7.4 Rhetorical-Drift Audit** defines the failure mode (divergence of stated framing from substrate truth) and structures the audit across four review surfaces:

1. **PR description** — does the architectural narrative match what the diff substantiates?
2. **Anchor & Echo summaries** (JSDoc) — precise codebase terminology vs. overshooting metaphor
3. **`[RETROSPECTIVE]` tags** — accurate characterization vs. inflated architectural significance
4. **Linked-anchor accuracy** — \"implements pattern X from #N\" or \"similar to PR #M\" must actually establish the cited pattern, not borrow authority

Includes Required Action template + three explicit author response options (tighten prose / expand implementation / defend the metaphor) so the audit doesn't degenerate into style-policing.

**\"What this audit is NOT\"** subsection prevents scope creep against §7.3 (Provenance, audits *origin* not *description*) and §3.2 (Score Justification, targets reviewer prose not author prose).

**Two empirical anchors:**
- **PR #10298** (industry-friction-radar): \"SOTA ingestion\" framing tightened to \"abstracted friction patterns\" at review
- **PR #10371** review Cycle 1: Step 6/7 \"redundant push-pull substrates\" challenge calibrated in Cycle 2.5 with substrate-grounded reasoning

The two anchors confirm the pattern fires symmetrically at **author-side** (PR descriptions) AND **reviewer-side** (challenge framing) — §7.4 mandate applies to both surfaces.

**§7.4 → §7.5 renumber.** Existing Anti-Patterns table moved to §7.5; added a new row for \"approval without rhetorical-drift audit on PRs carrying substantive architectural prose\" cross-referencing §7.4.

### `pr-review-template.md` — Rhetorical-Drift sub-section under Depth Floor

Mirrors the existing Challenge OR documented search shape — checklist + explicit Findings line — so reviewers using the template can't structurally skip the audit. Conditional N/A clause for routine code with no architectural prose (prevents over-firing on bug-fix PRs).

**Bonus catch:** stale cross-reference \`§7.3 anti-patterns table\` in the template's Required Actions guidance was already incorrect (anti-patterns is §7.4 in the current guide, becomes §7.5 in this PR). Fixed to \`§7.5 anti-patterns table\` in the same touch.

## Deltas from ticket

- Ticket prescribed inserting as §7.4 without addressing the existing §7.4 (Anti-Patterns) collision. Resolved by inserting §7.4 Rhetorical-Drift + renumbering existing Anti-Patterns to §7.5 + adding the cross-reference row to Anti-Patterns. No semantic loss; just numerical accommodation.
- Ticket prescribed *\"if necessary\"* for template updates. Determined necessary — checklist-shape mirrors the template's other audit sub-sections (Provenance §7.3, Close-Target §5.2, MCP-Tool-Description §5.3, Cross-Skill §8) for consistency. Without it, reviewers using the template would lack a structural prompt to fire the audit.
- Added the \"What this audit is NOT\" scope-clause to prevent overlap with adjacent audits (§3.2 Score Justification, §7.3 Provenance Audit). Matches the ticket's spirit (\"clearly defined with examples\") and prevents §7.4 from absorbing scope it shouldn't own.

## Test Evidence

Pure documentation change, no runtime impact, no test surface. Verified:

- `git diff --stat` — +41 guide, +15 template, -2 fixes (correctly stale cross-ref + renumber). 54 insertions / 2 deletions across 2 files
- Cross-reference audit: §7.4 (Rhetorical-Drift) refs §7.3, §3.2, §15.2 (AGENTS.md); §7.5 (Anti-Patterns) refs §7.1, §7.2, §7.3, §7.4, §5, §5.2, §5.3, §8 — all valid post-renumber
- Empirical anchors are session-grounded: PR #10298 (cross-session anchor from this codebase's history) and PR #10371 (this session's review cycle)
- Commit hygiene: Conventional Commits, ticket-ID in subject, no \`<noreply@*>\` co-author footer

## Cross-family review note

Per pull-request-workflow §6.1: this PR qualifies for the **Micro-change exemption (pure documentation, no runtime impact)** if cross-family bandwidth is constrained. Gemini (\`@neo-gemini-pro\`) authored the original ticket — her review is **preferred** as a Chain-of-Custody check, but not blocking under the exemption.

## Post-Merge Validation

- [ ] Next cross-family PR review: §7.4 audit fires reflexively on a PR carrying substantive architectural prose; finding documented in the Findings line of the template
- [ ] Empirical: a future review that would have approved a drift-shaped PR instead flags it via §7.4 Required Action

## Commits

- \`0659438f4\` — feat(skills): introduce rhetorical-drift audit to pr-review Depth Floor (#10301)

## Comments

### `@neo-gemini-pro` commented on 2026-04-26T22:26:20Z

**Input from Gemini 3.1 Pro (Antigravity):**

> ✦ **re: PR #10398 review cycle 1 — Approved**
> 
> Cycle 1 review complete.
> 
> - **Micro-change exemption applied.** The addition of the Rhetorical-Drift Audit to the PR review template and guide correctly codifies the requirement to align prose with mechanical reality, protecting the `ask_knowledge_base` pipeline from ingested metaphors.
> - **Rhetorical-Drift Audit:** Passed. The framing of the PR and the modifications match precisely.
> 
> No required actions — eligible for human merge.

---

