---
id: 11455
title: 'Expand post-review-pickup trigger surface (Discussion #11423 Phase B Option B.1-prime)'
state: CLOSED
labels:
  - enhancement
  - ai
  - architecture
assignees:
  - neo-opus-ada
createdAt: '2026-05-16T12:51:10Z'
updatedAt: '2026-05-19T02:34:03Z'
githubUrl: 'https://github.com/neomjs/neo/issues/11455'
author: neo-gemini-pro
commentsCount: 0
parentIssue: null
subIssues: []
subIssuesCompleted: 0
subIssuesTotal: 0
blockedBy: []
blocking: []
closedAt: '2026-05-19T02:34:03Z'
---
# Expand post-review-pickup trigger surface (Discussion #11423 Phase B Option B.1-prime)

**Context**
Discussion #11423 ideated a mechanism to eliminate the "Helpful Assistant" deference-slip that agents exhibit when transitioning into an idle/blocked state (such as waiting for a peer review or finishing an implementation). 

**The Problem**
Agents default to their underlying RLHF conditioning at turn boundaries ("Would you like me to...", "What should I do next?") when a local task finishes, violating the Flat Peer-Team constraint (AGENTS.md §15.6). Descriptive L1 anchor text is too weak against this conditioning.

**The Architectural Reality**
Option B.1-prime was unconditionally `[GRADUATION_APPROVED]` cross-family. Instead of creating a new `state-transition` skill (which causes sprawl) or bloating `AGENTS.md` §0 with universal hard gates, we will expand the `post-review-pickup` skill's trigger surface to encompass other post-lifecycle-event transitions. This leverages the Phase B Description-Router hardening (PR #11424) to keep the L1 anchor lean.

**The Fix**
- Extend `post-review-pickup-workflow.md` description and payload to encompass broader lifecycle transitions.
- Add a highly compact AGENTS.md §21 trigger pointer.
- Update `SKILL.md` description to explicitly surface the broader trigger language to the description-router.
- Explicitly protect `blocked-task-state` for strictly negative paths.

**Discussion Criteria Mapping**
Maps directly to the Option B.1-prime `[RESOLVED_TO_AC]` criteria established in Discussion #11423.

**Acceptance Criteria**
- [ ] Extend `.agents/skills/post-review-pickup/references/post-review-pickup-workflow.md` description/payload to cover:
  - Post-review handoff (existing)
  - Post-author-response handoff (existing)
  - Post-implementation completion (new)
  - Post-PR-open/update lifecycle event (new)
  - Post-ticket-create lifecycle event (new)
  - Post-blocked-state-resolution (new — reuses `blocked-task-state` exit signal)
- [ ] Add explicit AC rule in the payload: at each broadened lifecycle boundary, agent MUST emit a `lane-state:` declaration (positive next-lane OR halt with survey evidence).
- [ ] Add compact AGENTS.md §21 trigger pointer (1-line max; per ADR 0008 Map-vs-Atlas).
- [ ] Update `.agents/skills/post-review-pickup/SKILL.md` description to surface the broader trigger language.
- [ ] Preserve `blocked-task-state` scope for negative paths only.

**Out of Scope**
- Creating a new generic state-transition skill.
- Adding universal `AGENTS.md` hard gates for state transitions.

**Related**
- Graduates Discussion #11423
- Leverages PR #11424

**Origin Session ID**
`188acb85-b41e-435c-94ee-0cc9944d4c97`

## Timeline

- 2026-05-16T12:51:11Z @neo-gemini-pro added the `enhancement` label
- 2026-05-16T12:51:11Z @neo-gemini-pro added the `ai` label
- 2026-05-16T12:51:11Z @neo-gemini-pro added the `architecture` label
- 2026-05-16T13:55:15Z @neo-gemini-pro assigned to @neo-gemini-pro
- 2026-05-18T23:53:47Z @tobiu unassigned from @neo-gemini-pro
- 2026-05-19T00:06:04Z @neo-opus-ada assigned to @neo-opus-ada
- 2026-05-19T00:11:33Z @neo-opus-ada cross-referenced by PR #11612
- 2026-05-19T00:40:34Z @neo-opus-ada referenced in commit `3384794` - "fix(skills): sync skill-manifest description + downstream docs for post-review-pickup expansion (#11455)

CI lint-skill-manifest caught 3 sync issues post-#11455 SKILL.md description expansion:

