Coldstart has not been released. The behavior on this page runs in the development build; there is no release you can install today.
The export work now contains several kinds of rule: use only approved columns, ask before a production deploy, never commit a protected environment file, and explain why display-shaped rows cannot replace raw export data. They should not all live in the same place.
Coldstart uses four composing homes: a deterministic check, lifecycle code, routed guidance, and prose. Choose by when the rule must matter and what can be observed then—not by imagining a ladder from weak to strong.
The four homes in the export
| Home | Best fit | Export example | Nearest failure |
|---|---|---|---|
| Deterministic check | A condition derivable after the change | Verify only approved columns are serialized | The defect has already landed before the check reports it |
| Lifecycle code | A small represented condition at one event | Pause a deploy or deny a protected-file commit | It sees the call, not whether deployment is wise |
| Routed guidance | A contextual method that may or may not apply | Load a serializer or security method when the catalogue truly matches | It may not load, and a match may still be poor |
| Prose | The reason, definition, or human choice | Explain why display rows and raw export rows differ | It may be unread when the distinction matters |
The two-question fit test
First ask: If this is skipped at the relevant moment, is that itself a defect? If no, the rule may belong in guidance or prose. A manual checklist is often enough for a small, infrequent export.
If yes, ask: Can a check or lifecycle event decide the condition from what it can actually see? A check can inspect the finished tree. Pre-tool code can inspect one pending call. Neither can decide whether the approved field set still expresses the right product policy.
They compose; they do not replace one another
The approved-field decision belongs in prose because a person owns its reason. A focused method may arrive through routing. A test checks the serializer output. A lifecycle gate pauses the later production deploy. Together they cover explanation, optional method, represented result, and event-time judgment.
Moving all four rules into hooks would create prompts the code cannot decide and users learn to dismiss. Moving all four into prose would leave the represented deploy and secret boundaries dependent on memory. The right design is the smallest combination that preserves the actual need.
The fit test is still human judgment. Coldstart does not automatically detect that a rule was filed in the wrong home, and making a rule fire does not make the rule correct.
Next
That is what holds a session steady. The next question is what to do when the plan itself turns out to be wrong: change.