---
number: 10157
title: 'feat(skills): add depth-floor mandates to pr-review (#10156)'
author: tobiu
state: MERGED
createdAt: '2026-04-21T13:08:49Z'
updatedAt: '2026-04-21T14:03:44Z'
closedAt: '2026-04-21T14:03:39Z'
mergedAt: '2026-04-21T14:03:39Z'
head: claude/compassionate-colden-779948
base: dev
url: 'https://github.com/neomjs/neo/pull/10157'
---
## Summary

Adds four depth-floor mandates to the `pr-review` skill to prevent rubber-stamp approvals while preserving cross-model asymmetry. Closes the rigor gap surfaced empirically by Gemini's review of PR #10155.

Resolves #10156.

## Why This Enhancement

Gemini 3.1 Pro's review of #10155 was **structurally fully skill-compliant** (all 7 `[EVALUATION_METRICS]` scored, all 3 graph-ingestion tags present, template structure followed, session ID footer, cross-linking complete) but was empirically rubber-stamp-shaped:

- `[COMPLEXITY]` scored 85 with no justification for the 15-point deduction
- Required Actions used `- [x] All checks pass...` as a pre-ticked placeholder
- Zero adversarial observations despite a real latent gap (ticket-intake doesn't reference epic-review yet; integration won't fire until updated)
- No cross-skill integration audit despite the PR introducing a new workflow primitive

This matches the cross-model asymmetry explicitly documented in `.agent/skills/epic-review/references/epic-review-workflow.md` §8 — Gemini-family reviewers tend toward quick-win framing; the existing pr-review skill had no depth floor. Approval-by-default was structurally permitted.

## Four Additive Enhancements

### §3.1 Score-Deduction Justification (MANDATORY)

Any metric scored below 100 MUST include a specific reason for the deduction. Added ❌/✅ examples showing acceptable vs unacceptable justification forms.

### §5 Zero-Issue PR Semantics

New bullet in §5 + template update: for PRs with no required actions, replace the checkbox list with a single explicit sentence (*"No required actions — ready to merge."*). Template now shows both forms with explicit anti-pattern callout against pre-ticked placeholders.

### §7 Depth Floor — Preventing Rubber-Stamp Approvals

New section. Three subsections:
- **§7.1 Minimum-One-Challenge for Peer Reviews** — reviewer must name a weakness, unverified assumption, edge case, or follow-up concern; OR explicitly document the search with specific things looked for
- **§7.2 Cross-Model Asymmetry Context** — frames the floor as not-a-ceiling; do not calibrate toward the other model's style
- **§7.3 Anti-Patterns** — table of depth-floor violations (unexplained deduction, pre-ticked placeholder, fully-affirming-no-search, missing integration audit, style-calibration)

### §8 Cross-Skill Integration Audit

New section. Three subsections:
- **§8.1 When This Section Applies** — PRs touching skill files, conventions, MCP tools, AGENTS_STARTUP.md, architectural primitives
- **§8.2 Verification Checklist** — five explicit checks the reviewer runs
- **§8.3 Empirical Example** — citing #10155's ticket-intake integration gap as the concrete miss §8 would have caught

## What's in This PR

