DecisionStatus
Interface: DecisionStatus
Defined in: src/atom/types.ts:2931
ONE DECISION THAT BELONGS TO A PERSON, and whether it has been made — the rows Session.decisions serves, read at the moment you ask.
The sibling of AskStatus: that one answers "is anything waiting on a
person?", this one answers "is anything a person's to decide?". They are
different questions with different next moves, so they keep separate rows and
share no vocabulary — no askId appears here, because a decision mints no
card and there is nothing for did_it_work to be asked about.
Graph-wide, like the ask book: a decision on another page still holds a journey, so a row exists for every declaring control wherever it lives.
Properties
about?
optionalabout?:string
Defined in: src/atom/types.ts:2934
The app's own words for what is being decided — DATA (see HumanDecides.about).
affordanceId
affordanceId:
string
Defined in: src/atom/types.ts:2932
made
made:
boolean|"unknown"
Defined in: src/atom/types.ts:2950
Whether the app's own doneWhen holds RIGHT NOW, evaluated fresh on every
call:
true— it holds.false— it was evaluated and does not hold. Only an evaluable, failing condition may say this.'unknown'— it could not be evaluated (a key absent from the state view, or holdingundefined— the same ruleguardUnevaluatedapplies to guards), or nodoneWhenwas declared at all.
'unknown' IS NEVER COLLAPSED INTO "not yet". They are different answers to
different questions, exactly as an unevaluable guard is served with a marker
rather than treated as failed.
madeBy?
optionalmadeBy?:Principal
Defined in: src/atom/types.ts:2968
WHO MADE IT — served beside made: true only, and minted from exactly the
identity-bearing rungs of updateState's attribution ladder: a delta naming
a fired transition, a handler's own call window, or an attributed
updateState(delta, { principal }).
ABSENT IS THE HONEST ANSWER and the common one. The matching rungs — FIFO settlement, the single-cover arm, effect-signature inference, the unknown-stimulus floor — compute a JOIN, and a computed join never attributes a human decision, so each of them CLEARS whatever the book held. The decision is then visibly made and nobody is named: the library does not say the human did it, and does not say they didn't.
Never inferred, never defaulted, and never 'user' unless a door that
carries identity said 'user'. A sentence typed in conversation reaches no
such door.