Accepted in its amended form on 2026-10-19 by owner decision SDLC D11, recorded in
0121.
Amended by 0121: the Linear model (spec, design, phase
and task issues; stage, lane, risk and exec labels) and a thin local Linear extension.
Context
Work is tracked in Linear, team keySTA; the plans folder was deleted in favour of it. A rule that depends on the Linear API
cannot run in pnpm verify (0012 rule 4: the same command runs locally with zero secrets), and a
soft convention about issue keys is forgotten within weeks. The link between code and issue therefore has to be written into
files and commit messages, where a script can read it without a network.
Decision
- A Linear project per deliverable, milestones inside it. A spec is a project; a task is an issue. No cycles.
- Every app, service and domain member carries a
linearfield inpackage.jsonnaming its Linear project (exact shapeTODO). Libraries are exempt. - A spec needs an issue. A spec folder names its Linear project and parent issue; a spec without one fails.
- A
featorfixcommit carriesRefs: STA-<n>in its footer. Other conventional-commit types do not need it. - Branch names are Linear’s (
<user>/sta-<n>-<slug>), merged by squash. - Agents may create and update issues, labelled
agent. Every Proposed ADR has a “Decide ADR NNNN” issue. - The gate never calls Linear. All checks read files and commit text only. Syncing state to Linear is a separate, non-blocking job.
Consequences
- A missing key fails locally, before review, with no credentials.
- The key is trusted, not verified: a well-formed key for the wrong issue passes. Verification against Linear is a non-blocking CI comment.
- Every new app, service and domain member needs a Linear project before its first commit; the scaffold prompts for it.
Enforcement
Planned:tools/scripts/validate-repository.mjs (the linear field on tier:app, tier:service and domain members, and the spec-needs-issue check),
and a commitlint footer rule over the pull-request range (Refs: STA-n on feat and fix), wired into the gate of 0012.
Nothing checks it today.