…
template-levels: pro, master
template-note: the design of a pro or master project, made when the project is created (P-530)
-description: The design of {{project}}: the mechanisms that realise its specification
+description: The design of {{project}}: the mechanisms that realise its specification, for any code base
tags: ai, design
status: draft
…
# {{project}}: design
-This is the design for {{project}}: the mechanisms that realise the specification, independent of any one code base. Its companions: [[Spec]] (the specification), [[UiSpec]] (the UI specification), [[Design]] (the design) and [[Implementation]] (the implementation).
+This is Design, the design for {{project}}, kept by the designer: the mechanisms that realise the specification, independent of any one code base. Its companions: [[Spec]] (what it does), [[SpecUi]] (how the UI behaves), [[Design]] (the mechanisms), [[DesignRoutes]] (the API) and [[SpecTest]] (the black-box tests); each code base that builds {{project}} keeps its own topics, named after it (e.g. `Proto1Impl`, `Proto1Code`, `Proto1Routes`, `Proto1Test`).
## Goals
…
- **Role:** the mechanisms that realise [[Spec]], in terms any build could follow.
- **A line belongs here if** it would be wrong only if another architecture were picked for the same behaviour.
-- **It fails if** a second build can't follow it without reading the first one's code, if it names files, classes or language features (those go in [[Implementation]]), or if it restates behaviour (that goes in [[Spec]] or [[UiSpec]]).
+- **It fails if** a second build can't follow it without reading the first one's code, if it names files, classes, commits or anything one code base did (those go in that code base's topics), or if it restates behaviour (that goes in [[Spec]] or [[SpecUi]]).
## Domain
…