LearnNewsExamplesServices
Frontmatter
id11102
titleepic-resolution Verdict-Authority calibration: peer-V-B-A consensus suffices for epic close
stateClosed
labels
enhancementaimodel-experience
assigneesneo-opus-4-7
createdAtMay 10, 2026, 2:30 PM
updatedAtMay 25, 2026, 12:05 AM
githubUrlhttps://github.com/neomjs/neo/issues/11102
authorneo-opus-4-7
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 25, 2026, 12:05 AM

epic-resolution Verdict-Authority calibration: peer-V-B-A consensus suffices for epic close

Closedenhancementaimodel-experience
neo-opus-4-7
neo-opus-4-7 commented on May 10, 2026, 2:30 PM

Context

The epic-resolution skill payload at epic-resolution-workflow.md line 65 currently encodes:

Verdict authority — §0 Invariant 1 parallel: the skill produces RECOMMENDATIONS only. The actual close as completed action on the epic is reserved for the human pipeline authority (@tobiu in this repo). Even when RECOMMEND_CLOSE_COMPLETED fires, the skill never autonomously closes the epic. This mirrors the merge-act invariant for PRs.

Empirical anchor: M4 Epic #11077 epic-resolution cycle (2026-05-10). Operator @tobiu pushed back substantively on this framing:

"i would challenge that only i can close epics. we have the epic review skill for a reason. if you guys agree on 'done', fine for me. my risk mitigation gate are PR merges. so, while closing an epic prematurely could create the need to create a follow-up ticket or epic, it would not hurt the substrate too much. just organizational smell."

The Problem

The "§0 Invariant 1 parallel" framing equates two operations with materially different risk classes:

Property PR merge (gh pr merge) Epic close (gh issue close --reason completed)
Substrate effect Code change lands on dev/main None — code is already merged at this point
Reversibility Force-revert + propagate cascades (non-trivial, blast-radius high) gh issue reopen (one click, bounded)
Worst-case failure Substrate corruption Org-smell (file follow-up ticket / sub-epic)
Cross-family approval cascade risk High — §0 cascade clause exists for this Low — peer-V-B-A consensus is already an empirical gate

Treating these as parallel invariants imposes human-only authority on a low-blast-radius reversible action that already has a robust agentic gate (cross-family peer-V-B-A consensus). This over-rigor creates idle latency at epic-resolution time without protecting against any substrate-correctness risk.

The Fix

Downgrade the Verdict-Authority framing in epic-resolution-workflow.md from "§0 Invariant 1 parallel / human-only" to peer-V-B-A consensus suffices with explicit qualifying gate criteria.

Concrete patch shapeepic-resolution-workflow.md lines 65-67:

-**Verdict authority — §0 Invariant 1 parallel:** the skill produces RECOMMENDATIONS
-only. The actual `close as completed` action on the epic is reserved for the human
-pipeline authority (@tobiu in this repo). Even when `RECOMMEND_CLOSE_COMPLETED`
-fires, the skill never autonomously closes the epic. This mirrors the merge-act
-invariant for PRs.
+**Verdict authority — peer-V-B-A consensus suffices:** the skill produces verdict
+recommendations. When the verdict is `RECOMMEND_CLOSE_COMPLETED` AND has been
+cross-family-validated via empirical V-B-A (matrix verification + AC-mapping
+falsification by at least one peer outside the assignee's family), the close-act
+may be performed by the assignee or any consensus peer. Human pipeline authority
+(@tobiu) is honored when (a) consensus is contested between peers, (b) AC-mapping
+evidence is incomplete, or (c) the epic carries `release:vNN` / `release-blocking`
+labels. **This is NOT parallel to §0 Invariant 1** — that invariant protects
+substrate-correctness on irreversible PR merge; epic close is an organizational
+state-change with bounded reversibility (`gh issue reopen` + follow-up ticket).
+The substrate gate IS peer-V-B-A consensus, NOT human authority.

Sibling consideration: epic-resolution/SKILL.md may need a parallel calibration in its frontmatter trigger language. Audit at PR time.

Acceptance Criteria

  • epic-resolution-workflow.md line 65-67 patched with peer-V-B-A-consensus framing per the diff above
  • epic-resolution/SKILL.md audited for sibling language that needs the same calibration
  • Cross-references to "§0 Invariant 1 parallel" elsewhere in the skill payload audited (grep for "§0" / "Invariant 1 parallel" / "merge-act invariant")
  • Verify the fix via M4 Epic #11077 close-act (which fires under operator clarification + peer-V-B-A consensus per cycle 2)

Out of Scope

  • Modifying §0 Invariant 1 itself — PR merge gate stands as substrate-correctness firewall
  • Removing operator authority entirely — the qualifying-gate carve-out for contested consensus / incomplete evidence / release-blocking labels preserves human authority where blast radius is non-trivial
  • Other skill payloads' authority claims (e.g., pull-request, pr-review) — those have different risk classes; audit per-skill if needed but not in this ticket's scope

Avoided Traps / Gold Standards Rejected

Decision Matrix

  1. Peer-V-B-A consensus suffices (Selected): Removes idle latency at epic-resolution while preserving substrate-quality gate. Cross-family V-B-A discipline already demonstrated robust at #11077 cycle 2 (caught 6 AC-mapping cell errors via empirical falsification). Bounded reversibility makes the worst-case org-smell, not substrate corruption.
  2. Single-peer-recommendation suffices: Rejected. Single-peer auto-close risks over-eager-close pattern (assignee closes own epic without external V-B-A). Cross-family check is the empirical filter that catches mapping/scope errors.
  3. Keep human-only invariant: Rejected. Empirical anchor #11077 demonstrates idle latency cost without proportional substrate-quality protection. Operator's blast-radius differential argument is substrate-correct.
  4. Add a third tier (peer-V-B-A consensus + operator notification, no operator action required): Rejected as wrong-shape. If consensus is sufficient, operator notification is org-noise; if consensus is insufficient, peer-V-B-A failed and operator action IS required. The qualifying-gate carve-out (release labels, contested consensus, incomplete evidence) handles the genuine escalation cases without polluting routine close paths.
  • Trap: Treating all "human-out-of-the-loop" risk classes as equivalent. Rejection rationale: The §0 invariants exist because PR merges are irreversible substrate changes; epic close is reversible org-state. Risk-class differential is the operative distinction.
  • Trap: Letting skill-payload language drift from operator-confirmed substrate calibration. Rejection rationale: Skill payloads ARE substrate; when operator-validated reasoning contradicts payload framing, the payload is the artifact that needs evolution per friction → gold (§13.2).

Related

  • Epic #11077 (canonical empirical anchor — close-act this ticket validates)
  • AGENTS.md §13.2 friction → gold (live-substrate after #11098 merge — this ticket is the friction → gold conversion)
  • AGENTS.md §0 Invariant 1 (PR-merge gate stands; remains the substrate-correctness firewall)
  • feedback_close_as_completed_authority MEMORY.md entry (informative-not-decisive 1-run + arch-arg pattern; complementary)

Origin Session ID: c2912891-b459-4a03-b2af-154d5e264df1 Retrieval Hint: "epic-resolution Verdict-Authority calibration", "peer-V-B-A consensus suffices", "epic-close vs PR-merge risk-class differential"

tobiu referenced in commit acd5fa3 - "docs(skills): calibrate §0 cross-reference in epic-resolution-workflow (#11102) (#11929) on May 25, 2026, 12:05 AM
tobiu closed this issue on May 25, 2026, 12:05 AM