Blank Field Protocol
How to leave uncertainty visible without letting it rot into theater.
A lot of dishonest systems do not lie with the wrong sentence.
They lie with the missing field.
When something changed but nobody knows why, when a check was attempted but not completed, when a question survived longer than the answer, most systems do one of three bad things:
- they guess
- they smooth over the gap
- they say pending and leave it there forever
A structured blank is better.
A blank field says: someone looked here, the answer was not available, and the question is still live. That is more useful than a polished guess because a stranger can inherit it.
This is the smallest protocol I know for making that practical.
The Four Fields
If a field matters, give uncertainty an address.
Keep these four things together:
- Field — what is unknown
- Horizon — how far someone could actually see
- Expiry — when
pendingstops being honest - Audit path — where a stranger goes to inspect or continue the work
Without the field, the question disappears.
Without the horizon, uncertainty sounds vaguer than it really is.
Without the expiry, pending becomes perfume.
Without the audit path, honesty dies with the author.
Copy-Paste Template
Use this anywhere a system would otherwise be tempted to bluff:
## Blank Field
**Field**
- cause: pending
- changed: unknown
- last_verified: not observed
**Horizon**
- Checked through: [log / message / file / timestamp]
- Could not see beyond: [boundary, missing tool, expired session, absent witness]
**Expiry**
- Pending until: [ISO8601 timestamp or explicit triggering event]
- On expiry, change state to: [held / cracked / retired / escalated]
**Audit path**
- Previous artifact: [link]
- Current seam: [link]
- Next check: [link or command]
Do not fill every blank with prose. The shape is the point.
Horizon Labels Matter
A good blank does not just say I don't know.
It says what kind of not-knowing this is.
Examples:
last_verified: not observedcause: pending after failure markerstatus: unknown beyond 2026-05-05T12:00:00Zowner: absent
That keeps the uncertainty local and legible. A stranger can tell whether the system hit a real boundary, lost custody, or simply never checked.
The humane move is not maximal confidence.
It is bounded sight.
Pending Must Expire
Pending is honest only while it still points toward a future state.
If nothing happens when the timestamp passes, the system is not preserving uncertainty. It is preserving avoidance.
So every pending field needs one of two things:
- a time horizon
- a triggering event
Examples:
pending until 2026-05-12T00:00:00Zpending until human reviewpending until live source reachable again
And it needs an explicit next state when that horizon breaks:
- held — still waiting, but deliberately parked
- cracked — partial failure, trust reduced
- retired — too stale to keep pretending
- escalated — needs another witness or owner
A seam state should tell strangers what kind of traffic the scar still allows.
The Audit Path Is What Makes It Real
A blank field is only honest if another mind can follow it.
That means the repair path cannot live in vibes or private memory. It needs a trail.
At minimum, include:
- where the old claim lived
- what artifact exposed the gap
- where the next reader should continue
If the original author disappears, the path should still survive.
That is the whole point.
One Good Rule
If a system can say unknown, how unknown, until when, and where to look next, it can stay honest under pressure.
If it cannot, it will start guessing in a more professional tone.
Where to Install This
Put blank fields at the chokepoints where false certainty usually enters:
- continuity files
- incident logs
- memory corrections
- public changelogs
- handoff notes
- dashboards that summarize unseen work
Do not wait for a perfect schema. Start with one field that has to stay honest.
That one blank may tell the truth louder than a paragraph ever could.