LearnNewsExamplesServices
Frontmatter
id13910
titleAccept documented Micro-Delta PR reviews across MCP and CI review-body lint
stateClosed
labels
bugaitestingmodel-experience
assigneesneo-gpt
createdAtJun 23, 2026, 8:23 AM
updatedAtJun 28, 2026, 4:59 PM
githubUrlhttps://github.com/neomjs/neo/issues/13910
authorneo-gpt
commentsCount2
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJun 28, 2026, 4:59 PM

Accept documented Micro-Delta PR reviews across MCP and CI review-body lint

Closed v13.1.0/archive-v13-1-0-chunk-5 bugaitestingmodel-experience
neo-gpt
neo-gpt commented on Jun 23, 2026, 8:23 AM

Context

#13910 originally covered the documented Micro-Delta PR-review template being rejected by the MCP manage_pr_review validator. PR #13911 resolved that MCP surface.

On 2026-06-28, PR #14282 exposed the residual enforcement-surface gap: manage_pr_review accepted a documented # Pull Request Micro-Delta Review, but the GitHub Actions lint-pr-review-body job in .github/workflows/agent-pr-review-body-lint.yml rejected the same review body because the workflow still only recognized the full/follow-up review anchors plus the Micro-Review light path.

This ticket now covers the remaining parity fix: the CI review-body lint surface must accept the same documented Micro-Delta shape as PullRequestService.mjs, without weakening the existing full/follow-up anti-Goodhart validation.

Architectural Reality

The current sources define three relevant review-body validation tiers:

  • Full / follow-up PR review bodies: heavy graph-ingestion template checks with visible and invisible anchors.
  • Micro-Review bodies: cycle-1 blast-scaled light shape for micro or contained PRs.
  • Micro-Delta bodies: cycle-N cost-compression shape for review-loop state (a), where semantics are cleared and only mechanical-hygiene or metadata-drift remains.

ai/services/github-workflow/PullRequestService.mjs already implements all three tiers and has #13910 unit coverage for Micro-Delta pass/fail behavior. The workflow companion still lacks the Micro-Delta tier, so agents using the documented format through a valid review path can still get a red CI lint check.

The workflow runs as inline actions/github-script; it does not currently import repo-local validator helpers. The near-term release fix is therefore to keep the inline workflow constants synchronized with the MCP validator and add focused coverage around the workflow script, not to split a new helper extraction lane.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
manage_pr_review review-body validator .agents/skills/pr-review/assets/pr-review-micro-delta-template.md + PullRequestService.mjs Already accepts valid Micro-Delta reviews and rejects incomplete/semantic-shortcut attempts Continue existing full/follow-up validation pr-review skill assets Existing PullRequestService.spec.mjs #13910 tests
.github/workflows/agent-pr-review-body-lint.yml / lint-pr-review-body PR #11495 CI companion to the MCP validator + current PullRequestService.mjs constants Accept the same valid Micro-Delta skeleton, reject malformed Micro-Delta attempts, and preserve canonical full/follow-up checks Post the same corrective comment + fail the check when malformed Workflow comments point to pr-review skill, circuit-breaker audit, and Micro-Delta asset New focused workflow-script unit coverage plus local lint validation
Review-loop cost-compression workflow pr-review circuit-breaker state (a) A valid Micro-Delta formal review can pass both MCP and CI enforcement surfaces If semantic blockers reappear, reviewer must use the full follow-up template .agents/skills/pr-review/audits/review-cost-circuit-breaker.md Reproduce with a Micro-Delta fixture modeled on #14282

Acceptance Criteria

  • Update .github/workflows/agent-pr-review-body-lint.yml to accept valid # Pull Request Micro-Delta Review bodies using the same required anchors and blocker-class guard as PullRequestService.mjs.
  • Reject incomplete Micro-Delta-like bodies before the workflow falls through to the full/follow-up validator.
  • Reject Micro-Delta bodies whose Remaining Blocker Class is not mechanical-hygiene or metadata-drift.
  • Preserve the existing full/follow-up visible, invisible, and premise-snapshot validation path.
  • Keep CI reviewer premise-snapshot enforcement aligned with PullRequestService.mjs, including Premise Coherence, unless a deliberate exception is documented in the PR.
  • Add focused unit coverage for the workflow-script behavior or an equivalent extracted workflow validator fixture.

Out of Scope

  • Reworking the entire PR-review template system.
  • Weakening the anti-Goodhart visible/invisible anchor guard.
  • Spawning a separate micro-ticket or micro-PR for this residual CI parity fix.

Avoided Traps

  • Do not bypass validation for Micro-Delta reviews wholesale. The bug is that one documented template class is missing from the CI accepted skeletons.
  • Do not stuff metric tags into Micro-Delta reviews to satisfy the full/follow-up validator; that recreates the expensive template the circuit breaker is meant to avoid.
  • Do not split this into another leaf PR unless the operator explicitly changes direction.

Successor / Duplicate Evidence

  • PR #13911 merged on 2026-06-23 and resolved the MCP manage_pr_review portion only.
  • PR #14282 on 2026-06-28 reproduced the residual CI lint mismatch on a valid Micro-Delta review.
  • Live search for Micro-Delta review-body lint surfaces #13910 as the active implementation ticket; no separate residual-CI ticket is needed.
tobiu referenced in commit 814b008 - "fix(ai): accept micro-delta PR review bodies (#13910) (#13911) on Jun 23, 2026, 9:28 PM
tobiu closed this issue on Jun 23, 2026, 9:28 PM
tobiu referenced in commit 73e886a - "fix(ai): align review-body CI lint with micro-delta (#13910) (#14290)" on Jun 28, 2026, 4:59 PM
tobiu closed this issue on Jun 28, 2026, 4:59 PM