core specifications
The specifications of core describe what core does:
- Data Model and Extension Seam
- Configuration Model and JSON Schema
- Applications Catalog
- Stateless Deployment Programs
- Setups and Wiring
- Test Harness, Checks and Documentation
These specifications describe the individual parts that the general specifications above use:
Each specification is in its own directory NNN-<feature>/. A family of parts (for example the resources) has a spec.md for the rules that all parts of the family share, and one file for each part. The principles in constitution.md apply to all changes in core/. A change in behavior updates the matching specification in the same pull request.
The specifications are plain Markdown. You can read and change them without other tools.
If you want to use an agent to write them, the development shell of core contains Spec Kit. To add the agent commands (for example /speckit-specify) for your agent, run these commands in core/:
specify init --here --integration <agent> --script sh --force
ln -sf ../../specs/constitution.md .specify/memory/constitution.md
The first command writes templates and scripts to core/.specify/, and the agent commands to the directory of your agent (for example core/.claude/). The second command replaces the template constitution with a link to the constitution of core, so that the agent commands read and change it. Git ignores core/.specify/. Do not commit the agent commands.