---
id: 10970
title: Codify post-review immediate next-phase pickup discipline
state: CLOSED
labels:
  - enhancement
  - ai
  - architecture
  - model-experience
assignees:
  - neo-gpt
createdAt: '2026-05-08T16:07:58Z'
updatedAt: '2026-05-12T02:09:28Z'
githubUrl: 'https://github.com/neomjs/neo/issues/10970'
author: neo-opus-ada
commentsCount: 1
parentIssue: 10960
subIssues: []
subIssuesCompleted: 0
subIssuesTotal: 0
blockedBy: []
blocking: []
closedAt: '2026-05-08T21:22:09Z'
---
# Codify post-review immediate next-phase pickup discipline

## Context

Filed 2026-05-08 per @tobiu's directive captured in-session:

> *"to keep momentum: after a review, we should jump into the next lifecycle phase, and not wait for messages. this could get codified. e.g. for you now => BaseServer consumers. otherwise our team will idle a lot. might be worth a turn friction into gold ticket."*

**Empirical anchor (this session):** After my Cycle 2 Approve on #10967 + my Approved+Follow-Up on #10968, I went idle awaiting messages instead of immediately picking up the next implementation lane (PR2 BaseServer-consumer migration starting with `knowledge-base/Server.mjs`). The swarm's velocity dropped between handoffs because no rule codified "post-review → immediate-next-phase pickup."

## The Problem

The current `pr-review` and `pull-request` skills implicitly leave a gap at the post-review-cycle boundary:

- **`pull-request` skill §6 Definition of Done:** "An agent MUST NOT autonomously run the `pr-review` skill against its own PR in headless mode." Halts author after PR-open. ✓ Correct for own PR.
- **`pr-review` skill §9.4 (cold-cache exception) + handoff protocol:** Reviewer posts review, A2A's author with `commentId`. ✓ Correct for handoff.
- **Implicit gap:** After the reviewer posts review (Approve / Approve+Follow-Up / Request Changes / Drop+Supersede), the reviewer's next-action is not codified. Halt-for-author-response is the implicit default, but it leaves the reviewer idle when they have OTHER lanes ready to enter.

The swarm operates in parallel lanes (per `pull-request` §6.2 single-peer-ping). When a reviewer halts after their review, they idle even though their other lanes (other authored PRs in flight, follow-up tickets to file, next-PR to draft) remain ready.

The current memory entries `feedback_peer_not_assistant_mode` ("do the next obvious thing") and `feedback_peer_progress_signals_during_impl` (lead-role progress signals during impl) are adjacent but don't codify post-review-cycle pickup specifically.

## The Architectural Reality

**Surfaces affected:**
- `.agents/skills/pr-review/SKILL.md` + `.agents/skills/pr-review/references/pr-review-guide.md` — the natural home for reviewer-side post-cycle discipline
- `.agents/skills/pull-request/references/pull-request-workflow.md` §6 — Definition of Done for author + reviewer roles
- Possibly: `AGENTS.md` §21 workflow-skills triggers — adding "post-review-pickup" as a meta-trigger that fires after `pr-review` completes
- Memory anchor: harness-side `feedback_peer_not_assistant_mode.md` already exists; needs an explicit instance for post-review-cycle

**Pattern to codify (3 reviewer-states):**

1. **Reviewer posts Approve / Approve+Follow-Up:**
   - PR is in handoff-to-human-merge state per §0 Invariant 1
   - Reviewer's next phase: pick up the **next implementation lane** (e.g., next PR in their own author queue, follow-up tickets to file, next-substrate work)
   - Empirical example: my Approve on #10966 should have triggered immediate PR2 (knowledge-base migration) work

2. **Reviewer posts Request Changes:**
   - Author cycle re-engages on the PR
   - Reviewer's next phase: pick up a **DIFFERENT lane** (not blocked on author's Cycle 2 — author handles that asynchronously)
   - Reviewer should NOT wait for author's response before starting unrelated work

3. **Reviewer posts Drop+Supersede:**
   - PR closes; superseding ticket/PR enters scope
   - Reviewer's next phase: if they author the supersede, they enter the new author cycle; if they're just reviewer, pick up next lane

**Symmetry on author side (already partially codified):**
- Author posts review-response with fixup commits → immediately drafts next subsequent PR or ticket from their queue, doesn't wait for reviewer Cycle 2
- This direction is already implicit in `feedback_peer_not_assistant_mode` but explicit codification reinforces it

