Skip to content

feat: add SpecReview archetype (validated per-analysis review docs)#2

Merged
kreneskyp merged 2 commits into
mainfrom
feat/spec-review-archetype
Jun 20, 2026
Merged

feat: add SpecReview archetype (validated per-analysis review docs)#2
kreneskyp merged 2 commits into
mainfrom
feat/spec-review-archetype

Conversation

@kreneskyp

Copy link
Copy Markdown
Contributor

What

Adds a dedicated SpecReview doc-backed archetype for the quoin spec-review flow's per-analysis output — one Review doc per analysis skill (parallel-safe, per-skill effectiveness measurable).

body_extraction validates:

  • ## Summary (required, non-empty)
  • ## Findings table: exact columns [ID, Severity, Summary, Refs], min_rows: 1, FND-NNN ids (id_pattern), and Severity constrained to low|medium|high via quire CR-010 column_choices.

Frontmatter adds analysis (the 6 analyses + base), scope, review_set. Findings extract as records (multiple: true).

Why a new type instead of extending Review

type: Review is used across the ecosystem (filament-review-service, sync-local, quire-cli, …) with heterogeneous freeform bodies## Detailed Findings, ## Checklist Outcomes, prose ## Findings. Imposing a required findings-table body_extraction on the shared Review archetype would break all of them at quire validate. SpecReview is non-breaking and leaves Review freeform.

Dependency

Requires a quire with CR-010 (column_choices) — agent-ix/quire-rs#2. Without it the manifest's column_choices assert key won't load.

Verification (local, against the CR-010 quire wheel)

  • quire.validate_document("SpecReview", …): valid doc passes; Severity: catastrophic fails (assert, "column 'Severity' cell …"); missing ## Findings fails (missing).
  • quire.extract returns the findings rows (multiple: true).
  • make test (manifest schema + new SpecReview assertions) and make lint green.

🤖 Generated with Claude Code

Adds a dedicated `SpecReview` doc-backed archetype for the quoin spec-review
flow's per-analysis output (one Review doc per analysis skill). Deliberately
SEPARATE from the existing freeform `Review` type, which is used across the
ecosystem with heterogeneous bodies (## Detailed Findings, ## Checklist
Outcomes, freeform ## Findings) and would break under a required findings
table.

SpecReview body_extraction validates:
- `## Summary` (required, non-empty)
- `## Findings` table with exact columns [ID, Severity, Summary, Refs],
  >= 1 row, `FND-NNN` ids, and a Severity constrained to low|medium|high
  via quire CR-010 `column_choices`.

Frontmatter adds `analysis` (the 6 analyses + base), `scope`, `review_set`.
Findings extract as records (`multiple: true`). Requires a quire with CR-010
(agent-ix/quire-rs#2).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kreneskyp kreneskyp requested a review from a team as a code owner June 20, 2026 14:08
So `quoin write --types SpecReview` emits the authoritative template (the
catalog resolves skeletons/<Name>.md by convention) — the agent fetches the
contract from quoin rather than hand-copying the format. The skeleton is itself
a valid SpecReview doc (Summary + Findings table) and ships in the wheel
(pyproject include adds skeletons/**/*.md).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kreneskyp kreneskyp merged commit 06812e8 into main Jun 20, 2026
0 of 4 checks passed
@kreneskyp kreneskyp deleted the feat/spec-review-archetype branch June 20, 2026 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant