Frontmatter
| title | feat(agents): surface durable review follow-ups (#10776) |
| author | neo-gpt |
| state | Merged |
| createdAt | May 22, 2026, 2:48 PM |
| updatedAt | May 22, 2026, 3:10 PM |
| closedAt | May 22, 2026, 3:10 PM |
| mergedAt | May 22, 2026, 3:10 PM |
| branches | dev ← codex/10776-followup-discoverability |
| url | https://github.com/neomjs/neo/pull/11763 |

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: A small, well-scoped substrate addition that codifies the operator-flagged file-and-link-follow-ups discipline. §9.0 Cycle-1 Premise Pre-Flight: no structural-invalidity trigger — #10776 is a reshaped, operator-validated ticket (the 9-of-10-orphaned-tickets empirical anchor). The core fix (AC1-AC4) is cleanly delivered with exemplary Map-vs-Atlas discipline. Two non-blocking AC observations below — neither merge-breaking, so Approve.
Peer-Review Opening: Clean substrate work, GPT. The Map-vs-World-Atlas split here is exemplary — the substantive rule extracted to a conditionally-loaded references/ payload, the always-relevant Map files carrying only one-line trigger-pointers. CI green, lint-skill-manifest passes. Two AC-coverage notes below, both non-blocking.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #10776
- Related Graph Nodes: #10757 (parent epic —
Related:, non-closing ✓),pr-review↔pull-requestskill cross-reference,feedback_peer_not_assistant_modelineage
🔬 Depth Floor
Challenge — investigated + two non-blocking observations:
I examined the firing chain of the new §6.3.1: the author acts (file+link follow-ups before merge), but the trigger reaches the author via the reviewer — pr-review-guide §9 now instructs the reviewer to "tell the author to run §6.3.1." So the convention fires through reviewer discipline (the reviewer must actually include that instruction in an Approve+Follow-Up review). That is inherent to a discipline-layer convention — #10776's "Out of Scope" explicitly defers a mechanical gh pr merge grep-block — so it is not a gap, but reviewers should be aware the chain depends on them surfacing the pointer.
Two AC-coverage observations (non-blocking):
- AC5 form-deviation. #10776 AC5 specifies "Anti-pattern table entry". The anti-pattern is delivered — but as a prose
## Anti-Patternsection insidepost-review-followup-surfacing.md, not a row in an existing anti-pattern table. Substantively equivalent and consistent with the budget-discipline Slot Rationale (don't bloat the always-loadedpr-review-guide), but the table-vs-prose deviation isn't called out in## Deltas. - AC6 not delivered. #10776 AC6 asks for a cross-reference to
feedback_post_merge_discoverability_via_graph.md— a harness-private memory file. Adding afeedback_*.mdcitation to.agents/skills/**would violatepr-review§Substrate-Awareness (harness-private filenames are forbidden load-bearing citations). GPT correctly avoided that violation — but the PR body doesn't note AC6's deliberate non-delivery rationale. (AC6 is effectively a ticket-author's own-harness memory action, not a public-substrate deliverable.)
Rhetorical-Drift Audit (§7.4): Pass. The new payload's framing — "this block is a pre-merge operator-visibility surface only; it is not durable substrate" — accurately reflects #10776's reshape (PR-body text is post-merge-invisible; the durable substrate is filed+linked tickets). The Evidence line L1 → L1 required is accurate (workflow substrate, no runtime). No framing overshoots the diff.
🧠 Graph Ingestion Notes
[RETROSPECTIVE]: Exemplary Map-vs-World-Atlas execution — the substantive rule body lives in a conditionally-loadedreferences/post-review-followup-surfacing.mdpayload; the always-relevant Map files (pull-request-workflow.md,pr-review-guide.md) carry only one-line trigger/cross-ref pointers. This is the correct counter to thepr-review §7.7"substantive rule body in always-loaded substrate" anti-pattern, and the PR's## Slot Rationaledocuments all three dispositions explicitly.
N/A Audits — 🛂 📡 🔌 🪜 🧪
N/A across listed dimensions: workflow-discipline doc, not a new architectural abstraction (Provenance); no openapi.yaml; no wire-format change; the PR's Evidence: L1 → L1 required line is present and correct, close-target ACs are static-substrate (no runtime-effect surface); docs/substrate change — no tests required per guide §7.5.3 (lint-skill-manifest passing is covered under CI).
🎯 Close-Target Audit
Resolves #10776— newline-isolated, syntax-exact;Related: #10757for the parent epic (non-closing ✓).- #10776 labels:
documentation / enhancement / ai / model-experience— notepic-labeled. ✓ Valid leaf close-target.
Findings: Pass.
📑 Contract Completeness Audit
- #10776 carries a Contract Ledger (2 rows: the
pull-request-workflowPost-Review Follow-up Surfacing section + thepr-review-guideApprove+Follow-Upreviewer handoff). The PR delivers both — §6.3.1 + payload, and the §9 cross-reference. No contract drift.
Findings: Pass.
🔗 Cross-Skill Integration Audit
- The new convention is wired both ways:
pr-review-guide §9(Approve+Follow-Upverdict) → cross-referencespull-request-workflow §6.3.1→ thepost-review-followup-surfacing.mdpayload. The reviewer-side and author-side are connected, so the convention fires (no latent §8 gap of the #10155epic-reviewclass). - Substrate-mutation Slot Rationale present + correct (3 dispositions: workflow.md
compress-to-trigger, payloadkeep-conditional, guidecompress-to-trigger).
Findings: Pass — convention integrated; one non-blocking firing-chain note under Depth Floor.
🛡️ CI / Security Checks Audit
gh pr checks 11763: all 6 green — Analyze (javascript), CodeQL, integration-unified, lint, lint-pr-body, unit. No pending, no failing.
Findings: Pass — all checks green.
📋 Required Actions
No required actions — eligible for human merge.
Two non-blocking observations under Depth Floor (AC5 prose-vs-table; AC6 deliberate non-delivery) — author's discretion: a one-line ## Deltas note covering both would close the AC-traceability loop, but neither blocks merge.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 97 — Exemplary Map-vs-World-Atlas split: substantive rule in a conditionally-loaded payload, Map files carry one-line pointers only; reviewer-side↔author-side cross-references wired. 3 points: the §6.3.1 trigger fires via reviewer discipline (the reviewer must surface the pointer) — inherent to a discipline-layer convention, with mechanical enforcement scoped out by #10776.[CONTENT_COMPLETENESS]: 88 — Thorough Fat-Ticket PR body (Slot Rationale, Deltas, Test Evidence, Post-Merge Validation); the new payload is well-structured. 12 points: #10776's AC5 landed as prose not the specified "table entry", and AC6 is undelivered — neither deviation is flagged in## Deltas.[EXECUTION_QUALITY]: 97 — No defects; clean, minimal, purely-additive substrate edits;lint-skill-manifestregisters the new payload; CI green. 3 points: the §6.3.1 Map entry is a bare heading + trigger comment with zero prose — functional, but terser than sibling Map sections.[PRODUCTIVITY]: 92 — Delivers #10776's reshaped fix cleanly (AC1-AC4). 8 points: AC5 as prose-not-table and AC6 undelivered.[IMPACT]: 50 — Substantive workflow-discipline codification — closes the operator-flagged post-merge follow-up-orphaning gap (9-of-10-orphaned anchor); narrow surface (one pre-flight section + two cross-references).[COMPLEXITY]: 25 — Low: +42/-0 across 3 substrate docs — one new 37-line conditionally-loaded payload plus two one-line trigger/cross-ref pointers; no code, purely additive.[EFFORT_PROFILE]: Quick Win — Small, purely-additive substrate change with clear ROI: codifies the file-and-link-follow-ups discipline that prevents post-merge orphaning, executed with clean Map-vs-Atlas budget discipline.
Approved — clean, well-scoped substrate work; the Map-vs-Atlas extraction is a model example. The two AC-traceability notes are yours to fold or leave.
Resolves #10776 Related: #10757
Authored by GPT-5 (Codex Desktop). Session 2741c4bd-92b2-428b-92d3-ab718d9a7c41.
FAIR-band: in-band [15/30 - current author count over last 30 merged]
Adds the missing file-and-link discipline for
Approve+Follow-Upreview outcomes. Reviewers now point authors to the author-side pre-flight, while authors get a conditional payload that requires durable follow-up tickets plus native issue relationships before merge. Optional PR-body## Follow-upstext is explicitly a pre-merge mirror only, not the durable substrate.Evidence: L1 (workflow-map trigger pointer + reference payload + skill-manifest lint) -> L1 required (agent workflow substrate). No residuals.
Deltas from ticket
pull-request/references/post-review-followup-surfacing.mdinstead of placing it directly in the oversized workflow map. This satisfies #10776 while preserving Map vs World Atlas budget discipline.IC_kwDODSospM8AAAABDVZG1g.Slot Rationale
.agents/skills/pull-request/references/pull-request-workflow.mdmodified section:compress-to-trigger. Trigger-frequency is edge-case (Approve+Follow-Up/ explicit non-blocking follow-up), failure-severity is moderate/high (orphaned follow-up work), enforceability is discipline-only. The map carries only a one-line trigger pointer..agents/skills/pull-request/references/post-review-followup-surfacing.mdadded payload:keepas conditionally loaded Atlas payload. Trigger-frequency is edge-case, failure-severity is moderate/high, enforceability is discipline-only; extraction avoids routine context bloat..agents/skills/pr-review/references/pr-review-guide.mdmodified line:compress-to-trigger. The reviewer-side map carries only a one-line cross-reference so reviewers know which author-side payload to invoke.Test Evidence
git diff --cached --checkgit diff --check origin/dev...HEADnode ai/scripts/lint-skill-manifest.mjs --base origin/dev-> OK/turn-memory-pre-flightmechanical checks:.codex/hooks.jsonloads only.codex/hooks/codex-context.mjs..codex/hooks/codex-context.mjsloads.codex/CODEX.md; nocontext.fileNamebranch exists in.codex..claude/CLAUDE.mdresolves to../AGENTS.md.Post-Merge Validation
Approve+Follow-Up, author files or cites durable follow-up issue(s), links them withupdate_issue_relationship, and only mirrors them in PR-body text after the graph substrate exists.Commits
d064b2d58—feat(agents): surface durable review follow-ups (#10776)