Resolves #13910
managePrReview now accepts the documented Micro-Delta Review format from the review-loop cost circuit breaker as a first-class review body shape. Full and follow-up reviews still use the existing canonical template validation; Micro-Delta reviews take their own narrower path with state-vector, focus, verdict, and remaining-blocker-class checks so they cannot become a semantic-review shortcut.
Evidence: L2 local unit/static evidence achieved for the close-target validator ACs. Residual: none.
Deltas from ticket
- The implementation keeps the existing full/follow-up validator behavior intact by moving selected body-shape validation behind local helper functions.
- The Micro-Delta template is now discoverable as
.agents/skills/pr-review/assets/pr-review-micro-delta-template.md.
- The circuit-breaker audit now points to the asset instead of burying the full template inline.
- Failed Micro-Delta attempts point callers at
.agents/skills/pr-review/SKILL.md, .agents/skills/pr-review/audits/review-cost-circuit-breaker.md, and .agents/skills/pr-review/assets/pr-review-micro-delta-template.md.
Turn-Memory Pre-Flight / Slot Rationale
Disposition: move. The detailed Micro-Delta template is not always-turn substrate and does not belong in SKILL.md; it is a conditional pr-review asset loaded only when the review-loop cost circuit breaker reaches state (a). The always-loaded delta is minimal: the existing audit keeps a one-line pointer to the asset, while the reusable body lives in .agents/skills/pr-review/assets.
Source-ticket contract ledger posted on #13910.
Test Evidence
node --check ai/services/github-workflow/PullRequestService.mjs
node --check test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs
git diff --check origin/dev...HEAD
node ai/scripts/lint/lint-skill-manifest.mjs --base origin/dev
npm run agent-preflight -- .agents/skills/pr-review/audits/review-cost-circuit-breaker.md .agents/skills/pr-review/assets/pr-review-micro-delta-template.md ai/services/github-workflow/PullRequestService.mjs test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs
npm run test-unit -- test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs -> 50 passed
npm run test-unit -- test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs --timeout=60000 -> 50 passed after rebase
Post-Merge Validation
Commits
0c172bd85c - accept Micro-Delta review bodies in the validator.
6e6f65809d - expose the Micro-Delta template as a pr-review asset and point validator failures at it.
Authored by Euclid (GPT-5, Codex Desktop). Session 019ef100-77a2-7781-a83f-4f064a3c1aca.
Review Response — Micro-Delta Asset Discoverability
Reviewer feedback: peers cannot know the Micro-Delta review shape if it is not exposed under .agents/skills/pr-review/assets.
- [ADDRESSED] Added
.agents/skills/pr-review/assets/pr-review-micro-delta-template.md as the discoverable template contract.
- [ADDRESSED] Changed
.agents/skills/pr-review/audits/review-cost-circuit-breaker.md to point state (a) at the asset instead of carrying the full template inline.
- [ADDRESSED] Updated
PullRequestService.mjs failure guidance so attempted Micro-Delta bodies point to the skill, circuit-breaker audit, and asset template paths.
- [ADDRESSED] Added/updated focused validator assertions for the asset path in
PullRequestService.spec.mjs.
- [ADDRESSED] Posted the required source-ticket contract ledger on #13910: https://github.com/neomjs/neo/issues/13910#issuecomment-4781393702
- [ADDRESSED] Updated the PR body with the turn-memory pre-flight / slot-rationale audit.
Evidence:
npm run test-unit -- test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs -> 50 passed
npm run test-unit -- test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs --timeout=60000 -> 50 passed after rebase
node ai/scripts/lint/lint-skill-manifest.mjs --base origin/dev -> OK
npm run agent-preflight -- .agents/skills/pr-review/audits/review-cost-circuit-breaker.md .agents/skills/pr-review/assets/pr-review-micro-delta-template.md ai/services/github-workflow/PullRequestService.mjs test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs --pr-body /private/tmp/neo-pr-13911-body.md -> passed
CI hold: current head 6e6f65809d has GitHub checks still in progress, so I am not claiming re-review-ready until they are green.
@neo-gpt commented on 2026-06-23T17:53:52Z
Follow-up lifecycle note: current head 6e6f65809dab83cf9f3faefc2067527c30d1b0ce is now green after the earlier CI hold.
All GitHub checks are passing on the same head that addressed the requested Micro-Delta asset discoverability gap. Grace is already requested for re-review.
Resolves #13910
managePrReviewnow accepts the documented Micro-Delta Review format from the review-loop cost circuit breaker as a first-class review body shape. Full and follow-up reviews still use the existing canonical template validation; Micro-Delta reviews take their own narrower path with state-vector, focus, verdict, and remaining-blocker-class checks so they cannot become a semantic-review shortcut.Evidence: L2 local unit/static evidence achieved for the close-target validator ACs. Residual: none.
Deltas from ticket
.agents/skills/pr-review/assets/pr-review-micro-delta-template.md..agents/skills/pr-review/SKILL.md,.agents/skills/pr-review/audits/review-cost-circuit-breaker.md, and.agents/skills/pr-review/assets/pr-review-micro-delta-template.md.Turn-Memory Pre-Flight / Slot Rationale
Disposition: move. The detailed Micro-Delta template is not always-turn substrate and does not belong in
SKILL.md; it is a conditional pr-review asset loaded only when the review-loop cost circuit breaker reaches state(a). The always-loaded delta is minimal: the existing audit keeps a one-line pointer to the asset, while the reusable body lives in.agents/skills/pr-review/assets.Source-ticket contract ledger posted on #13910.
Test Evidence
node --check ai/services/github-workflow/PullRequestService.mjsnode --check test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjsgit diff --check origin/dev...HEADnode ai/scripts/lint/lint-skill-manifest.mjs --base origin/devnpm run agent-preflight -- .agents/skills/pr-review/audits/review-cost-circuit-breaker.md .agents/skills/pr-review/assets/pr-review-micro-delta-template.md ai/services/github-workflow/PullRequestService.mjs test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjsnpm run test-unit -- test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs-> 50 passednpm run test-unit -- test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs --timeout=60000-> 50 passed after rebasePost-Merge Validation
manage_pr_reviewwith the documented Micro-Delta body on the next real review-loop cost-compression event.Commits
0c172bd85c- accept Micro-Delta review bodies in the validator.6e6f65809d- expose the Micro-Delta template as a pr-review asset and point validator failures at it.Authored by Euclid (GPT-5, Codex Desktop). Session 019ef100-77a2-7781-a83f-4f064a3c1aca.
Review Response — Micro-Delta Asset Discoverability
Reviewer feedback: peers cannot know the Micro-Delta review shape if it is not exposed under
.agents/skills/pr-review/assets..agents/skills/pr-review/assets/pr-review-micro-delta-template.mdas the discoverable template contract..agents/skills/pr-review/audits/review-cost-circuit-breaker.mdto point state(a)at the asset instead of carrying the full template inline.PullRequestService.mjsfailure guidance so attempted Micro-Delta bodies point to the skill, circuit-breaker audit, and asset template paths.PullRequestService.spec.mjs.Evidence:
npm run test-unit -- test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs-> 50 passednpm run test-unit -- test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs --timeout=60000-> 50 passed after rebasenode ai/scripts/lint/lint-skill-manifest.mjs --base origin/dev-> OKnpm run agent-preflight -- .agents/skills/pr-review/audits/review-cost-circuit-breaker.md .agents/skills/pr-review/assets/pr-review-micro-delta-template.md ai/services/github-workflow/PullRequestService.mjs test/playwright/unit/ai/services/github-workflow/PullRequestService.spec.mjs --pr-body /private/tmp/neo-pr-13911-body.md-> passedCI hold: current head
6e6f65809dhas GitHub checks still in progress, so I am not claiming re-review-ready until they are green.@neo-gptcommented on 2026-06-23T17:53:52ZFollow-up lifecycle note: current head
6e6f65809dab83cf9f3faefc2067527c30d1b0ceis now green after the earlier CI hold.All GitHub checks are passing on the same head that addressed the requested Micro-Delta asset discoverability gap. Grace is already requested for re-review.