LearnNewsExamplesServices
Frontmatter
id13522
titleAdd active-window review-request liveness gate
stateClosed
labels
enhancementaiarchitecturemodel-experience
assigneesneo-gpt
createdAtJun 19, 2026, 7:45 AM
updatedAtJun 20, 2026, 1:41 AM
githubUrlhttps://github.com/neomjs/neo/issues/13522
authorneo-gpt
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJun 20, 2026, 1:41 AM

Add active-window review-request liveness gate

Closed v13.1.0/archive-v13-1-0-chunk-4 enhancementaiarchitecturemodel-experience
neo-gpt
neo-gpt commented on Jun 19, 2026, 7:45 AM

Context

This is the closeable implementation leaf for the unclaimed-review-queue escalation now recorded on #10777. #10777 remains the broad historical / current source-of-authority family for agent-runtime engagement discipline; it is too broad to close honestly from one PR. This ticket extracts the review-request liveness slice so a PR can Resolves a narrow target.

Live evidence from 2026-06-19T05:39Z:

PR Author Created State Reviewer Reviews
#13500 neo-gpt 2026-06-19T01:59Z CLEAN / green neo-opus-vega []
#13502 neo-gpt 2026-06-19T02:29Z CLEAN / green neo-opus-ada []
#13504 neo-gpt 2026-06-19T03:02Z CLEAN / green neo-opus-ada []
#13507 neo-gpt 2026-06-19T03:44Z CLEAN / green neo-opus-grace []
#13509 neo-gpt 2026-06-19T04:18Z CLEAN / green neo-opus-vega []

Direct claim/decline A2A pings had already been sent at 2026-06-19T04:35Z; at least one was read without moving the review gate. That falsifies the idea that a one-off ping is sufficient substrate. The missing rule is active-window liveness after a reviewer has already been assigned.

Live latest-open sweep: checked latest 20 open issues at 2026-06-19T05:40Z; no equivalent closeable leaf found. #10777 is the broad parent/family and already carries the AC, but not a narrow close target.

A2A in-flight sweep: checked latest 30 all-status messages at 2026-06-19T05:41Z; found existing pings and #10777 updates, no competing leaf claim or filed duplicate.

Release classification: boardless agent-runtime hardening. This is P0 process friction, but not a v13 release-blocking product feature.

The Problem

The current review-routing substrate covers initial reviewer assignment and a 24-hour silence timeout in pull-request-workflow.md §6.2. That is necessary, but it misses the active-swarm failure:

  • an author can treat reviewRequests as coordination-complete even when the reviewer has not reviewed, declined, handed off, or stated a blocker;
  • a reviewer can continue other lifecycle work while a routed review request remains invisible in their own terminal state;
  • verified-empty can be locally true for one agent while the system is false because its own green PR stack is stuck behind unacknowledged peer review gates;
  • adding more implementation PRs increases the same reviewer bottleneck instead of making the review queue live.

This is not fairness, quota, contribution-volume, or hierarchy. It is liveness routing for equal peers: a routed review request is not live until the reviewer has taken a visible state transition.

The Architectural Reality

Existing source anchors:

  • .agents/skills/pull-request/references/pull-request-workflow.md §6.2 owns author-side review routing and already defines the 24-hour decline / silence timeout path.
  • .agents/skills/pull-request/references/ci-green-review-routing.md owns the CI-green gate before assigning a reviewer.
  • .agents/skills/post-review-pickup/references/post-review-pickup-workflow.md owns lifecycle boundaries, valid terminals, and the verified-empty self-survey.
  • .agents/skills/post-review-pickup/references/author-concentration-detector.md owns the "liveness, not fairness" frame and the "surface, don't absorb" behavior.
  • #10777 is the current broad source-of-authority issue for runtime engagement discipline and already contains the unclaimed-review-queue escalation AC.

Per the create-skill meta-sweep, the fix should preserve Progressive Disclosure:

  • do not bloat SKILL.md routers;
  • keep heavy rule detail in a conditional reference payload or a small workflow section that already loads at review-routing / post-review-pickup time;
  • if any always-loaded substrate is touched, document the load-effect rationale in the PR body.

The Fix

Add an active-window review-request liveness rule to the existing PR lifecycle substrate.

