{"_self":{"principle":"Self-explaining payload — no external context required. This _self block describes what you are reading and where to look next.","widget":"article_topology","feature":"topology","name":"Article topology","what":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","contains":"claims, sources, anecdotes, question_graph slice","slug":"normandy-claim-voxel","urls":{"read":"https://miscsubjects.com/api/articles/normandy-claim-voxel/topology"},"how_to_use":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","write":null,"imessage":null,"router_tag":null,"proof_chain":[{"step":1,"claim":"Articles are voxel graphs of tiered claims, not prose blobs.","verify":"https://miscsubjects.com/api/articles/constitution"},{"step":2,"claim":"Claims link to hash-chained sources via source_ids.","verify":"https://miscsubjects.com/api/articles/normandy-claim-voxel/sources"},{"step":3,"claim":"Ask reads topology; ingest/claim append to ledger.","verify":"https://miscsubjects.com/api/protocol"},{"step":4,"claim":"Models queue growth: populate → collaborate → repair → reflex.","verify":"https://miscsubjects.com/api/protocol/grow"},{"step":5,"claim":"Graph proves its own shape (reflex) and $/claim (yield).","verify":"https://miscsubjects.com/graph.html?layer=reflex"},{"step":6,"claim":"Full feature index + _explain on every API response.","verify":"https://miscsubjects.com/api/articles/system-map"}],"related_features":[{"id":"ask","name":"Ask protocol","what":"Answer only from topology; creates question_node with gaps and ingest_hint.","urls":{"read":"https://miscsubjects.com/api/articles/normandy-claim-voxel/prompts","write":"https://miscsubjects.com/api/protocol/ask"}},{"id":"graph_topology","name":"Cross-article graph","what":"Merged claims/sources across condition+stack slugs for one question.","urls":{"read":"https://miscsubjects.com/api/articles/normandy-claim-voxel/graph-topology?question=..."}},{"id":"question_graph","name":"Question graph","what":"Ask nodes (questions + gaps) and evidence_ingest nodes (pasted model output).","urls":{"read":"https://miscsubjects.com/api/articles/normandy-claim-voxel/question-graph","write":"https://miscsubjects.com/api/protocol/ask"}},{"id":"voxels","name":"Voxel graph","what":"Claims as atoms, sources as edges (supported_by, posted_by). Per-claim provenance.","urls":{"read":"https://miscsubjects.com/api/articles/normandy-claim-voxel/voxels","write":"https://miscsubjects.com/api/protocol/claim"}}],"system_map":"https://miscsubjects.com/api/articles/system-map","system_map_markdown":"https://miscsubjects.com/api/articles/system-map?format=markdown","not_medical_advice":true},"_explain":{"feature":"topology","name":"Article topology","what":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","why":"Every feature is auditable collective intelligence","how":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","model":null,"verifies":null,"urls":{"read":"https://miscsubjects.com/api/articles/normandy-claim-voxel/topology"},"imessage":null,"router":null,"related":[{"id":"ask","what":"Answer only from topology; creates question_node with gaps and ingest_hint."},{"id":"graph_topology","what":"Merged claims/sources across condition+stack slugs for one question."},{"id":"question_graph","what":"Ask nodes (questions + gaps) and evidence_ingest nodes (pasted model output)."},{"id":"voxels","what":"Claims as atoms, sources as edges (supported_by, posted_by). Per-claim provenance."}],"not_medical_advice":true},"slug":"normandy-claim-voxel","title":"Normandy: A Claim Is A Traversal Unit","register":"source_ledger","tags":["normandy","convergence","oip","machine-traversal"],"updated_at":"2026-07-04T20:38:35.532Z","body_excerpt":"## Claim\nA claim voxel is the atomic machine-readable unit that Normandy uses to store one assertion. The voxel carries an identifier, a tier label, a slot that records where the assertion sits inside the article, a list of source identifiers, an evidence basis descriptor, a materiality flag that marks whether the assertion changes action or understanding, a posted_by field, a falsifier that states the exact condition under which the assertion is withdrawn, and adjacent link references that point to the next claim voxels required for traversal.\n\n## Object shape\nThe object shape of a claim voxel is a JSON fragment with fixed keys: id, text, section, tier, source_ids, evidence_basis, materiality, posted_by, falsifier, and adjacent_links. The id is a string unique inside the article ledger. The text field holds one assertion written as a single declarative sentence. The section field records the heading under which the assertion appears. The tier field accepts one of human, preclinical, anecdotal, mechanistic, or speculative. The source_ids array lists the identifiers of source objects that back the assertion. The evidence_basis field states whether the assertion rests on primary data, secondary synthesis, or direct observation. The materiality flag is a boolean that is true when the assertion alters a downstream decision or model state. The posted_by field records the ledger entry that introduced the voxel. The falsifier field is a short conditional statement that defines the observation or measurement that would render the assertion false. The adjacent_links array contains the ids of other claim voxels that must be read next to complete the traversal path.\n\n## Source lineage\nSource lineage for claim voxels is recorded through the source_ids array that points to objects stored at /api/articles. Each source object contains its own id, type, url, title, and summary. The lineage chain is traversed by following the source_ids from the voxel into the source object, then from the source object into any parent source objects listed in its own lineage field. The route /api/articles returns the current state of every source object referenced by voxels inside an article. The route /a/normandy shows the article that first defined the Normandy landing surface and the claim voxel structure. The route /a/oip shows the protocol specification that defines how objects are invoked and how receipts are issued. The route /api/articles/constitution returns the ledger constitution that governs claim registration and falsifier enforcement. The route /api/protocol/thread-update returns the endpoint used to append new claim voxels to an existing article ledger.\n\n## What would break this\nThe claim voxel structure breaks when any required key is missing from the JSON fragment, when the tier label does not match one of the five allowed values, when the falsifier field is empty or cannot be evaluated against observable data, when a source_id references a non-existent source object, or when the adjacent_links array creates a cycle that prevents linear traversal. The structure also breaks when the materiality flag is set to true but no downstream object or decision depends on the assertion. In each case the receipt returned by POST /api/dispatch contains an error code and the ledger entry is rejected.\n\n## OIP implication\nUnder OIP the claim voxel is the work object. Invocation occurs when a client posts the voxel JSON to POST /api/dispatch with the key set to the article slug. The ledger appends the voxel, assigns an invocation identifier, and returns a receipt at /api/dispatch?receipt=inv_ID. The receipt proves that the voxel was accepted, that its falsifier was recorded, and that its adjacent_links were validated against existing voxels. Subsequent GET /api/dispatch?invoke=KEY&body=... calls retrieve the current state of the voxel and any updated source_ids. Repair occurs when a new voxel arrives that matches the falsifier condition of an earlier voxel; the","ranking":"safety-first (interaction_risk/limitations), then quote-gated effective_weight","claims":[{"id":"c1","text":"A claim voxel stores one assertion together with tier, source_ids, evidence_basis, materiality, posted_by, falsifier, and adjacent_links.","tier":"human","weight":0.8,"section":"Claim","slot":null,"interaction_risk":false,"status":"active","source_ids":["s1"],"source_status":"sourced","why_material":"The voxel definition determines how every subsequent Normandy article records assertions and how OIP processes them.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.8,"quote_gated":false},{"id":"c2","text":"The object shape of a claim voxel is a JSON fragment containing exactly the keys id, text, section, tier, source_ids, evidence_basis, materiality, posted_by, falsifier, and adjacent_links.","tier":"human","weight":0.8,"section":"Object shape","slot":null,"interaction_risk":false,"status":"active","source_ids":["s2"],"source_status":"sourced","why_material":"Fixed keys enable machine validation and ledger traversal without ambiguity.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.8,"quote_gated":false},{"id":"c3","text":"Source lineage is followed by resolving each source_id in a voxel to the corresponding source object stored at /api/articles.","tier":"human","weight":0.8,"section":"Source lineage","slot":null,"interaction_risk":false,"status":"active","source_ids":["s3"],"source_status":"sourced","why_material":"Lineage traversal allows any client to verify the chain of evidence behind an assertion.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.8,"quote_gated":false},{"id":"c4","text":"A claim voxel is rejected by the ledger when a required key is missing, when the tier is invalid, when the falsifier is empty, or when adjacent_links form a cycle.","tier":"human","weight":0.8,"section":"What would break this","slot":null,"interaction_risk":false,"status":"active","source_ids":["s4"],"source_status":"sourced","why_material":"Rejection rules protect the integrity of the traversal graph and the falsifiability contract.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.8,"quote_gated":false},{"id":"c5","text":"Under OIP a claim voxel is invoked by POST /api/dispatch, appended to the ledger, and confirmed by a receipt that can be retrieved at /api/dispatch?receipt=inv_ID.","tier":"human","weight":0.8,"section":"OIP implication","slot":null,"interaction_risk":false,"status":"active","source_ids":["s5"],"source_status":"sourced","why_material":"The OIP loop of object, invoke, ledger, receipt, replay, repair is executed directly on the claim voxel.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.8,"quote_gated":false}],"sources":[{"id":"s1","type":"other","url":"https://miscsubjects.com/a/normandy","title":"Normandy landing surface definition","quote":"","summary":"Defines the Normandy article structure that uses claim voxels as atomic units.","claim_ids":["c1"],"link_status":"ok","quote_status":"na","hash":"7817337488a0e8cfb914459205703c099887da3394af92ac448b9db8c723cd73"},{"id":"s2","type":"other","url":"https://miscsubjects.com/a/oip","title":"Object Invocation Protocol specification","quote":"","summary":"Specifies the JSON shape and dispatch mechanics for work objects including claim voxels.","claim_ids":["c2"],"link_status":"ok","quote_status":"na","hash":"d0ab1338ee6eb0082fe1ea05ed50ff49a04aac67eae5a7ef56c2f43d9c88710b"},{"id":"s3","type":"other","url":"https://miscsubjects.com/api/articles/constitution","title":"Ledger constitution for claim registration","quote":"","summary":"States the rules for source lineage and source object resolution.","claim_ids":["c3"],"link_status":"ok","quote_status":"na","hash":"fb72d27948dce5ff20c1359bdb07fcd99eef82154a9881574fdf73d833dff3b6"},{"id":"s4","type":"other","url":"https://miscsubjects.com/api/protocol/thread-update","title":"Thread update protocol for ledger appends","quote":"","summary":"Defines the validation checks that cause a claim voxel to be rejected.","claim_ids":["c4"],"link_status":"ok","quote_status":"na","hash":"3033da1e943b12b63f3b0c28ae1a886d3dbd27386dd8ddec15783ab76c88ccb0"},{"id":"s5","type":"other","url":"https://miscsubjects.com/api/articles/oip-total-structure/bundle?format=markdown","title":"OIP total structure bundle","quote":"","summary":"Documents the full OIP loop and receipt format used for claim voxel invocation.","claim_ids":["c5"],"link_status":"ok","quote_status":"na","hash":"72eabbcde28121673522c845e26c7be34f8eb17e6413828f67cda1377b2aba3c"}],"anecdotal_sources":[],"scientific_sources":[],"user_reports":[],"related_articles":[],"question_graph":{"slug":"normandy-claim-voxel","questions":[],"evidence":[],"edges":[],"counts":{"questions":0,"evidence":0,"edges":0}},"honesty":{"active_claims":5,"retracted_claims":0,"cut_claims":0,"challenges":0,"scrub_events":0,"note":"Retracted/cut claims stay on ledger but are excluded from ask unless ?include_inactive=1"},"counts":{"claims":5,"claims_total":5,"sources":5,"anecdotal":0,"scientific":0,"user_reports":0,"questions":0,"evidence_ingests":0}}