Loading
docs: add OpenSpec baseline for every capability
What does this MR do and why?
Moves the gem to spec-driven development with OpenSpec. This first MR records the gem's current behaviour as an as-built baseline, so later changes can be proposed as deltas against it.
openspec/specs/: one spec per capability (13 in all), covering compatibility, configuration, cross-field validation, document structure, entity schemas, operations, parameter constraints, parameters, paths, request bodies, responses, tags and type mapping.- Each requirement carries
**Status**:,**Fixtures**:and**Tests**:lines. A requirement whose current output differs from the intended one is markeddeviation (#N), with an open issue and a**Current**:line. openspec/config.yaml: the project context and the rules for writing specs, proposals, designs and tasks..claude/commands/opsx/and.claude/skills/openspec-*: the/opsx:*workflow commands.README.md,CLAUDE.mdandAGENTS.md: document the workflow. The isolation rule now also listsjs_regexas a runtime dependency.
There is no code change, so the generated output is unchanged.
How to verify
npx -y @fission-ai/openspec@1.13.2 list --specs
npx -y @fission-ai/openspec@1.13.2 validate --all --strictKnown gaps
Some **Tests**: lines name a spec file that doesn't assert every scenario of its requirement. For example, configuration_spec.rb had no example for the option list, the defaults or the every-option-at-once scenario. Those examples are added later in this stack.
Stack
- !68 (merged): OpenSpec baseline (
docs/openspec-baseline→main) (this MR) - !69 (merged): Specification for #32 (
32-specify-parameter-annotations→docs/openspec-baseline) - !70: Implementation for #32 (
32-support-parameter-annotations→32-specify-parameter-annotations)
Merge from the bottom up: !68 (merged), then !69 (merged), then !70.
Edited by Max Woolf