schema: spec-driven
context: |
qctl is the Rust policy CLI for in-repo tasks.yaml work queues: status,
check, add, start, archive, park, promote, edit, show, and fmt. It renders
through ctl-core and owns no terminal presentation of its own.
Contracts: AGENTS.md, `qctl instructions`, skills/qctl/SKILL.md, and the
published tasks.schema.json.
Work queue: tasks.yaml (QCTL-###). One openspec change maps to one queue row.
Writing style: plain English, short sentences, numbered lists, no em-dashes,
no emojis. This repository is public: no local paths, machine names, or
private repository names in any artifact.
rules:
proposal:
- State the measured problem, with numbers where they exist.
- Name the queue row the change belongs to.
specs:
- Every requirement uses SHALL and has at least one WHEN/THEN scenario.
- Scenarios use concrete commands, flags, files, and environment values.
design:
- Each decision names the alternative considered and why it lost.
- Every automatic behaviour names its public override and its disable path.
tasks:
- Each task names the command or observation that proves it is done.
- Compile, format, lint, and test tasks run on the build host, not the authoring workstation.
operations:
archive:
guidance:
- Update AGENTS.md, the instructions, and the operator skill where the change made them true or false.