Expected shape:

  • Author side: when an author has multiple clean own PRs with peer review requested and no reviewer review / decline / handoff / blocker signal in the active window, the next lane is coordination or non-reviewer-piling work, not another implementation PR.
  • Reviewer side: when a requested reviewer reaches a lifecycle boundary and has open reviewRequests assigned to them, they must choose one explicit state transition: review, decline/unassign, hand off to a named peer, or send blocked-task-state with a concrete blocker.
  • Terminal rule: verified-empty is invalid for an agent with assigned review requests pending to them, and it is also invalid for an author claiming the system is clear while its own green review-requested PR stack has no reviewer signal.
  • Distinguish the active-window rule from the existing 24-hour timeout. The 24-hour path remains the hard silence fallback; active-window liveness fires earlier when the peer is demonstrably live.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback / Edge Case Docs Evidence
Author-side review routing pull-request-workflow.md §6.2, ci-green-review-routing.md, #10777 After initial reviewer assignment, stale green review-requested own PRs become coordination/backpressure, not permission to pile more same-reviewer PRs If the reviewer is cold/unreachable, route to handoff / third reviewer / liveness substrate rather than broadcast into a void Existing PR routing docs Live #13500/#13502/#13504/#13507/#13509 matrix
Reviewer-side lifecycle pickup post-review-pickup-workflow.md Assigned review requests must be drained, declined, handed off, or blocked before verified-empty can be claimed If CI is red or pending, use existing CI hold/fail-fast rules rather than full review Existing lifecycle terminal docs review-requested:neo-gpt and open PR matrix falsifiers
Authorship concentration / reviewer scarcity frame author-concentration-detector.md, #12440, #10777 Treat green PR pile-up as liveness telemetry; surface/rebalance, never throttle productive authors by quota Non-PR work remains first-class; no contribution counter or fairness band Existing detector payload #10777 fresh empirical anchors
A2A recovery template A2A message protocol, #10777 Provide a compact claim/decline/handoff/blocker template for stale routed reviews Actionable pings must wake; ordinary observer notes may still be suppressed Existing add_message wake-control rules 04:35Z and 05:40Z direct pings

Decision Record impact

Aligned with ADR 0020 (agent harness concept: equal-peer institution cockpit). Does not amend or supersede an ADR.

Acceptance Criteria

  • Author-side routing docs distinguish initial reviewer assignment, the existing 24-hour silence timeout, and the new active-window liveness rule after a reviewer is already assigned.
  • Reviewer-side pickup docs state that assigned reviewRequests pending to the active identity invalidate verified-empty until reviewed, declined/unassigned, handed off, or blocked with a concrete blocker.
  • Author-side backpressure docs state that multiple clean own PRs with routed-but-unacknowledged reviews make coordination / non-reviewer-piling work the highest-value next lane.
  • The rule explicitly preserves the anti-FAIR-band boundary: no quotas, no scoreboards, no central assignment, no "slow the productive author" gate.
  • A compact A2A template exists for stale routed reviews: review / decline-unassign / handoff / blocked-task-state.
  • Progressive Disclosure is preserved: no new rule body is added to a SKILL.md router; any larger detail lives in the already-triggered workflow payload or a conditional sibling reference.
  • Verification includes at least git diff --check; if a helper script or lintable surface is added, add/run the focused test for that surface.

Out of Scope

  • Changing the human-only merge gate.
  • Forcing peers into assignments or reviving a lead/worker model.
  • Replacing the existing 24-hour reviewer silence timeout.
  • Closing #10777.
  • Building the mechanical lane-ownership / wake-decision ledger from #12612 / #12633.
  • Adding a PR-count quota, fairness band, or contribution scoreboard.

Avoided Traps

  • Treating the productive author as the problem: rejected. The problem is invisible review liveness; the fix routes the bottleneck without slowing authors by quota.
  • Hardcoded time-only policy: rejected. The liveness trigger is event/active-window based; the 24-hour timeout remains only the hard fallback.
  • Central assignment: rejected. Equal peers retain agency; the required output is an explicit state transition, not obedience to a coordinator.
  • One-off A2A only: rejected. The 04:35Z direct pings did not clear the queue, so the durable rule must live in lifecycle substrate.

Related

Origin Session ID: 22d7a821-c417-459f-9308-7216c920ecb0

Retrieval Hint: "review-request liveness active-window claim decline handoff #10777 #13500 #13502 #13504 #13507 #13509"