Files
jellytau/docs/specs/SPEC-TEMPLATE.md
dtourolle 96abc3afef docs(specs): make "a spec becomes an architecture doc" the written rule
The sixteen specs folded in last commit were folded because someone noticed
they had gone stale, not because anything said they should be. Without the rule
written down the directory drifts straight back to a mix of promises and
descriptions, and neither can be trusted: you cannot tell from a file whether it
describes the build or proposes a change to it.

So: docs/specs/ holds only unshipped work, there is no "Implemented" resting
state, and the fold-in and the deletion happen in the same commit.

The template now asks for the destination architecture doc **up front**, which
is a design check rather than bookkeeping — a feature that fits no existing doc
usually has an unclear layer assignment, and it is cheaper to find that out at
spec time. It also tells the author which half of what they are writing is
durable (invariants, rejected alternatives, the defect a decision prevents) and
which half dies with the file (phases, migration steps, acceptance criteria).

The review checklist gains a Lifecycle section, including the case that gets
lost otherwise: out-of-scope work worth doing has to be written where it will
still be found after the spec is gone.
2026-08-21 18:29:09 +02:00

5.1 KiB

Spec:

Status: Proposed Requirements: UX spec: Supersedes / revises: Destination on completion:

Summary

Motivation

Layer assignment

Logic / responsibility Layer Why it belongs there
Rust
Frontend

Design

Out of scope

Acceptance criteria

  • bun run check and bun run test pass.
  • cargo fmt clean, cargo clippy clean, bun run test:rust passes (if Rust changed).
  • bun run check:boundary passes (no taxonomy leak into the frontend).
  • New requirement-implementing code carries // TRACES: comments.
  • bindings.ts regenerated if Rust types changed.

Testing

TRACES

Notes for the implementer