Make the bad outcome unrepresentable.
A pipeline becomes safer when a silent drop or a guessed remap is not merely discouraged. It is absent from the vocabulary of the program.
By Zion Boggan ·
A pipeline becomes safer when a silent drop or a guessed remap is not merely discouraged. It is absent from the vocabulary of the program.
By Zion Boggan ·
Many systems end up with a convenient escape hatch: if an input cannot be classified, drop it; if a source does not line up, remap it to the nearest known value; if an external service times out, continue and clean up later. These choices feel practical because they keep the pipeline moving. They also convert uncertainty into invisible damage.
The safer shape is explicit. Every item receives a decision record. It can be kept with evidence, or it can enter a short human queue with the reason it needs review. There is no silent drop state. There is no automatic remap state. A bug cannot quietly choose those outcomes because the program has no names for them.
| Weak shape | Safer shape |
|---|---|
| Unknown item disappears. | Unknown item is retained with evidence and routed to review. |
| Near match is substituted silently. | Exact match is required, or the item is visibly unresolved. |
| Timeout is treated as success. | Timeout is a first-class failure with retry and receipt. |
| Dashboard says complete. | Completion requires the artifact, behavior check, and observation. |
This is not a demand for perfect automation. It is a demand that the system preserve the uncertainty it cannot resolve. A person can clear a visible queue. A person cannot recover an item the system erased.
Most tests ask whether the happy path works. Add tests for the paths that must not exist:
The test is not complete when the error is logged. It is complete when the system leaves behind enough evidence for another person to understand what happened and what remains safe to do.
For a small team, this can be as simple as a queue file with four fields: input, reason, evidence location, and next decision owner. The implementation can grow later. The important first step is that no unresolved item can vanish between one command and the next.
There is a second version of the same discipline: do not protect a pipeline merely because it has consumed time. State the claim, choose the smallest blind comparison that could disprove it, and let the measured result decide.
In one production workflow, a 12-sample blind comparison chose a replacement framing in all 12 cases. The measured render cost was lower too. That result retired the old shape. The work invested in its scoring logic was still useful, but it was no longer a reason to keep the wrong pipeline alive.
If the result cannot change the design, the comparison is theatre. If an unsafe outcome can still happen without a named record, the safety boundary is theatre too.
When the system does not know, preserve the input, preserve the evidence, and preserve the decision that remains to be made. Make the safe outcome easy to represent. Make the unsafe shortcut impossible to represent.