Skip to content

Epic: typed ticket body (EARS acceptance criteria + design artifacts) #3799

Description

@kyle-sexton

AMENDED 2026-09-06. Close-out grades this container against the amended set below, not the original.

Planning slice #3805 found this Brief mismodelled the chain. work-items:decompose authors fresh criteria for each slice and never carries the Brief's through, which is inherited behaviour with a stated rationale, so it is not changing. And a design scope is architectural while a decomposed slice is vertical, so neither an EARS tag nor a design artifact ever reaches a slice.

Superseded acceptance criteria. The one on the decompose slice body inlining an artifact: the target is this container body instead, since it stands one-to-one with the design session (#3823). The one on the fresh-context verifier returning a row per criterion: the reader is the close-out review, whose per-criterion rollup already exists and already carries delivered / partial / missing / unverifiable, so the slice is now one pattern column (#3824). The one on the design skill emitting an artifact per scope: it already ships a per-scope artifact table, so the slice types and dialect-selects what exists, and library and module emit nothing (#3822).

Corrected constraints. Zero-config is scoped to emitted output; the always-on coverage prompt is deliberately outside that guarantee. The system-scope diagram key has no default, so a zero-config consumer emits no C4 view.

The first three acceptance criteria, the out-of-scope list, and the per-item-PR execution shape all stand. Full rationale is in the 2026-09-06 amendment comment on this issue.

Brief

TLDR

Give the ticket body a type. Acceptance criteria gain an opt-in EARS format and an always-on unwanted-behaviour coverage prompt; design gains typed artifact targets per scope (data-model, contracts, C4 container); decompose inlines those artifacts into slice bodies; verification returns a per-criterion verdict table when criteria carry EARS tags. Four extends plus one convention registration. No new plugin, no new skill.

Goal

A planning-to-verification chain where the shape of an acceptance criterion and the shape of a design artifact are both declared, machine-recognizable, and carried forward into the ticket and the verification verdict — instead of free-text prose re-interpreted at each hop.

Constraints

  • Team-shared format choices (EARS on/off, diagram dialect) live in the consumer's convention doc per the configuration-ownership doctrine in PLUGIN-PHILOSOPHY. No userConfig for team conventions.
  • Zero-config behavior is preserved: a consumer with no convention doc sees today's behavior unchanged (free-text acceptance criteria, mermaid diagrams).
  • Diagram craft is cited from an installed community diagram skill, presence-gated, never authored here.
  • Mermaid C4 is experimental and is not the system-scope default.

Acceptance criteria

  • The convention registry carries a row for the consumer convention doc's two new keys (acceptance-criteria format, diagram dialect), and the consumer-facing convention doc shape documents both with their defaults.
  • Acceptance-criteria capture in the interview and PRD skills always asks once whether an unwanted-behaviour (IF-THEN) and a state-driven (WHILE) case is missing, regardless of convention.
  • When the consumer convention selects EARS, emitted acceptance criteria are tagged with the five EARS patterns; without it, criteria are emitted free-text as today.
  • The design skill emits a data-model artifact for data scope, a contracts artifact for integration scope, and a C4 container view for system scope, each in the dialect the convention names.
  • The decompose slice body inlines a design artifact produced for that slice's scope as a fenced diagram block with a provenance note, and emits nothing when no artifact exists.
  • The fresh-context verifier returns one row per criterion (criterion, pattern, evidence, verdict) when the retrieved criteria carry EARS tags, and its existing narrative form otherwise.

Captured assumptions

  • GitHub renders mermaid natively in issue bodies, so an inlined mermaid artifact is readable without tooling.
  • A consumer adopting EARS wants tags on the criteria themselves, not a separate requirements document.
  • OpenAPI 3.1 is the sketch dialect for integration contracts; no other API description language is offered in this increment.

Out-of-scope

  • Reqnroll scaffolding, a standalone Gherkin-authoring skill, and a full EARS-to-Gherkin-to-living-documentation pipeline. No second stakeholder reads living docs, and Gherkin overlaps the test-authoring skill. Gherkin export is named as a deferred extension point only.
  • A standalone design-document skill.
  • Authoring mermaid craft guidance in-house.

Deferred questions

  • C1: data-model drift — reconciling a design ERD against the runtime data model (for example an EF Core DbContext). The only novel capability found in this lane; depends on typed design artifacts landing first.

Execution shape: per-item PRs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: needs-triageDefault until a priority tier is assigned.work-mapDecision map container for /planning:wayfind; sub-issues are its typed decision items.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions