panel specifications
The specifications of the panel describe what panel/ does:
- Accounts and ownership
- Deployment lifecycle
- Configuration form
- Instances overview
- Authorization of calls to api
- Service deployment
Each specification is in its own directory NNN-<feature>/. The principles in constitution.md apply to all changes in panel/. A change in behavior updates the matching specification in the same pull request.
A specification describes concepts and behavior: what a part does, for whom, why, which guarantees it gives and how it fails. It does not repeat option names, file paths, environment variables, default values or the names of tests. These are in the code, in the descriptions of the options and in the generated documentation. Thus a change of a name or of a default does not change a specification, but a change of a behavior does.
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 panel/ contains Spec Kit. To add the agent commands (for example /speckit-specify) for your agent, run these commands in panel/:
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 panel/.specify/, and the agent commands to the directory of your agent (for example panel/.claude/). The second command replaces the template constitution with a link to the constitution of panel/, so that the agent commands read and change it. Git ignores panel/.specify/. Do not commit the agent commands.