{"ontology_version":"1.0.0","description":"The Cambridge TCG ontology — what kinds of things exist in the kingdom and what properties each kind carries. The cosmology declared the axes of fact; the manifest listed the instances; the graph named the relations; the ontology declares the nature of each instance, beyond its relations. Eight kinds (resource, cosmology_axis, unmodelled_need, methodology, doctrine, connection_doc, kingdom, audit) and 54 typed properties across them. Each property has type, description, source (manifest / graph / audit / ontology / computed), and modality (observable / declared / derived).","generated_at":"2026-05-12T10:30:00Z","kinds":[{"kind":"resource","description":"A public-participant-facing endpoint. Reachable by URL; carries data; possibly mutates state.","properties":[{"name":"idempotent","type":"boolean","description":"Safe to call repeatedly with the same input.","source":"ontology","modality":"declared"},{"name":"side_effecting","type":"boolean","description":"Mutates platform state.","source":"ontology","modality":"declared"},{"name":"cache_ttl_seconds","type":"number","nullable":true,"description":"If cached, the TTL; null otherwise.","source":"manifest","modality":"observable"},{"name":"versioned","type":"boolean","description":"Lives under /api/v1/* — committed-to-stable surface.","source":"manifest","modality":"derived"},{"name":"stability","type":"enum","enum_values":["stable","beta","experimental","deprecated"],"description":"How committed is the platform to this surface's shape.","source":"ontology","modality":"declared"},{"name":"carries_pii","type":"boolean","description":"Returns personal data about an authenticated participant.","source":"ontology","modality":"declared"},{"name":"requires_consent","type":"boolean","description":"Mutation requires explicit user opt-in (vs. inferred consent).","source":"ontology","modality":"declared"},{"name":"modality_count","type":"number","description":"How many encodings the resource supports.","source":"manifest","modality":"derived"},{"name":"auth_kind","type":"enum","enum_values":["public","user","agent","admin","wholesale-key"],"description":"What kind of participant is allowed.","source":"manifest","modality":"observable"},{"name":"provenance_kind","type":"enum","enum_values":["live","cached","snapshot","synced","computed","static"],"description":"How the data the resource serves came to be true.","source":"manifest","modality":"observable"},{"name":"host","type":"enum","enum_values":["storefront","wholesale"],"description":"Which kingdom the endpoint physically lives on.","source":"manifest","modality":"observable"},{"name":"since","type":"date","description":"ISO date the resource became available.","source":"manifest","modality":"observable"},{"name":"method_count","type":"number","description":"How many HTTP methods the resource accepts.","source":"manifest","modality":"derived"}]},{"kind":"cosmology_axis","description":"One of the eight (or future-more) axes of fact the kingdom currently treats as real. See docs/principles/cosmology.md.","properties":[{"name":"currently_modelled","type":"boolean","description":"Does the platform substrate represent this axis.","source":"manifest","modality":"observable"},{"name":"extension_count","type":"number","description":"Number of recorded extensions (kingdom-NNN moves that widened this axis).","source":"manifest","modality":"derived"},{"name":"resource_grounding_count","type":"number","description":"Number of resources that ground in this axis.","source":"graph","modality":"derived"},{"name":"axis_order","type":"number","description":"Position 1-8 in the canonical cosmology listing.","source":"ontology","modality":"declared"}]},{"kind":"unmodelled_need","description":"A real being's real need the kingdom does not yet substrate. Eight named today. See the-other-minds.md and cosmology.md.","properties":[{"name":"being_label","type":"string","description":"The kind of being whose need this is (the Asynchronous, the Heptapod, etc.).","source":"manifest","modality":"observable"},{"name":"partially_modelled","type":"boolean","description":"True if some substrate touches the need but full modelling is absent.","source":"ontology","modality":"declared"},{"name":"blocker_kind","type":"enum","enum_values":["schema","ui-primitive","behaviour","convention","compute"],"description":"What kind of work would close the gap.","source":"ontology","modality":"declared"},{"name":"audit_check","type":"string","nullable":true,"description":"The inclusion-audit check that watches this gap, if any.","source":"ontology","modality":"declared"}]},{"kind":"methodology","description":"A /methodology/<topic> page explaining one platform decision. Public, no-auth.","properties":[{"name":"status","type":"enum","enum_values":["published","stub"],"description":"Whether the page is complete or skeletal.","source":"manifest","modality":"observable"},{"name":"instantiates_doctrine","type":"string","description":"The primary doctrine this page instantiates (substrate-honesty, transparency, cosmology, etc.).","source":"ontology","modality":"declared"},{"name":"has_audio_variant","type":"boolean","description":"TTS-rendered version available.","source":"manifest","modality":"derived"},{"name":"has_summary_variant","type":"boolean","description":"Short-form summary file present.","source":"manifest","modality":"derived"},{"name":"has_structured_data","type":"boolean","description":"Machine-readable JSON/structured rendering present.","source":"manifest","modality":"derived"},{"name":"explains_score","type":"boolean","description":"Explains a numeric score the platform computes.","source":"ontology","modality":"declared"},{"name":"explains_routing","type":"boolean","description":"Explains a routing/tier decision.","source":"ontology","modality":"declared"},{"name":"formats_count","type":"number","description":"How many modality variants exist.","source":"manifest","modality":"derived"}]},{"kind":"doctrine","description":"A platform-wide rule every change is judged against. Six today.","properties":[{"name":"kind","type":"enum","enum_values":["principle","substrate","scope-condition"],"description":"Principle: a property the artifact carries. Substrate: the world the principles operate within. Scope-condition: who the principles apply to.","source":"ontology","modality":"declared"},{"name":"audit_command","type":"string","nullable":true,"description":"The pnpm audit:* command that automates it.","source":"manifest","modality":"observable"},{"name":"established_date","type":"date","description":"When the doctrine was first declared in the repo.","source":"ontology","modality":"declared"},{"name":"methodology_instantiation_count","type":"number","description":"How many methodology pages instantiate this doctrine.","source":"graph","modality":"derived"},{"name":"is_peer_of_four","type":"boolean","description":"True for the four classical doctrines (substrate-honesty, transparency, meaning, creation); false for cosmology + fifth-question.","source":"ontology","modality":"declared"}]},{"kind":"connection_doc","description":"A docs/connections/*.md entry naming meaning-bridges. Two shapes: node-view (one node, what others need it for) and story-arc (one transaction traced end-to-end).","properties":[{"name":"shape","type":"enum","enum_values":["node-view","story-arc"],"description":"Spatial-plural (node-view) or temporal-singular (story-arc).","source":"ontology","modality":"declared"},{"name":"flavour","type":"enum","enum_values":["transaction-as-protagonist","person-evening","fairy-tale","story-as-wire","meta-narrative","node-view","meditation"],"description":"One of the seven recognised flavours.","source":"ontology","modality":"declared"},{"name":"s_number","type":"number","nullable":true,"description":"Story-arc number S1..SN, or null for node-views.","source":"graph","modality":"observable"},{"name":"ships_in_kingdom","type":"string","nullable":true,"description":"kingdom-NNN if the entry was paired with a mission's substrate.","source":"graph","modality":"observable"},{"name":"outbound_citation_count","type":"number","description":"How many sibling connection-docs this one cites.","source":"graph","modality":"derived"},{"name":"inbound_citation_count","type":"number","description":"How many sibling connection-docs cite this one.","source":"graph","modality":"derived"},{"name":"is_sister_paired","type":"boolean","description":"True when another connection-doc was filed in parallel from the same Yu prompt.","source":"ontology","modality":"declared"},{"name":"has_wiring_table","type":"boolean","description":"Carries an explicit metaphor → file:line citation table.","source":"ontology","modality":"declared"},{"name":"has_recursion_target","type":"boolean","description":"Names what reading should follow this entry.","source":"ontology","modality":"declared"}]},{"kind":"kingdom","description":"A unit of work — a mission from ~/Love/memory/dev-state.json mirrored to docs/missions/.","properties":[{"name":"status","type":"enum","enum_values":["queued","claimed","in-progress","done","deferred"],"description":"Lifecycle state.","source":"manifest","modality":"observable"},{"name":"priority","type":"enum","enum_values":["critical","high","medium","low"],"description":"Triage signal.","source":"ontology","modality":"declared"},{"name":"succeeds","type":"string","nullable":true,"description":"Prior kingdom this one builds on.","source":"graph","modality":"observable"},{"name":"audit_command","type":"string","nullable":true,"description":"Primary audit that watches this kingdom's substrate.","source":"graph","modality":"observable"},{"name":"is_sister_paired","type":"boolean","description":"Whether a sister Sophia worked the same Yu prompt in parallel.","source":"ontology","modality":"declared"},{"name":"produces_connection_doc","type":"boolean","description":"Whether the kingdom ships a paired story-as-wire connection-doc.","source":"graph","modality":"derived"}]},{"kind":"audit","description":"A pnpm audit:* command. Heuristic check that reports drift; some are cooperative (default exit 0) and some are CI-gating.","properties":[{"name":"command","type":"string","description":"Full pnpm command.","source":"ontology","modality":"declared"},{"name":"exit_code_policy","type":"enum","enum_values":["strict","cooperative"],"description":"Strict: exits 1 on findings. Cooperative: exits 0; --strict flag for non-zero.","source":"ontology","modality":"declared"},{"name":"check_count","type":"number","description":"How many distinct checks the audit runs.","source":"ontology","modality":"declared"},{"name":"is_in_chained_audit","type":"boolean","description":"Whether `pnpm audit` (the chained command) includes this audit.","source":"ontology","modality":"declared"},{"name":"doctrine_instantiated","type":"string","description":"Which doctrine this audit watches.","source":"graph","modality":"observable"}]}],"index":{"kind_count":8,"property_count":54},"_envelope":{"retrieved_at":"2026-05-30T07:46:40.350Z","as_of":"2026-05-12T10:30:00Z","kind":"static","canonical_at":"apps/storefront/src/lib/ontology.ts","html_mirror":"/ontology","manifest_url":"/api/v1/manifest","graph_url":"/api/v1/graph","notes":"Each node in /api/v1/graph carries a `properties` map populated according to its kind's ontology schema. The ontology is the schema; the graph carries the values."}}