Conditions, observations and triggers

How a page knows when it applies and when it fails, how what the Space knows about itself is recorded against the same conditions, and how one observation recommends a page. Includes the full projection table from memory claims to conditions.

Status: built 2026-10-06 and on by default. The condition graph carries fail edges and problem edges, and the observation projection, the trigger walk and the data-signal entry point are in the product. The matcher that resolves a statement to a condition is a separate service reached over the private network; where it is unreachable, observations are recorded and wait, and nothing else changes.

A library page is recommended when the Space is in a situation it addresses, and withheld when the Space is in a situation it fails in. Both situations are expressed the same way, as conditions, and what the Space knows about itself is recorded against those same conditions. Nothing called a "state" is stored anywhere. A condition is a proposition; pages and Spaces attach a stance to it.

Conditions

A condition is one proposition about a company, keyed by its subject and predicate: resources / are limited, psychological safety / is low, new market / entering. Three kinds:

Each condition carries a polarity (present or absent) as a field, never in the text. "The team has instrumentation" and "the team lacks instrumentation" embed almost identically, so the sign cannot live in the vector. Paraphrases merge into one node within a subject, kind and polarity.

Three stances on a condition

A page also needs skills, so a recommendation carries the skills the Space must have to use it. A "fails" bullet that names a missing skill ("fails when leaders cannot give candid feedback") resolves to that skill, not to a condition.

A holds edge records holds (true or false), a confidence from 0 to 1, the source, when it was observed, when it expires, and the evidence it rests on. The Space's situation at any moment is the set of its unexpired holds edges. That set is derived, never written.

How an observation recommends a page

  1. A holds edge is added or changed for the Space.
  2. Its statement is matched to a condition: subject first, then the closest predicate within that subject, at the strict similarity floor.
  3. Candidates are the pages that condition fires, with matching polarity.
  4. A candidate is dropped if the Space also holds any condition the page fails on, or lacks a skill the page needs.
  5. The rest rank by edge weight times observation confidence.

This runs on the change, not on a timer.

Observations are memory claims

The Space's memory already records claims with a kind and a label. Those claims are the observations. One projection maps each onto a condition and derives holds, confidence and expiry. The kind gives holds and confidence; six of the ten kinds project.

The label gives the condition kind and the expiry, using the freshness rule each label already has (progress goes stale in days, policies in quarters, decisions stand until superseded).

The company audit's identity answers (risk tolerance, prohibitions, legal constraints, positioning) project as standing conditions with a quarter-long expiry.

The source follows the direction the claim travelled: bottom-up is observed inside the Space, world-to-org is external, top-down is declared. When you answer a clarification question, the assumption it retires is upgraded to a user-sourced observation on the same condition, which is how an answer can recommend a page.

What this catches

Two claims that disagree project onto one condition with opposite polarity. A contradiction stops being something the audit has to search for and becomes a property of the node.

Limitations

  • Nothing here is live yet; see the status line at the top.
  • Analytics signals (a metric crossing a threshold) and task history (what the Space has already built) are not recorded as claims today. Both would be data-sourced observations at full confidence and are the strongest triggers available once a writer exists.
  • A condition merged across polarities fires a page in exactly the situation it breaks. Polarity joins the merge key before fail edges ship.