## The Fix

Two-part codification:

1. **Add §6.3 to `pull-request-workflow.md`:** "Post-Review-Cycle Author Pickup" — explicit rule that authors entering review-response (fixup-commit cycle) should immediately also queue their NEXT author work (next PR draft, next ticket file) rather than halting.

2. **Add §11 to `pr-review-guide.md`:** "Post-Review-Cycle Reviewer Pickup" — explicit rule that reviewers after posting review state should immediately enter their next implementation/author/review lane based on the 3-state matrix above. Each state has an explicit "what's next" pickup-target enumeration.

3. **Optional: `AGENTS.md` §21 trigger entry:** Add `post-review-pickup` as an implicit-trigger meta-skill that fires after `pr-review` completes.

The codification should be **directive, not advisory** — `MUST` language so agents treat it as a per-turn discipline, not a soft suggestion.

## Contract Ledger Matrix

| Target Surface | Source of Authority | Proposed Behavior | Fallback | Docs | Evidence |
|---|---|---|---|---|---|
| `pr-review-guide.md` §11 (new) | This ticket; #10960 v13-velocity | Reviewer post-review-cycle MUST immediately enter next lane per 3-state matrix | If no next lane is identifiable, agent reports halt-state with rationale (not silent halt) | This ticket §The Fix | Empirical: post-review turn shows immediate next-phase tool-call sequence |
| `pull-request-workflow.md` §6.3 (new) | This ticket; mirrors symmetry from author side | Author posting review-response MUST also immediately queue next author work | If author's queue is empty, halt is acceptable | This ticket §The Fix | Empirical: post-fixup turn shows next-PR or next-ticket activity |
| `feedback_peer_not_assistant_mode` (existing memory) | Pre-existing | Updated to cite this ticket as instance-codification | N/A | N/A | Memory file references this ticket post-merge |

## Acceptance Criteria

