feat: add SpecReview archetype (validated per-analysis review docs)#2
Merged
Conversation
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>
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a dedicated
SpecReviewdoc-backed archetype for the quoinspec-reviewflow's per-analysis output — one Review doc per analysis skill (parallel-safe, per-skill effectiveness measurable).body_extractionvalidates:## Summary(required, non-empty)## Findingstable: exact columns[ID, Severity, Summary, Refs],min_rows: 1,FND-NNNids (id_pattern), and Severity constrained tolow|medium|highvia quire CR-010column_choices.Frontmatter adds
analysis(the 6 analyses +base),scope,review_set. Findings extract as records (multiple: true).Why a new type instead of extending
Reviewtype: Reviewis 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-tablebody_extractionon the sharedReviewarchetype would break all of them atquire validate.SpecReviewis non-breaking and leavesReviewfreeform.Dependency
Requires a quire with CR-010 (
column_choices) — agent-ix/quire-rs#2. Without it the manifest'scolumn_choicesassert key won't load.Verification (local, against the CR-010 quire wheel)
quire.validate_document("SpecReview", …): valid doc passes;Severity: catastrophicfails (assert, "column 'Severity' cell …"); missing## Findingsfails (missing).quire.extractreturns the findings rows (multiple: true).make test(manifest schema + new SpecReview assertions) andmake lintgreen.🤖 Generated with Claude Code