Writing Principles
These apply regardless of which design loop is active:
- Describe behaviour, not implementation. Requirements state what the system does, not how. βThe system must store bookmarksβ is a requirement. βUse PostgreSQLβ is a design decision.
- Use
must/must notfor mandatory requirements. Avoidshould,could,mightin requirement bodies β those belong in MoSCoW priority attributes, not prose. \{% tldr %\}is mandatory on every document and must usescope="public agent".- Never leave a reference unverified. Before writing a qualified id anywhere, confirm the document exists.
- Domains model behaviour; features expose UI. If a domain document is asked to include UI, redirect to a feature instead.
- Every new document starts with
status: draft. Do not setstatus: readyunless the user explicitly confirms the document is complete. - Flows are always standalone files. Never embed a flow inside a feature document.