Spec-driven development on OpenSpec, with mechanical spec-as-source enforcement: a custom 'spec-as-source' OpenSpec schema adds file-ownership (targets) and test-verification ([@test]) metadata to every capability spec, three scripts (link check, ownership check, manifest build) keep code and specs from drifting apart, plus requirement-gathering, spec-writer, work-review, and a session-handoff skill with a proactive context-warning hook.
71
89%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
An implementation is not complete until every file referenced by a [@test] annotation in the specs exists on disk.
Before declaring work done:
spec.md in openspec/specs/.[@test] paths.A missing [@test] is worse than a failing test: it is a requirement with no verification.
The targets field in a capability spec's frontmatter (openspec/specs/<capability>/spec.md) declares ownership: that spec is the authoritative source for those files.
Rules:
### Requirement: <name> header; names must be unique within a capability spec.**Verified by**: [@test] <path> line, placed after its SHALL/MUST sentence (never as the first line of the block).spec.md must declare its targets: in YAML frontmatter at the top of the file, before the # <Capability> Specification heading. A spec freshly created by openspec archive (no frontmatter yet) is not a violation by itself, but it must gain a targets: list before its first non-trivial edit.# GENERATED FROM SPEC: openspec/specs/<capability>/spec.md.Do not add requirements not present in the spec. Do not declare work complete if tests are missing, targets are outdated, or requirements are unverifiable.
.tessl-plugin
skills
handoff
openspec-apply-change
openspec-archive-change
openspec-explore
openspec-propose
openspec-sync-specs
requirement-gathering
spec-as-source-setup
templates
openspec-schema
spec-as-source
templates
spec-ci-sync
spec-rebuild
spec-verify
spec-writer
work-review