Project-Template/docs/design
null 6965915dbd chore(repo): put the template under version control
The basis for every project here was itself unversioned: no .git, no remote,
no history. Changes to it had no diff and no revert, and two of its own guards
could not run at all -- doc-claims.sh and doc-triggers.py both read git
history, so the script written to catch documentation drift could not be run
against the documents that define drift.

This is the tree as it stands, including work that until now existed only as
loose files on disk: WORK_CYCLE.md, TOOLS.md, the Portainer image-line fix in
deploy.py, the status vocabulary corrected to the four words the conformance
checker actually enforces, the Exempt: mechanism documented, and the Forgejo
instance named in README.md.

secrets.sh --tracked reports one candidate, migrate.sh:480. It is the comment
documenting the three Postgres credential shapes that script redacts, with
literal placeholders, and it is left alone deliberately: GUARDS.md section 2
is that a source-grep guard must tell code from the comment about code, and
deleting an explanation to quiet a scanner is the failure it names.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 22:44:26 -05:00
..
README.md chore(repo): put the template under version control 2026-08-17 22:44:26 -05:00

README.md

Design

Status: Current
Owner: <who maintains this>
Last reviewed: <YYYY-MM-DD>
Governs: docs/design/**
Review trigger: Any new user-facing surface, or a change to the product's tone

What belongs here

What it should feel like, and the decisions behind that:

  • Product decisions — what the user can do, in what order, and what happens when they get it wrong. The error states are design, not an afterthought.
  • UI plans — screens, states, and what each one is for. Include the empty state and the loading state; they are the two most people see first and the two most often left undesigned.
  • Copy — the actual words. Interface text is a design surface, and writing it late means writing it badly.
  • Tone — how this product talks. One paragraph is enough, and it settles a hundred small arguments.

What does not belong here

  • How it is built — that is docs/architecture/
  • Scope and audience — that is docs/planning/PROJECT_PLAN.md

Include the rejected version

For any decision that was genuinely close, record what was not chosen and why. Without it, the same option gets proposed every few months and re-argued from nothing.