feat: ship schemas for proposal, tasks, and design artifacts - #12
Conversation
Every change artifact now validates against an embedded mdschema with the same repo-override path the spec schemas use: a proposal carries Why, What Changes, Capabilities, and Impact with status frontmatter, tasks carry numbered sections of N.M checkboxes, and a design carries its approach. Validation wires them through validate_change, so tree and per-change runs check identically. A wiring test pins the three diagnostic codes. Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This PR adds automatically active schema validation for proposal, task, and design artifacts, changing the diagnostics and possible outcomes of existing validation commands. The implementation is localized and fully author-owned, but the runtime behavior expansion merits human review. Notes:
You can add or adjust custom eligibility rules. Learn more. |
|
|
||
| heading_rules: | ||
| no_skip_levels: true | ||
| max_depth: 2 |
There was a problem hiding this comment.
🚫 [runeseer] reported by reviewdog 🐶
High — proposal.mdschema rejects every proposal already in this repository's spec tree, so rune spec validate, archive preflight, and doctor now emit proposal-schema-invalid on artifacts this change does not touch.
docs/openspec/changes/spec-compatibility/proposal.md:14### New Capabilitiessits at depth 3, pastmax_depth: 2;decision-artifactsanddevelopment-lifecyclecarry the same heading.docs/openspec/changes/decision-artifacts/proposal.md:1starts at## Whywith no frontmatter, so the requiredstatusfield is absent.
Runeseer review — 1 open finding
Request changes. The new proposal schema errors on all three proposals already under
1 open · Reviewed |
|
@N4M3Z, the following findings block this head:
Choose one action:
|
Every change artifact now validates against an embedded mdschema with the same repo-override path the spec schemas use. A proposal carries Why, What Changes, Capabilities, and Impact with status frontmatter. Tasks carry numbered sections of N.M checkboxes. A design carries its approach at warning severity, because existing designs predate the schema. Validation wires the schemas through validate_change, so tree and per-change runs check identically, and every repo with a docs spec tree inherits them. A wiring test pins the three diagnostic codes.
spec:none: the change adds validation schemas and no new lifecycle contract.
Note
Add Markdown schema validation for proposal, tasks, and design artifacts in changes
ChangeSchemasstruct in validate.rs\n-validate_changenow readsproposal.md,tasks.md, anddesign.mdfrom the change directory when present and emits diagnostics with codesproposal-schema-invalid,tasks-schema-invalid, anddesign-schema-invalidproposal.md,tasks.md, ordesign.mdwill now produce validation warnings or errors that did not exist before; existing canonical spec and delta validation behavior is unchangedMacroscope summarized 87697fa.