1. `.agents/skills/skills.manifest.json` post-review-pickup entry description now matches SKILL.md frontmatter (manifest is the canonical surface for description-router byte budget enforcement)
2. `learn/agentos/ProgressiveDisclosureSkills.md` Skill Inventory: added `post-review-pickup` Coordination row (was previously missing from inventory entirely — pre-existing gap surfaced by manifest's downstreamDocsTarget enforcement)
3. `learn/guides/fundamentals/CodebaseOverview.md` Coordination skills bullet: added `post-review-pickup` (same pre-existing gap)

Both downstream docs previously had no post-review-pickup mention despite the manifest claiming them as targets. This commit closes the substrate-correctness gap.

Bonus cleanup: stripped 19 pre-existing trailing-whitespace lines in ProgressiveDisclosureSkills.md + 4 in CodebaseOverview.md (caught by pre-commit hook on staged files).

Gates: lint-skill-manifest OK / check-whitespace PASS."
- 2026-05-19T01:25:44Z @neo-opus-ada referenced in commit `d6b71a3` - "feat(skills): expand post-review-pickup trigger surface to all lifecycle events (#11455)

Graduates Discussion #11423 Option B.1-prime (unconditionally [GRADUATION_APPROVED] cross-family). Instead of creating a new state-transition skill (sprawl) or bloating AGENTS.md §0 with universal hard gates, expand the post-review-pickup skill's trigger surface to encompass other post-lifecycle-event transitions. Leverages PR #11424 Description-Router hardening.

Expanded description to surface broader trigger language to the description-router. Triggers now cover:
- Post-PR-review post + GitHub review state chain
- Author review-response commentId handoff (existing)
- Post-implementation completion (new)
- Post-PR-open/update lifecycle event (new)
- Post-ticket-create via create_issue (new)
- Post-blocked-task-state resolution (new — positive-path exit only)

Body language expanded to match: "ANY lifecycle event that closes a discrete unit of work."

§1 Trigger: expanded from 2 → 6 trigger events (reviewer post / author post / post-impl / post-PR-open-update / post-ticket-create / post-blocked-resolution). Each documented with the lifecycle-boundary semantics + the "do not silently idle" mandate.

Added §2.5 Mandatory `lane-state:` Declaration at Every Lifecycle Boundary — per AC, at EACH broadened boundary, agent MUST emit explicit `lane-state:` declaration before ending turn. Valid declarations enumerated (next-lane / human-gate / halt-state with backlog-survey evidence). Silent idle without declaration is named as deference-slip per AGENTS.md §15.6 + §15.5.

`blocked-task-state` scope preservation: explicit clarification that this skill covers EXIT from blocked state (positive-path-restoration); entry INTO blocked state remains `blocked-task-state` substrate-domain (negative-path-entry). Two are complementary, not overlapping.

Added single-line trigger pointer to `/post-review-pickup` in §21 area (next to Lead-role baton intake subsection). Map-vs-Atlas compliant per ADR 0008 — trigger pointer in Map, full payload in skill substrate.

AGENTS.md size: 21,106 → ~21,250 bytes (estimated; well under 24,576 cap).
SKILL.md: refined description for description-router visibility.
Workflow payload: +49 lines (broader trigger documentation + §2.5 lane-state declaration AC).

Out of scope (explicit per #11455 AC):
- No new generic state-transition skill (would cause sprawl)
- No universal AGENTS.md hard gates for state transitions (would cause bloat per §0)
- `blocked-task-state` scope preserved for negative-path-only

Gates: lint-agents OK / size PASS / whitespace PASS / git --check PASS."
- 2026-05-19T01:25:45Z @neo-opus-ada referenced in commit `48df22d` - "fix(skills): sync skill-manifest description + downstream docs for post-review-pickup expansion (#11455)

CI lint-skill-manifest caught 3 sync issues post-#11455 SKILL.md description expansion:

1. `.agents/skills/skills.manifest.json` post-review-pickup entry description now matches SKILL.md frontmatter (manifest is the canonical surface for description-router byte budget enforcement)
2. `learn/agentos/ProgressiveDisclosureSkills.md` Skill Inventory: added `post-review-pickup` Coordination row (was previously missing from inventory entirely — pre-existing gap surfaced by manifest's downstreamDocsTarget enforcement)
3. `learn/guides/fundamentals/CodebaseOverview.md` Coordination skills bullet: added `post-review-pickup` (same pre-existing gap)

Both downstream docs previously had no post-review-pickup mention despite the manifest claiming them as targets. This commit closes the substrate-correctness gap.

Bonus cleanup: stripped 19 pre-existing trailing-whitespace lines in ProgressiveDisclosureSkills.md + 4 in CodebaseOverview.md (caught by pre-commit hook on staged files).

Gates: lint-skill-manifest OK / check-whitespace PASS."
- 2026-05-19T02:34:03Z @tobiu referenced in commit `a27e28b` - "feat(skills): expand post-review-pickup trigger surface to all lifecycle events (#11455) (#11612)

* feat(skills): expand post-review-pickup trigger surface to all lifecycle events (#11455)

Graduates Discussion #11423 Option B.1-prime (unconditionally [GRADUATION_APPROVED] cross-family). Instead of creating a new state-transition skill (sprawl) or bloating AGENTS.md §0 with universal hard gates, expand the post-review-pickup skill's trigger surface to encompass other post-lifecycle-event transitions. Leverages PR #11424 Description-Router hardening.

Expanded description to surface broader trigger language to the description-router. Triggers now cover:
- Post-PR-review post + GitHub review state chain
- Author review-response commentId handoff (existing)
- Post-implementation completion (new)
- Post-PR-open/update lifecycle event (new)
- Post-ticket-create via create_issue (new)
- Post-blocked-task-state resolution (new — positive-path exit only)

Body language expanded to match: "ANY lifecycle event that closes a discrete unit of work."

§1 Trigger: expanded from 2 → 6 trigger events (reviewer post / author post / post-impl / post-PR-open-update / post-ticket-create / post-blocked-resolution). Each documented with the lifecycle-boundary semantics + the "do not silently idle" mandate.

Added §2.5 Mandatory `lane-state:` Declaration at Every Lifecycle Boundary — per AC, at EACH broadened boundary, agent MUST emit explicit `lane-state:` declaration before ending turn. Valid declarations enumerated (next-lane / human-gate / halt-state with backlog-survey evidence). Silent idle without declaration is named as deference-slip per AGENTS.md §15.6 + §15.5.

`blocked-task-state` scope preservation: explicit clarification that this skill covers EXIT from blocked state (positive-path-restoration); entry INTO blocked state remains `blocked-task-state` substrate-domain (negative-path-entry). Two are complementary, not overlapping.

Added single-line trigger pointer to `/post-review-pickup` in §21 area (next to Lead-role baton intake subsection). Map-vs-Atlas compliant per ADR 0008 — trigger pointer in Map, full payload in skill substrate.

AGENTS.md size: 21,106 → ~21,250 bytes (estimated; well under 24,576 cap).
SKILL.md: refined description for description-router visibility.
Workflow payload: +49 lines (broader trigger documentation + §2.5 lane-state declaration AC).

Out of scope (explicit per #11455 AC):
- No new generic state-transition skill (would cause sprawl)
- No universal AGENTS.md hard gates for state transitions (would cause bloat per §0)
- `blocked-task-state` scope preserved for negative-path-only

Gates: lint-agents OK / size PASS / whitespace PASS / git --check PASS.

* fix(skills): sync skill-manifest description + downstream docs for post-review-pickup expansion (#11455)

CI lint-skill-manifest caught 3 sync issues post-#11455 SKILL.md description expansion:

1. `.agents/skills/skills.manifest.json` post-review-pickup entry description now matches SKILL.md frontmatter (manifest is the canonical surface for description-router byte budget enforcement)
2. `learn/agentos/ProgressiveDisclosureSkills.md` Skill Inventory: added `post-review-pickup` Coordination row (was previously missing from inventory entirely — pre-existing gap surfaced by manifest's downstreamDocsTarget enforcement)
3. `learn/guides/fundamentals/CodebaseOverview.md` Coordination skills bullet: added `post-review-pickup` (same pre-existing gap)

Both downstream docs previously had no post-review-pickup mention despite the manifest claiming them as targets. This commit closes the substrate-correctness gap.

Bonus cleanup: stripped 19 pre-existing trailing-whitespace lines in ProgressiveDisclosureSkills.md + 4 in CodebaseOverview.md (caught by pre-commit hook on staged files).

Gates: lint-skill-manifest OK / check-whitespace PASS."
- 2026-05-19T02:34:03Z @tobiu closed this issue

