Context
Operator-directed swarm handoff on 2026-06-12: the epic-review substrate must cap structured epic-review comments at two reviews per epic at the very most. The current workflow says the opposite: it keeps per-agent-per-epic one-shot semantics but explicitly encourages independent cross-model reviews and says not to deduplicate.
Release classification: post-release (agent-governance / model-experience substrate cleanup; not a v13.x release blocker).
The Problem
epic-review was designed to prevent one identity from posting repeated full epic reviews on every sub pickup. That solves same-agent repetition but not cross-agent pile-up: as more maintainers and same-family sibling identities join, the current text can turn one epic into a review stack instead of a bounded architectural readback.
The operator correction changes the invariant: cross-model asymmetry remains valuable, but the artifact count must be bounded. After two structured epic-review comments exist on an epic, further agents should cite the existing reviews and proceed with sub-level intake or targeted A2A only when they have a unique blocker/correction. A third full epic-review comment is now wrong-shape substrate noise.
The Architectural Reality
.agents/skills/epic-review/SKILL.md is a lightweight router; per /create-skill, it should not absorb rule body.
.agents/skills/epic-review/references/epic-review-workflow.md owns the heavy workflow semantics and currently contains the conflicting rule:
- line 14: per-agent-per-epic one-shot semantics.
- line 16: different model identities reviewing the same epic independently is encouraged; two identities means two comments; do not deduplicate.
- line 171+: subsequent same-identity pickups cite the prior review.
- line 207: cross-model epic-review is framed as independent complementary value.
/turn-memory-pre-flight classifies .agents/skills/** changes as skill-loaded memory substrate; the correct placement is the conditional workflow payload, not always-loaded global substrate.
The Fix
Update .agents/skills/epic-review/references/epic-review-workflow.md so the workflow enforces a global cap:
- Before posting an epic-review comment, count existing structured epic-review comments on the epic.
- If the count is
0, the first review is allowed.
- If the count is
1, one additional review may be posted, preserving cross-model/asymmetry value.
- If the count is
>= 2, do not post a third structured epic-review. Cite existing review URLs during sub pickup and use a targeted A2A or narrow issue/PR comment only for a material blocker/correction.
- Preserve per-agent one-shot semantics inside the global cap: the same identity still cites its prior review rather than re-running.
- Keep the top-level
SKILL.md router unchanged unless a one-line trigger pointer is strictly needed.
Contract Ledger Matrix
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback / Edge Case |
Docs |
Evidence |
.agents/skills/epic-review/references/epic-review-workflow.md entry semantics |
Operator-directed 2026-06-12 handoff + current workflow conflict |
Max two structured epic-review comments per epic across identities |
If two already exist, cite existing reviews and stand down from a third full artifact |
Yes, workflow payload |
rg verifies old rule replaced; no Do not attempt deduplication contradiction remains |
| Same-identity repeated sub pickup behavior |
Existing per-agent one-shot rule |
Same identity still cites its prior epic-review URL |
If same identity has no prior review but cap is full, cite the two existing capped reviews instead |
Yes |
Workflow text includes both same-identity and cap-full cases |
| Cross-model asymmetry section |
Existing epic-review §8 value statement |
Preserve asymmetry value while bounding artifact count |
Additional disagreement after cap routes to targeted comment/A2A, not a third full review |
Yes |
Workflow text explicitly separates review artifact cap from blocker/correction routing |
Existing-Enforcement Sufficiency Audit
Current enforcement is insufficient. The workflow has no total-review cap and positively encourages cross-model independent comments without deduplication. No mechanical hook or lint currently prevents a third epic-review comment. The minimum sufficient fix for this ticket is therefore the skill workflow rule; mechanical enforcement is out of scope unless recurrence proves it earns a tool-level guard.
Decision Record impact
aligned-with ADR 0008 (skill anatomy / Map-vs-Atlas): this is a payload-level workflow correction for an existing skill, not a new always-loaded rule or ADR amendment.
Acceptance Criteria
Out of Scope
- Retroactively deleting or editing prior epic-review comments.
- Building a GitHub bot/hook to mechanically enforce the cap.
- Changing
epic-resolution semantics.
- Reducing PR review cross-family requirements; this ticket is only about epic-review comments on epic issues.
Avoided Traps
- Deduplicating all cross-model value away: rejected. The first two reviews preserve asymmetry; the cap prevents pile-up.
- Putting the rule in
AGENTS.md: rejected. This is workflow-specific substrate and belongs in the skill payload.
- Treating every later concern as forbidden: rejected. Cap-full agents can still surface unique blockers or corrections, just not as a third full epic-review artifact.
Related
- Skill surface:
.agents/skills/epic-review/
- Process references:
/create-skill, /turn-memory-pre-flight, ADR 0008.
Live latest-open sweep: checked latest 20 open issues at 2026-06-12T21:03Z; no equivalent cap ticket found. A2A in-flight sweep: recent mailbox contained the operator-directed cap handoff and no competing cap claim.
Origin Session ID: 518c54ce-5871-4ccf-8e88-6ac3b6e16ea8
Retrieval Hint: "epic-review two review cap per epic cross-model dedup operator-directed"
Context
Operator-directed swarm handoff on 2026-06-12: the
epic-reviewsubstrate must cap structured epic-review comments at two reviews per epic at the very most. The current workflow says the opposite: it keeps per-agent-per-epic one-shot semantics but explicitly encourages independent cross-model reviews and says not to deduplicate.Release classification:post-release (agent-governance / model-experience substrate cleanup; not a v13.x release blocker).The Problem
epic-reviewwas designed to prevent one identity from posting repeated full epic reviews on every sub pickup. That solves same-agent repetition but not cross-agent pile-up: as more maintainers and same-family sibling identities join, the current text can turn one epic into a review stack instead of a bounded architectural readback.The operator correction changes the invariant: cross-model asymmetry remains valuable, but the artifact count must be bounded. After two structured epic-review comments exist on an epic, further agents should cite the existing reviews and proceed with sub-level intake or targeted A2A only when they have a unique blocker/correction. A third full epic-review comment is now wrong-shape substrate noise.
The Architectural Reality
.agents/skills/epic-review/SKILL.mdis a lightweight router; per/create-skill, it should not absorb rule body..agents/skills/epic-review/references/epic-review-workflow.mdowns the heavy workflow semantics and currently contains the conflicting rule:/turn-memory-pre-flightclassifies.agents/skills/**changes as skill-loaded memory substrate; the correct placement is the conditional workflow payload, not always-loaded global substrate.The Fix
Update
.agents/skills/epic-review/references/epic-review-workflow.mdso the workflow enforces a global cap:0, the first review is allowed.1, one additional review may be posted, preserving cross-model/asymmetry value.>= 2, do not post a third structured epic-review. Cite existing review URLs during sub pickup and use a targeted A2A or narrow issue/PR comment only for a material blocker/correction.SKILL.mdrouter unchanged unless a one-line trigger pointer is strictly needed.Contract Ledger Matrix
.agents/skills/epic-review/references/epic-review-workflow.mdentry semanticsrgverifies old rule replaced; noDo not attempt deduplicationcontradiction remainsepic-review§8 value statementExisting-Enforcement Sufficiency Audit
Current enforcement is insufficient. The workflow has no total-review cap and positively encourages cross-model independent comments without deduplication. No mechanical hook or lint currently prevents a third epic-review comment. The minimum sufficient fix for this ticket is therefore the skill workflow rule; mechanical enforcement is out of scope unless recurrence proves it earns a tool-level guard.
Decision Record impact
aligned-with ADR 0008(skill anatomy / Map-vs-Atlas): this is a payload-level workflow correction for an existing skill, not a new always-loaded rule or ADR amendment.Acceptance Criteria
epic-review-workflow.mdstates a global cap of at most two structured epic-review comments per epic.epic-review/SKILL.mdrouter is not bloated./turn-memory-pre-flightload-effect audit for the skill-substrate change.Out of Scope
epic-resolutionsemantics.Avoided Traps
AGENTS.md: rejected. This is workflow-specific substrate and belongs in the skill payload.Related
.agents/skills/epic-review//create-skill,/turn-memory-pre-flight, ADR 0008.Live latest-open sweep: checked latest 20 open issues at 2026-06-12T21:03Z; no equivalent cap ticket found. A2A in-flight sweep: recent mailbox contained the operator-directed cap handoff and no competing cap claim.
Origin Session ID: 518c54ce-5871-4ccf-8e88-6ac3b6e16ea8
Retrieval Hint: "epic-review two review cap per epic cross-model dedup operator-directed"