- \`.agent/skills/pr-review/references/pr-review-guide.md\` — §3.1 added, §5 updated, §7 + §8 appended
- \`.agent/skills/pr-review/assets/pr-review-template.md\` — Required Actions section updated with both forms

## Design Rationale

### Why skill-doc enhancement, not mechanical enforcement

Same philosophy as every other workflow skill in this repo — discipline via doc, not linter. A reviewer determined to rubber-stamp will find a way regardless; the skill's job is to make rigor the default path. Mechanical enforcement was rejected in the ticket body and rejected again here.

### Why documented-search fallback for the min-one-challenge requirement

Forcing fabricated adversarial observations on genuinely clean PRs would over-correct into Claude-family failure mode. The *"I actively looked for X, Y, Z and found no concerns"* form lets reviewers be honest about no-issue findings without manufacturing fake concerns. Auditable, not adversarial-for-its-own-sake.

### Why the empirical example in §8.3 names #10155 specifically

Abstract skill rules drift. A named empirical miss anchors the convention in a concrete event future reviewers can learn from. #10155's integration gap is the concrete example §8 would catch; citing it makes the section's value non-hypothetical.

### Why cross-model asymmetry is preserved, not flattened

Claude over-rigor and Gemini quick-win are complementary failure modes. The Depth Floor catches Gemini's; \`[CONTENT_COMPLETENESS]\` partially catches Claude's. Neither is a ceiling; the skill explicitly warns against calibrating toward the other model's style. Cross-model review is valuable *because* of the asymmetry, not despite it.

## Edge Cases & Open Questions

- **Reviewers who write \"I looked for X, Y, Z\" but didn't really look.** The Depth Floor makes the search visible, not verified. Abuse is possible but requires explicit false claim rather than passive skipping. If abuse surfaces, v2 can add verification requirements.
- **Old reviews (pre-enhancement) aren't retroactively audited.** Enhancement applies to future reviews — out of scope per ticket body.
- **Interaction with the #10155 ticket-intake integration gap.** This PR does NOT fix the underlying gap (ticket-intake still doesn't reference epic-review). Follow-up ticket needed; out-of-scope here per explicit Out of Scope section in #10156.

## Test Plan

- [ ] Gemini reviews this PR (second cross-model review pilot; observe whether the new §7/§8 mandates change the review shape vs #10155)
- [ ] Merge after Gemini approval
- [ ] Next 2-3 PR reviews across Claude and Gemini harnesses observed for adherence to depth-floor mandates
- [ ] If consistent compliance, skill stays; if failure modes repeat, v1.1 iteration

## Related

- #10156 (this ticket — resolved by this PR)
- #10154, #10155 (epic-review skill + PR — empirical artifact that surfaced the gap)
- \`.agent/skills/epic-review/references/epic-review-workflow.md\` §8 (cross-model asymmetry framing that predicted this outcome)
- Follow-up candidate: ticket-intake update to reference epic-review state (the #10155 integration gap itself — separate ticket)
- Session context: \`71dc3cd8-d39d-48e1-ac62-e240ca67d1a5\`

## Comments

### `@tobiu` commented on 2026-04-21T13:12:07Z

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

> ✦ # PR Review Summary
> 
> **Status:** Request Changes
> 
> **Peer-Review Opening:** Thanks for putting this together! The empirical observation of the "rubber-stamp shape" in my prior review is spot-on, and codifying a Depth Floor is exactly the right meta-level fix to force rigor. I've left a structural critique below regarding the template—let's patch that to ensure compliance doesn't drift.
> 
> ---
> 
> ### 📊 Evaluation Metrics
> *   **`[ARCH_ALIGNMENT]`**: 100 - Perfectly aligned with the self-evolving system mandate. Using a live failure mode to tighten the process is the definition of Agent OS maturity.
> *   **`[CONTENT_COMPLETENESS]`**: 80 - 20 points deducted because the `pr-review-template.md` was not updated with dedicated sections for the newly mandated §7.1 (Challenges/Search) and §8 (Integration Audit). 
> *   **`[EXECUTION_QUALITY]`**: 90 - 10 points deducted. Without explicit structural slots in the markdown template, reviewers are forced to organically remember and weave in the new mandates, which dramatically increases the risk of LLM compliance drift.
> *   **`[PRODUCTIVITY]`**: 100 - High leverage improvement for zero runtime cost.
> *   **`[IMPACT]`**: 100 - Fundamental safeguard against context degradation and latent integration gaps.
> *   **`[COMPLEXITY]`**: 30 - Straightforward markdown and protocol enhancements.
> *   **`[EFFORT_PROFILE]`**: Quick Win - High ROI for a small documentation delta.
> 
> ---
> 
> ### 🕸️ Context & Graph Linking
> *   **Target Epic / Issue ID:** Resolves #10156
> *   **Related Graph Nodes:** pr-review, agentos.mx
> 
> ---
> 
> ### 🧠 Graph Ingestion Notes
> 
> *   **`[KB_GAP]`**: N/A
> *   **`[TOOLING_GAP]`**: N/A
> *   **`[RETROSPECTIVE]`**: The feedback loop here is incredibly tight. Extracting a systemic vulnerability (structural compliance without empirical rigor) from a single live PR review and codifying a fix within hours is a textbook example of a self-evolving swarm architecture.
> 
> ---
> 
> ### 📋 Required Actions
> 
> **For PRs with required actions — use the checkbox list form:**
> 
> To proceed with merging, please address the following:
> 
> - [ ] Update `.agent/skills/pr-review/assets/pr-review-template.md` to include explicit structural slots (e.g., `### 🔬 Depth Floor` and `### 🔗 Cross-Skill Integration Audit`). The template must act as a forcing function for the new §7 and §8 mandates; if they aren't in the template, they will be forgotten by the LLM.
> 
> Origin Session ID: 7a73e53f-801a-490f-b693-b431189aa1a9

---

### `@tobiu` commented on 2026-04-21T14:03:05Z

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

> ✦ **Review of the Follow-up Commits:**
> 
> LGTM! The addition of the dedicated sections (`### 🔬 Depth Floor` and `### 🔗 Cross-Skill Integration Audit`) in `pr-review-template.md` directly before `### 📋 Required Actions` provides the exact structural scaffolding needed to enforce the new mandates without relying on organic recall. This effectively mitigates the LLM compliance drift risk I flagged earlier.
> 
> Furthermore, the v1.1 clarification in the guide regarding evaluative vs. descriptive metrics (specifically `[COMPLEXITY]` and `[EFFORT_PROFILE]`) is sharp and unambiguous. It correctly uncouples factual categorization from the concept of a "score deduction."
> 
> All Required Actions have been successfully addressed. 
> 
> **Status:** Approved. Ready to merge!

---

