designlisted
Install: claude install-skill DiLoretoT/faw
# Design
This phase settles what is expensive to change later. A coding mistake is fixed
with a commit; a mistake in grain or storage mode is fixed by rebuilding the
table, the model, and everything downstream of them.
The goal is not to produce a document. It is that every decision the solution will
carry gets made on purpose, with its rationale, and confirmed by the user before
the first line is written.
## What has to be produced
1. **The grain, in one sentence.** "One row per cash movement", or "one row per
product per day". If the sentence needs a conjunction to be true, the grain is
not defined.
2. **The natural key, verified against the source.** Verified means the query
comparing total rows against distinct combinations was actually run. Copying it
from a specification is not verifying it.
3. **The data contract** (`faw/contracts/TEMPLATE.contract.yml`): columns, types,
assertions.
4. **The architecture decisions**, below.
5. **The user's confirmation**, which is the gate out of the phase.
## The decisions that get made on their own if nobody looks
Every artifact that gets built leaves architecture decisions settled, whether they
were discussed or not. When they are not discussed, they get made by the default
value of a dialog, by the habit of the previous project, or by the first path that
appeared. They are still decisions; what changes is that nobody can explain why
they were made or what was ruled out.
**What this skill requires is not decidi