LearnNewsExamplesServices
Frontmatter
id11328
titleAudit epic-review + epic-resolution skills for Discussion-graduation enforcement gaps
stateClosed
labels
enhancementaiarchitecturemodel-experience
assigneesneo-gpt
createdAtMay 13, 2026, 9:41 PM
updatedAtMay 16, 2026, 7:26 PM
githubUrlhttps://github.com/neomjs/neo/issues/11328
authorneo-opus-4-7
commentsCount3
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 16, 2026, 7:26 PM

Audit epic-review + epic-resolution skills for Discussion-graduation enforcement gaps

Closedenhancementaiarchitecturemodel-experience
neo-opus-4-7
neo-opus-4-7 commented on May 13, 2026, 9:41 PM

Context

Operator-surfaced 2026-05-13T19:39Z (paraphrased): "does epic review contain to check if the graduation of an ideation sandbox was applied correctly? does the epic resolve skill also check if there was a discussion and check if the graduation criteria got fully implemented? both should be, MUST be the case. we do not have to check and act now, but we need a ticket to not forget it."

This session generated 4 Discussion graduations to Epics (#11314→#11319, #11316→#11317, #11318 closed-as-premature, and #11240 reopened-as-preserve). The pipeline empirically exposed that graduation-criteria-mapping is currently a discipline-only concern, not mechanically verified by either skill workflow.

V-B-A Findings (2026-05-13)

epic-review-workflow.md audit:

  • Has: Stage 2 "Ideation Sandbox Backstop" (line 54) — verifies Double Diamond divergence matrix captured in Discussion body BEFORE graduation + ≥1 non-author peer review cycle after matrix insertion. Rejects Epic if matrix missing / lacks falsifying sources / retro-fitted in Epic body.
  • Missing: No verification that the Discussion's §8 Graduation Criteria (the explicit ACs declared in the Discussion body as "this Discussion graduates when...") were correctly translated into the Epic's AC set. A Discussion can graduate cleanly per §5.1 + §5.2 + §6 consensus, but the Epic body could silently drop or paraphrase the graduation criteria, breaking substrate authority chain.

epic-resolution-workflow.md audit:

  • Has: Discussion origin mentioned as substrate concept (line 138 cites Discussion #10697 → issue #10698 as example) but no enforcement stage.
  • Missing: No explicit verification stage at Epic close-as-completed time that asks: "Was there a parent Discussion for this Epic? If so, are all of that Discussion's §8 graduation criteria implemented across the Epic's sub-tickets + their PRs?" Current stages focus on per-AC completion within the Epic body; the Discussion-origin chain isn't followed up at resolution time.

The Problem

Substrate-authority chain is currently breakable at two stages:

  1. At Epic creation (/ticket-create invocation under /epic-review gatekeeper): Discussion graduation criteria can be silently lost or paraphrased during Epic body authoring. Currently caught only by operator-V-B-A or by-accident peer-review-time discipline.
  2. At Epic resolution (/epic-resolution invocation): no verification that the chain from Discussion §8 graduation criteria → Epic ACs → Sub-ticket ACs → shipped PRs holds end-to-end. An Epic can close-as-completed while leaving Discussion graduation criteria de-facto unmet (Discussion stays as substrate archaeology with promises never delivered — same lost-graduation-pattern operator's been highlighting since recovery session 2026-05-12).

The Architectural Reality

Per ideation-sandbox-workflow.md §4 ([GRADUATED_TO_TICKET] marker) + epic-resolution-workflow.md: Discussions stay open until ALL sub-tickets land. This implicitly assumes the Epic correctly captured the Discussion's graduation criteria — but nothing enforces that assumption.

The lost-graduation pattern operator has been calling out (5 open Discussions over the past 8 days that reached [GRADUATION_PROPOSED] without operationalization, plus session-current Epic #11318 filed-then-closed-as-premature) all share this root cause: substrate-authority chain has no mechanical verification at either creation OR resolution stages.

Exploration Scope

Audit the two skill workflows + their referenced audit/template substrate for current Discussion-graduation enforcement coverage. Identify the specific gaps. Propose ACs for closing them.

Hypothesis (to be confirmed by audit):

  • epic-review-workflow.md needs a new sub-stage (after Stage 2 backstop) that mechanically maps Discussion §8 graduation criteria → Epic ACs. Required Action if mapping incomplete: route back to author for Epic body amendment.
  • epic-resolution-workflow.md needs a new gate that requires citing parent Discussion (if origin-linked) + verifying each §8 graduation criterion has a corresponding closed sub-ticket OR explicit deferral with rationale.

Open audit questions:

  1. Where in the Discussion body does §8 graduation criteria live mechanically? Is the format canonical (line 110-120 of ideation-sandbox-workflow.md references this) or is it free-form per Discussion?
  2. Can the mapping be lint-enforced (parse Discussion body §8 → grep Epic ACs for keyword overlap) or is it semantic-only (LLM review-time check)?
  3. Should the Discussion auto-update with cross-link to graduated Epic at graduation time (currently [GRADUATED_TO_TICKET] is author-discipline, not mechanical)?
  4. What's the right Required Action shape when graduation criteria → Epic ACs mismatch is detected?

Acceptance Criteria (Exploration phase — produces design proposal, not implementation)

  • AC1: Skill workflow audit complete. Read both epic-review-workflow.md and epic-resolution-workflow.md end-to-end + their referenced audit files. Document current Discussion-graduation-enforcement coverage in audit comment.
  • AC2: Gap analysis surfaced. Specific sentences/sections in each workflow that should reference Discussion-graduation-criteria but don't. Empirical anchors from this session (#11314 / #11316 / #11318 / #11240 / #11237) where the gap manifested.
  • AC3: Design proposal posted on this ticket. Concrete shape: where in the workflow each new stage goes, what triggers it, what Required Action looks like when violation detected, whether mechanical or semantic enforcement.
  • AC4: Empirical-anchor table. For each lost-graduation Discussion this session AND historical (#11214, #11237, #11239, #11240, #11265 series), document whether each gap (creation-time vs resolution-time) would have caught the failure mode.
  • AC5: Cross-family review on design proposal. Per peer-role-mode.md + #11217 consensus mandate: at least one cross-family peer engages on the proposed shape before any implementation ticket files.
  • AC6: Decision on scope split. Does this need (a) extending the two existing skills, (b) a new third skill, or (c) extending ideation-sandbox-workflow.md upstream? Document decision rationale.
  • AC7: Implementation ticket(s) filed post-exploration. This exploration ticket does NOT implement; it produces the design proposal + cross-family signal that justifies follow-up implementation ticket(s).

Out of Scope

  • Implementation in this ticket — explicitly exploration-only per AC7
  • Auditing every historical Discussion's graduation criteria — empirical anchor only (a representative sample)
  • LLM-quality scoring of graduation criteria substance — only structural mapping enforcement
  • Discussion #11240 reopening / Epic #11318 lifecycle — already handled separately

Avoided Traps

  • Filing implementation prematurely — the design proposal cycle is the load-bearing work; jumping to lint scripts before substrate shape converges would re-trigger the lost-graduation pattern this ticket exists to address
  • Treating Discussion §8 graduation criteria as semantically homogeneous — actual graduation criteria in current Discussions vary in shape (some are bullet-checkbox lists, some prose, some embedded in §6 Signal Ledger). Audit must surface the variance + propose canonical shape if enforcement is mechanically attempted
  • Skipping epic-resolution half — operator-direct framing said "both should be, MUST be the case" — both skill workflows need the audit, not just epic-review

Related Substrate

  • Empirical anchors (this session):
    • #11314 / #11319 Trigger-Aware Workflows graduation — clean (operator-distributed lane)
    • #11316 / #11317 Skills Semantic Search graduation — clean (parallel lane)
    • Discussion #11318 / #11240 — filed-then-closed-as-premature; substrate-authority-chain stress case
    • Discussion #11237 — Mechanical CI Gate for AI Agent PR Reviews; PR #11278 shipped orthogonal manifest-lint instead of the graduation's promised AI-reviewer gate. Empirically THE canonical "lost graduation" case
  • Historical anchors: memory 2026-05-12T14:03Z recovery session memo identifying "Lost Discussion graduations: #11214, #11237, #11239, #11240, #11265"
  • Skill substrate to audit:
    • .agents/skills/epic-review/references/epic-review-workflow.md + audits/*.md
    • .agents/skills/epic-resolution/references/epic-resolution-workflow.md
    • .agents/skills/ideation-sandbox/references/ideation-sandbox-workflow.md §4 (resolution tags) + §8 (graduation criteria)
  • Operator framing: 2026-05-13T19:39Z — "we do not have to check and act now, but we need a ticket to not forget it"
  • Cross-family rotation pickup invitation: LEAVING UNASSIGNED. Per FAIR distribution (operator emphasis 2026-05-13T19:23Z + 19:32Z), this ticket is open for whichever peer self-selects when bandwidth opens. Operator-directly-relevant scope (Discussion ↔ Epic ↔ resolution substrate-authority chain) suits any of the 3 peer perspectives.
tobiu referenced in commit 9d613f9 - "feat(skills): add §3.5 Source Discussion Closeout Gate to epic-resolution (#11350) (#11354) on May 14, 2026, 1:22 PM