| name | name-and-seat-construct |
| description | Name a construct's kind of truth and seat it in exactly one zone (KEEP or SPLIT). Use when placing or splitting a type/module/bag under zone law and future pressure. Not io-inversion. Not architecture-design. Not organize-work. |
Name and Seat Construct
Input: a construct, file, or bag of code + zone one-liners (and known future pressure, e.g. storage).
Output: kind-of-truth (one line) + zone seat + KEEP or SPLIT (with split targets if SPLIT).
Do this
- Name the truth. In one line: what kind of fact or behavior is this? If you need two lines, it is two constructs — split the question and restart per piece.
- Seat. Match that truth to exactly one zone one-liner. The home follows the kind of truth, never the feature name or edit convenience.
- Pressure. Ask what is coming (storage seams, campaigns vs engine, currency vs durable value). If the future clearly owns a different context, prefer SPLIT into that seat now over “can live together today.”
- Bag test. Prefer the seat that makes the wrong ownership hard to write later. Bag filenames that mean two truths → SPLIT; do not keep the husk name.
- Emit.
- construct
- kind of truth
- seat (zone path)
- KEEP | SPLIT
- if SPLIT: each piece’s truth + seat
Stop.
Do not
- Pattern-match stale maps as authority. Helpers only; reconcile with tree + zone law + future pressure.
- Put two authorities in one seat.
- Perform IO inversion here — that is
io-inversion.