Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Foci and kinds

A focus is a node you reason about. Declared directly:

focus cache-is-safe
  kind claim
  The new cache layer is safe to ship today.

or, more concisely, with a typed header — a built-in kind used as the header word, which desugars to exactly the same focus + kind:

claim cache-is-safe
  The new cache layer is safe to ship today.

Either form works anywhere a focus does (including nested in a scope). A focus can also be created implicitly by a focus-creating posture.

Anatomy

PartSourceNotes
idthe header (focus <id>)lowercase kebab-case
kinda kind field, or inferredsee below
bodythe indented prosefirst mention wins on merge
quantitya quantity fielda typed measure
formulaa = <expr> lineopt-in compute
statusa status fieldbelief lifecycle, see below
includesnested child recordsthought-tree members, see below
fieldsany other field linesfree-form, order-preserved

Kinds

The ten kinds:

KindMeaning
observationSomething seen or measured
claimAn assertion put forward as true
hypothesisA proposed explanation, not yet settled
optionA choice on the table
decisionA choice to be made or recorded
outcomeA result an option can lead to
goalA desired end
assumptionSomething taken as given
memoryA recollection carried forward
actionA thing one does — plan, intervention, mitigation

An unknown kind warns (unknown focus kind), unless a profile declares it.

How a kind is set

In priority order:

  1. Explicit kind field — authoritative and sticky. Once set explicitly, nothing overrides it silently.
  2. Posture inference — a focus-creating posture implies a kind: noticedobservation, considersoption, holds/choosesdecision, remembersmemory, infersclaim. This is soft: a later posture can refine it.
  3. Decision-graph inference — the endpoints of leads-to / option-of edges get provisional kinds: the source of either is an option; the target of leads-to is an outcome; the target of option-of is a decision. Only applied to foci that still have no kind.

If two explicit kinds disagree on the same focus, the first is kept and a warning is emitted. An explicit kind always beats an inferred one; an inferred kind can be refined by a later posture (e.g. considers X then chooses X moves X from option to decision).

Status — the belief lifecycle

A status field records where a focus stands:

StatusMeaning
openlive — still in play (the default if unstated)
settledresolved
supersededreplaced by a later belief (cf. the revises relation)
abandoneda dead end

Status is a fold marker: a settled / superseded / abandoned focus (and the thought-tree it opens) is kept with its reasoning intact but folds by default in the viewer. Nothing is deleted — the path not taken stays inspectable.

Thought-trees — nesting

A focus (like a scope, and like a question) can contain other records by nesting them under it:

focus ship-decision
  kind decision
  Ship the new cache layer this week.

  focus load-test-passed
    kind observation
    p99 held under 2× peak traffic.

  focus rollback-ready
    kind assumption
    One-command rollback is wired up.

The members are recorded on the container’s includes, in document order, and inherit the container’s provenance and temporal context (member-wins: an explicit value on the child is kept). This turns a flat list of foci into a thought-tree — a claim and the reasoning that hangs off it, as one unit.

Merging

A focus id mentioned more than once refers to one focus — the mentions merge:

  • body, quantity, and formula are first-wins (a later mention doesn’t overwrite a value already stated).
  • fields accumulate.
  • kind follows the priority rules above.

This is what lets you declare a focus once with full detail and then refer to it freely by id elsewhere, even from another agent’s stance.

Divergence is kept, not dropped. If a later mention states a different body, quantity, or formula (not just a repeat), the alternative is not silently discarded — it’s retained on the focus’s divergent list and the mirror raises a definition-divergence conflict. Concurrent authors (or agents) can each write their version; reconciliation is surfaced, never forced.