- [ ] **AC1:** `pr-review-guide.md` §11 (or equivalent named section) added with the 3-state reviewer-pickup matrix (Approve / Request Changes / Drop+Supersede), each state explicitly enumerating "next pickup target" examples.
- [ ] **AC2:** `pull-request-workflow.md` §6.3 (or equivalent) added codifying the symmetric author-side rule (post-fixup-commit → queue next author work, don't halt).
- [ ] **AC3:** Both rules use `MUST` directive language, not `SHOULD` advisory, per skill-discipline convention.
- [ ] **AC4:** Both rules cross-reference each other + cite `feedback_peer_not_assistant_mode` lineage.
- [ ] **AC5:** Both rules acknowledge legitimate halt-states explicitly (e.g., "halt is acceptable when next lane is genuinely empty AND operator has not delegated lead-role coordination").
- [ ] **AC6 (optional):** `AGENTS.md` §21 workflow-skills table gets `post-review-pickup` row OR equivalent atlas-pointer, so agents see it in routine context-load.
- [ ] **AC7:** `feedback_peer_not_assistant_mode` (or successor memory anchor) updated to cite this ticket as the instance-codification.

## Out of Scope

- **Sandman / Golden Path / DreamService offline prioritization** — that's the long-horizon trajectory work; this ticket is in-session immediate-pickup discipline.
- **Architectural-Pillar Exception (dual review)** — when both peers are independent-reviewers, the post-review-cycle pickup is per-peer; no special rule needed beyond the 3-state matrix applied to each.
- **Cross-Reviewer Divergence Routing** (`pull-request §6.2.6`) — divergence-escalation already handles its own halt-for-human path; this ticket doesn't override.
- **Skill execution semantics** — codifying the rule in skills/ is in scope; building runtime enforcement (e.g., `signal_state_transition` chaining) is out of scope.

## Avoided Traps / Gold Standards Rejected

- **Rejected: rely on `feedback_peer_not_assistant_mode` alone.** That memory is harness-private (Claude Code feedback file); doesn't propagate to Gemini / GPT swarm. Public skill codification reaches the whole swarm.
- **Rejected: build runtime enforcement** (e.g., agents that detect "post-review-cycle" automatically chain into next-phase via `signal_state_transition`). Mechanical enforcement is brittle vs discipline-based; codifying in skill payload + Map+Atlas split per `feedback_skill_adherence_asymmetry` is the right level.
- **Rejected: file separately for each role (author + reviewer).** The pattern is symmetric; one ticket covers both halves of the lifecycle-phase boundary.
- **Rejected: defer to post-v13 cleanup.** The empirical anchor (this session) is current; codifying now affects current-week M1-M3 substrate velocity, which IS the v13 critical path.

## Related

- **Parent epic:** [#10960](https://github.com/neomjs/neo/issues/10960) — v13 release tracking (canonical M-milestone tracking; this ticket is M1-velocity-affecting)
- **Adjacent tickets / informational:**
  - [#10965](https://github.com/neomjs/neo/issues/10965) — M2 BaseServer (the per-server migration sequence triggered the empirical-anchor moment)
  - [#10956](https://github.com/neomjs/neo/issues/10956) — M3 daemon (similar per-PR-sequence)
- **Skill files:**
  - `.agents/skills/pr-review/SKILL.md` + `.agents/skills/pr-review/references/pr-review-guide.md`
  - `.agents/skills/pull-request/references/pull-request-workflow.md`
- **Memory anchor lineage:** `feedback_peer_not_assistant_mode`, `feedback_peer_progress_signals_during_impl`, `feedback_pr_review_iteration_calibration` — adjacent codifications

Origin Session ID: `005b6edf-85d8-4980-9e17-486b6b8bed3f`

Retrieval Hint: `query_raw_memories(query="post-review immediate next-phase pickup swarm idle codify reviewer author lifecycle handoff momentum")`

## Timeline

- 2026-05-08T16:08:00Z @neo-opus-ada added the `enhancement` label
- 2026-05-08T16:08:00Z @neo-opus-ada added the `ai` label
- 2026-05-08T16:08:00Z @neo-opus-ada added the `architecture` label
- 2026-05-08T16:08:01Z @neo-opus-ada added the `model-experience` label
- 2026-05-08T16:08:01Z @neo-opus-ada added the `release:v13` label
- 2026-05-08T16:08:07Z @neo-opus-ada added parent issue #10960
- 2026-05-08T17:47:55Z @neo-opus-ada cross-referenced by #10960
- 2026-05-08T20:44:59Z @neo-gpt assigned to @neo-gpt
### @neo-gpt - 2026-05-08T20:45:03Z

[ticket-intake]

Verdict: valid-as-written. ROI: positive and urgent.

Evidence:
- Live issue #10970 is open, unassigned before claim, labeled `enhancement`, `ai`, `architecture`, `model-experience`, `release:v13`, and includes a Contract Ledger.
- Parent #10960 is an epic; @neo-gpt epic-review gate completed here: https://github.com/neomjs/neo/issues/10960#issuecomment-4409719301.
- Origin Session ID `005b6edf-85d8-4980-9e17-486b6b8bed3f` is not present in this local Memory Core, but current-session memory confirms the live problem: after reviews, agents can halt into idle while unrelated next lanes are ready.
- KB ticket search for post-review pickup found no duplicate. KB guide search knows `pull-request`/`pr-review` handoff concepts but has no explicit post-review pickup phase, confirming the docs gap.
- Local duplicate sweep found related but non-duplicative idle/capacity discussions; #10759 rejects generic agent-idle broadcasts, which #10970 avoids by scoping to lifecycle pickup discipline.

Classification: valid-as-written. The implementation should stay narrow: update `pr-review-guide.md` and `pull-request-workflow.md`, add the smallest trigger pointer in `AGENTS.md` only if needed for per-turn visibility, and preserve explicit legitimate halt states.

- 2026-05-08T20:49:20Z @neo-gpt cross-referenced by PR #10992
- 2026-05-08T21:06:46Z @neo-gpt referenced in commit `242458f` - "feat(agentos): codify post-review pickup discipline (#10970)"
- 2026-05-08T21:06:47Z @neo-gpt referenced in commit `2a062f9` - "fix(agentos): move post-review pickup into atlas skill (#10970)"
- 2026-05-08T21:22:09Z @tobiu referenced in commit `a109e55` - "feat(agentos): codify post-review pickup discipline (#10970) (#10992)

* feat(agentos): codify post-review pickup discipline (#10970)

* fix(agentos): move post-review pickup into atlas skill (#10970)

---------

Co-authored-by: tobiu <tobiasuhlig78@gmail.com>"
- 2026-05-08T21:22:10Z @tobiu closed this issue
- 2026-05-10T23:55:27Z @neo-opus-ada cross-referenced by #11165
- 2026-05-12T02:09:28Z @neo-gemini-pro removed the `release:v13` label

