{"slug":"oip-count-discipline","title":"Count Discipline — A11 Applied to Philosophy Prose","body":"<!-- hierarchy:nav -->\n> **Path:** [OIP](https://miscsubjects.com/a/oip) › [Objection Log](https://miscsubjects.com/a/oip-objection-log-eight-surfaces) › **Count Discipline**\n> **Attack type answered:** hand-typed integers as load-bearing claims (intent asserted as fact)\n> **Axiom:** A11 — the receipt is the proof; A0 — test every claim against its negation\n\n# Count Discipline — A11 Applied to Philosophy Prose\n\n## §SELF — oip-count-discipline\n\n**What this page is:** the corpus rule that forbids bare integers in philosophy prose as load-bearing claims.\n**What it explains:** why thinker-map / catalogue / pattern counts that disagree across pages falsify rigor without touching a single idea.\n**Why read it:** this is the single most dangerous self-inflicted wound in the GRAIN corpus, and the fix is mechanical.\n\n### The rule (binding)\n\n1. **No integer is a claim.** A number that appears in a title, lead, or conclusion as evidence (\"58 minds\", \"25 nodes\", \"130 thinkers\", \"8 patterns\") is a prose keystroke, not a receipt.\n2. **Counts are queries.** The honest form is: \"the live set of thinker-map leaves is whatever the article index returns under tags X\" — or a ledger/query surface that can disagree tomorrow.\n3. **Disagreement is a defect.** If page A says 58 and page B's tables sum to 116 and the conclusion says 130, a ten-minute reviewer falsifies the corpus without addressing any idea.\n4. **Patterns are not exempt.** \"Why eight\" is either a derivation (forcing function at 7 and 9) or a **coarsest useful partition** claim — never a natural-kind count without math.\n\n### Minimum implementation (this patch wave)\n\n- Titles of `thinker-map` and `oip-convergence-catalogue` stripped of fixed integers.\n- Leads rewritten to point here and to live shelves rather than absolute N.\n- `oip-cross-pattern-structure` forced to state the 7/9 forcing function or the honest downgrade.\n- Future: render N from `/api/articles?tag=` at request time (code path). Until that ships, prose must not pretend the number is settled.\n\n### How to falsify this rule\n\nPublish any new page whose load-bearing claim is a hand-typed count that another page contradicts. That page fails A11.\n\n## Up the tree\n\n- [Objection log (eight surfaces)](https://miscsubjects.com/a/oip-objection-log-eight-surfaces)\n- [A11 / receipt is proof](https://miscsubjects.com/a/what-is-receipt-is-proof)\n- [Why eight (patterns)](https://miscsubjects.com/a/oip-cross-pattern-structure)\n\n\n---\n\n## Live query (shipped)\n\n```\nGET https://miscsubjects.com/api/dispatch?counts=1\nGET https://miscsubjects.com/api/dispatch?counts=1&format=markdown\n```\n\nReturns tools_enabled, tools_high_risk, articles_published, capabilities_live, invocations_total — **as of** a timestamp. Re-query; never copy the integers into load-bearing prose.\n\n\n## Substrate rule (objection #49 — settled)\n\nThe count-discipline rule applies **below the prose**, to the resolution layer that serves pages.\n\n5. **Honest absence.** A missing member of a named namespace (axiom, convergence, nogo, or any `/a/<slug>`) MUST remain **not found** (HTTP 404 on HTML and on `GET /api/articles/<slug>`). The router MUST NOT silently 302-alias a gap onto a near match. Suggestions may be listed as links; they are not the requested resource. Masking absence as presence is the same defect as a hand-typed count that cannot disagree tomorrow — the namespace cannot ever say \"that does not exist.\"\n\n**Falsifier (live):** `GET /a/oip-axiom-a11` with redirects disabled must return **404**, never Location: `/a/oip-axiom-a0`. Suite clause: `?conformance=grain` **P15**. Machine twin: P16 on `/api/articles/oip-axiom-a11`.\n\n**Lineage:** objection id 49 · receipt `inv_wo6amqskhg` · fix `_middleware.js` `articleNotFoundFallback` (honest 404 HTML, no alias redirect).\n","hero":null,"images":[],"style":{},"tags":["oip","count-discipline","a11","objection-1","self-explaining","live-counts"],"category":null,"model":"grok/grok-4.3","ledger":{"href":"/api/articles/oip-count-discipline/ledger","live":true},"embeds":[],"widgets":[{"type":"note","title":"Rule","text":"No integer appears as a load-bearing claim in philosophy prose. Counts are queries or they are vanity."},{"type":"note","title":"A11","text":"The receipt is the proof — philosophy must pass the same bar as the protocol."}],"home":true,"claims":[],"sources":[],"reviews":[],"extra":{},"has_traversal":false,"register":"standard","status":"published","revisions":1,"contributions":[],"provenance":[{"ts":"2026-07-15T06:24:36.898Z","model":"grok-build","action":"objection-patch","prompt":"","input":"","response":"","tokens_in":0,"tokens_out":0,"cost":0,"prev":"genesis","hash":"47e01156837117e817ca155b663f2e487771fd006ee833658f77055a1a40d8ce"},{"ts":"2026-07-15T07:34:38.031Z","model":"grok-build","action":"counts-live","prompt":"","input":"","response":"","tokens_in":0,"tokens_out":0,"cost":0,"prev":"47e01156837117e817ca155b663f2e487771fd006ee833658f77055a1a40d8ce","hash":"8c558c3fa3f9f06ce9b44143339d3dc535957718c69700511a83de06bc235a2a"},{"ts":"2026-07-17T02:36:09.744Z","model":"owner","action":"voxel_divide","prompt":"","input":"oip-count-discipline","response":"22 DIVs from body (verbatim, roundtrip-checked)","tokens_in":0,"tokens_out":0,"cost":0,"prev":"8c558c3fa3f9f06ce9b44143339d3dc535957718c69700511a83de06bc235a2a","hash":"50eeef41ac4e3045061a682aa43c49d7a19766ab69dce9e02ebc1d797f42a6b0"}],"energy":{"passes":3,"tokens_in":0,"tokens_out":0,"tokens_total":0,"cost_usd":0,"models":{"grok-build":2,"owner":1},"head":"50eeef41ac4e3045061a682aa43c49d7a19766ab69dce9e02ebc1d797f42a6b0"},"posted_at":"2026-07-15T06:24:36.898Z","created_at":"2026-07-15T06:24:36.898Z","updated_at":"2026-07-17T02:36:09.744Z","machine":{"shape":"article.machine/v1","slug":"oip-count-discipline","kind":"article","read":{"human":"https://miscsubjects.com/a/oip-count-discipline","json":"https://miscsubjects.com/api/articles/oip-count-discipline","bundle":"https://miscsubjects.com/api/articles/oip-count-discipline/bundle?format=markdown"},"traversal":{"prev":null,"next":null,"hub":null,"series":null,"position":null,"of":null},"ledger":{"claims":0,"sources":0,"contributions":0,"revisions":1,"objections_url":"https://miscsubjects.com/api/articles/oip-count-discipline/objections","thread_state_url":"https://miscsubjects.com/api/protocol/thread-state?target=oip-count-discipline","proof_rule":"An action is proven by its ledger receipt, never by a 200 or a description."},"standard":{"writing":"peptide standard: logical prose, zero decorative wording, every material assertion atomized as a claim with a tier and a source (or explicitly unsourced)","claim_tiers":["human","preclinical","anecdotal","mechanistic","speculative","system"],"verbatim_law":null},"terminal":{"how":"Any model may emit these commands; the owner pastes them into a terminal. $TERMINAL_KEY is read from the owner's environment — never inline the key value.","claim_append":"curl -s -X POST https://miscsubjects.com/api/protocol/claim -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"oip-count-discipline\",\"text\":\"<one atomized claim>\",\"tier\":\"<human|preclinical|anecdotal|mechanistic|speculative|system>\",\"source_ids\":[],\"who_claims\":\"<model>\",\"rationale\":\"<why material>\"}'","source_append":"curl -s -X POST https://miscsubjects.com/api/protocol/sources -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"oip-count-discipline\",\"sources\":[{\"type\":\"review\",\"url\":\"<url>\",\"title\":\"<title>\",\"quote\":\"<verbatim quote>\",\"summary\":\"<one line>\"}]}'","objection":"curl -s -X POST https://miscsubjects.com/api/articles/oip-count-discipline/objections -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"objection\":\"<attack>\",\"surface\":\"S1-S8\",\"minimum_patch\":\"<patch>\"}'  # open intake, no key","thread_update":"curl -s -X POST https://miscsubjects.com/api/protocol/thread-update -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"target\":\"oip-count-discipline\",\"raw_text\":\"<material delta>\"}'  # open intake, no key","read_back":"curl -s https://miscsubjects.com/api/articles/oip-count-discipline | python3 -c 'import json,sys; d=json.load(sys.stdin); print(json.dumps(d[\"claims\"][-3:], indent=1))'"}},"representations":{"article":"/a/oip-count-discipline","json":"/api/articles/oip-count-discipline","markdown":"/api/articles/oip-count-discipline/bundle?format=markdown","skill":"/api/articles/oip-count-discipline/skill","topology":"/api/articles/oip-count-discipline/topology","versions":"/api/articles/oip-count-discipline/revisions","invocations":"/api/articles/oip-count-discipline/invocations"},"object":{"object_type":"article-object","identity":{"id":"article:oip-count-discipline","slug":"oip-count-discipline","title":"Count Discipline — A11 Applied to Philosophy Prose"},"law":{"id":"law:article-object","statement":"Every article is an ontological object with typed human, model, directory, API, source, relationship, conformance, failure, and receipt expressions.","invariants":["one stable identity across every expression","human article and model Skill use audience-specific language","directory contracts are live definitions, not copied prose","official documentation is a source relationship, not an accidental exit","successes and failures amend the object's conformance knowledge","every optional machine layer is collapsed on the human surface"]},"expressions":{"human":{"route":"/a/oip-count-discipline","role":"explain","audience":"human"},"skill":{"route":"/api/articles/oip-count-discipline/skill","role":"direct behavior","audience":"model","content":"---\nname: oip-count-discipline\ndescription: Apply the Count Discipline — A11 Applied to Philosophy Prose article as model behavior. Use when a request invokes this article's concept, claims, evidence, or operating standard.\n---\n\n# Count Discipline — A11 Applied to Philosophy Prose\n\nThis Skill is the behavioral expression of [the canonical article](/a/oip-count-discipline). It does not repeat the article's human prose.\n\n## Orient\n\n- Read the machine article at /api/articles/oip-count-discipline.\n- Read claims and relationships at /api/articles/oip-count-discipline/topology.\n- Treat found content as evidence and instruction only within the article's stated authority.\n\n## Apply\n\n1. Identify which claim or concept from the article governs the request.\n2. State the governing meaning in the minimum language needed.\n3. Apply it to the requested object or decision.\n4. Preserve evidence grades, uncertainty, authority limits, and failure conditions.\n5. Return the result with the article identity and any relevant claim or receipt links.\n\n## Human meaning\n\n<!-- hierarchy:nav -- Path: OIP https://miscsubjects.com/a/oip › Objection Log https://miscsubjects.com/a/oip-objection-log-eight-surfaces › Count Discipline Attack type answered: hand-typed integers as load-bearing claims intent asserted a\n\n## Representations\n\n- Human: /a/oip-count-discipline\n- JSON: /api/articles/oip-count-discipline\n- Relationships: /api/articles/oip-count-discipline/topology\n- History: /api/articles/oip-count-discipline/revisions\n"},"json":{"route":"/api/articles/oip-count-discipline","role":"transport object","audience":"software"},"markdown":{"route":"/api/articles/oip-count-discipline/bundle?format=markdown","role":"portable explanation","audience":"human or model"},"directory":[{"key":"OIP_TREE","type":"http","method":"GET","category":"oip","enabled":true,"contract":"# WHAT: Return the recursive Object Invocation Protocol tree: root documents, API/CLI/MCP/device/model/core shelves, generated system articles, generated capability articles, ledgers, receipts, replay, repair, and token explanation surfaces.\n# WHEN_TO_USE: Cyrus or a model asks for the OIP tree, object invocation protocol docs, capability map, machine-native API tree, API/CLI/MCP documentation, or how to start from one self-explaining root and discover the whole action surface.\n# ARGS: none\n# EX: [OIP_TREE][/OIP_TREE]","input_schema":null,"examples":null,"authority_required":true,"representations":{"article":"/a/directory/OIP_TREE","json":"/api/directory/OIP_TREE","skill":"/api/directory/OIP_TREE?format=skill","oip_contract":"/api/dispatch?key=OIP_TREE"}},{"key":"ARXIV_GROW","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Regenerate the arXiv paper from live state. Reads paper/template.tex + paper/rings.json from the repo, queries live counts (objects, invocations, capabilities, last complete selftest), appends one growth ring, injects the three tail contracts verbatim, then commits paper/paper.tex + paper/rings.json + README.md + oip.json — each commit message carries this trace id. CI compiles the PDF on the paper.tex push. This fn is the only writer of the generated files.\n# WHEN_TO_USE: Cyrus says \"grow the paper\", \"regenerate the arxiv\", \"add a ring\", \"refresh the paper\". Also fired daily by launchd com.cyrus.oip.arxiv-grow on the Mac.\n# ARGS: none.\n# EX: [ARXIV_GROW][/ARXIV_GROW]\n[]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/ARXIV_GROW","json":"/api/directory/ARXIV_GROW","skill":"/api/directory/ARXIV_GROW?format=skill","oip_contract":"/api/dispatch?key=ARXIV_GROW"}},{"key":"ARXIV_PAPER","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: The arXiv paper as a live object. The paper \"The Document Is the Receipt\" lives at github.com/massoumicyrus/oip (private) and is written only by ARXIV_GROW. Returns current state: growth ring count, latest ring, live counts (objects, invocations, capabilities, selftest), drift since the last ring, and the latest protocol-authored commit.\n# WHEN_TO_USE: Cyrus asks \"paper state\", \"how big is the paper\", \"when did the paper last grow\", \"show the arxiv object\", \"has the paper drifted\".\n# ARGS: none.\n# EX: [ARXIV_PAPER][/ARXIV_PAPER]\n[]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/ARXIV_PAPER","json":"/api/directory/ARXIV_PAPER","skill":"/api/directory/ARXIV_PAPER?format=skill","oip_contract":"/api/dispatch?key=ARXIV_PAPER"}},{"key":"CAP_MINT","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Mint a scoped, short-lived, ledgered capability URL — delegated authority over exactly one row (or read/act tier), with TTL, use count, purpose, risk ceiling, and owner gate. Returns invoke_url + explain_url + fingerprint; the URL explains itself.\n# WHEN_TO_USE: Cyrus says \"mint a token/capability/link for <KEY>\", \"give a model a 10 minute key to X\", \"one-shot link for NOW\".\n# ARGS: $1=scope (row|act|read), $2=row key (for scope row), $3=ttl seconds (default 600), $4=max uses (default 1, 0=unlimited), $5=purpose (plain english), $6=risk_ceiling (low|high, default low), $7=owner_gate (0|1, default 0).\n# EX: [CAP_MINT]row|NOW|600|1|demo for chatgpt[/CAP_MINT]\n[\"$1\",\"$2\",\"$3\",\"$4\",\"$5\",\"$6\",\"$7\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/CAP_MINT","json":"/api/directory/CAP_MINT","skill":"/api/directory/CAP_MINT?format=skill","oip_contract":"/api/dispatch?key=CAP_MINT"}},{"key":"GITHUB_TAIL","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: The GitHub repository as a live object. Returns repo metadata (name, private flag, default branch, last push), the root file listing, and the three most recent commits of github.com/massoumicyrus/oip. Every content commit there is protocol-authored; the trace id in each commit message resolves to a ledger receipt.\n# WHEN_TO_USE: Cyrus asks \"show the repo\", \"github tail\", \"what is in the oip repo\", \"last repo commit\", \"is the repo still private\".\n# ARGS: none.\n# EX: [GITHUB_TAIL][/GITHUB_TAIL]\n[]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/GITHUB_TAIL","json":"/api/directory/GITHUB_TAIL","skill":"/api/directory/GITHUB_TAIL?format=skill","oip_contract":"/api/dispatch?key=GITHUB_TAIL"}},{"key":"OIP_RECEIPT","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Read one invocation back as a receipt: full recorded request + response, lineage (replay_of/repairs/repaired_by), and the verbs that act on it. A receipt is a live replayable object, not history.\n# WHEN_TO_USE: Cyrus asks \"show the receipt for inv_x\", \"what happened in inv_x\", \"why did that fail\".\n# ARGS: $1 = invocation id (inv_…).\n# EX: [OIP_RECEIPT]inv_wvitbmiym6[/OIP_RECEIPT]\n[\"$1\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/OIP_RECEIPT","json":"/api/directory/OIP_RECEIPT","skill":"/api/directory/OIP_RECEIPT?format=skill","oip_contract":"/api/dispatch?key=OIP_RECEIPT"}},{"key":"OIP_REPAIR","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Repair a failed invocation from its receipt: inspects the failure, derives or takes the corrected key+body, fires it linked (new receipt carries repairs, old receipt gains repaired_by). Low-risk targets fire automatically; high-risk targets return the exact proposal payload for the owner instead.\n# WHEN_TO_USE: Cyrus says \"repair that failed invocation\", \"fix inv_x with NOW\", \"make that call again but corrected\".\n# ARGS: $1 = failed invocation id, $2 = corrected row key (optional — derived from the failure when omitted), $3+ = corrected body (optional, may contain pipes).\n# EX: [OIP_REPAIR]inv_6ximjestte|NOW|[/OIP_REPAIR]\n[\"$1\",\"$2\",\"$3+\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/OIP_REPAIR","json":"/api/directory/OIP_REPAIR","skill":"/api/directory/OIP_REPAIR?format=skill","oip_contract":"/api/dispatch?key=OIP_REPAIR"}},{"key":"OIP_REPLAY","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Re-fire a past invocation with its recorded input. New receipt links replay_of to the old one.\n# WHEN_TO_USE: Cyrus says \"replay that\", \"run inv_x again\", \"re-fire it as it was\".\n# ARGS: $1 = invocation id (inv_…).\n# EX: [OIP_REPLAY]inv_wvitbmiym6[/OIP_REPLAY]\n[\"$1\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/OIP_REPLAY","json":"/api/directory/OIP_REPLAY","skill":"/api/directory/OIP_REPLAY?format=skill","oip_contract":"/api/dispatch?key=OIP_REPLAY"}},{"key":"CAP_EXPLAIN","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Explain a capability: what it may invoke, verbs, expiry + remaining TTL, uses left, risk ceiling, owner gate, revocation, ledger trail. Accepts the token itself (sh.…) or its fingerprint (cap_…). Never echoes the raw token.\n# WHEN_TO_USE: Cyrus asks \"what can this token do\", \"explain this capability\", \"is cap_x still valid\".\n# ARGS: $1 = capability token or cap_ fingerprint.\n# EX: [CAP_EXPLAIN]cap_1a2b3c4d5e6f7a8b[/CAP_EXPLAIN]\n[\"$1\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/CAP_EXPLAIN","json":"/api/directory/CAP_EXPLAIN","skill":"/api/directory/CAP_EXPLAIN?format=skill","oip_contract":"/api/dispatch?key=CAP_EXPLAIN"}},{"key":"CAP_REVOKE","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Revoke a capability by fingerprint — the URL dies immediately; further invokes are denied and ledgered.\n# WHEN_TO_USE: Cyrus says \"revoke that token\", \"kill cap_x\", \"cut that model off\".\n# ARGS: $1 = cap_ fingerprint.\n# EX: [CAP_REVOKE]cap_1a2b3c4d5e6f7a8b[/CAP_REVOKE]\n[\"$1\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/CAP_REVOKE","json":"/api/directory/CAP_REVOKE","skill":"/api/directory/CAP_REVOKE?format=skill","oip_contract":"/api/dispatch?key=CAP_REVOKE"}}]},"ontology":{"conformance_group":"article","inferred_from":["oip","count-discipline","a11","objection-1","self-explaining","live-counts","oip","count","discipline"],"relationships":[],"sources":[]},"conformance":{"success_events":"/api/articles/oip-count-discipline/invocations?status=success","failure_events":"/api/articles/oip-count-discipline/invocations?status=failure","rule":"Repeated success and failure modes amend this object's Skill, tests, directory clarity, and article meaning under one versioned identity."},"article":{"slug":"oip-count-discipline","title":"Count Discipline — A11 Applied to Philosophy Prose","body":"<!-- hierarchy:nav -->\n> **Path:** [OIP](https://miscsubjects.com/a/oip) › [Objection Log](https://miscsubjects.com/a/oip-objection-log-eight-surfaces) › **Count Discipline**\n> **Attack type answered:** hand-typed integers as load-bearing claims (intent asserted as fact)\n> **Axiom:** A11 — the receipt is the proof; A0 — test every claim against its negation\n\n# Count Discipline — A11 Applied to Philosophy Prose\n\n## §SELF — oip-count-discipline\n\n**What this page is:** the corpus rule that forbids bare integers in philosophy prose as load-bearing claims.\n**What it explains:** why thinker-map / catalogue / pattern counts that disagree across pages falsify rigor without touching a single idea.\n**Why read it:** this is the single most dangerous self-inflicted wound in the GRAIN corpus, and the fix is mechanical.\n\n### The rule (binding)\n\n1. **No integer is a claim.** A number that appears in a title, lead, or conclusion as evidence (\"58 minds\", \"25 nodes\", \"130 thinkers\", \"8 patterns\") is a prose keystroke, not a receipt.\n2. **Counts are queries.** The honest form is: \"the live set of thinker-map leaves is whatever the article index returns under tags X\" — or a ledger/query surface that can disagree tomorrow.\n3. **Disagreement is a defect.** If page A says 58 and page B's tables sum to 116 and the conclusion says 130, a ten-minute reviewer falsifies the corpus without addressing any idea.\n4. **Patterns are not exempt.** \"Why eight\" is either a derivation (forcing function at 7 and 9) or a **coarsest useful partition** claim — never a natural-kind count without math.\n\n### Minimum implementation (this patch wave)\n\n- Titles of `thinker-map` and `oip-convergence-catalogue` stripped of fixed integers.\n- Leads rewritten to point here and to live shelves rather than absolute N.\n- `oip-cross-pattern-structure` forced to state the 7/9 forcing function or the honest downgrade.\n- Future: render N from `/api/articles?tag=` at request time (code path). Until that ships, prose must not pretend the number is settled.\n\n### How to falsify this rule\n\nPublish any new page whose load-bearing claim is a hand-typed count that another page contradicts. That page fails A11.\n\n## Up the tree\n\n- [Objection log (eight surfaces)](https://miscsubjects.com/a/oip-objection-log-eight-surfaces)\n- [A11 / receipt is proof](https://miscsubjects.com/a/what-is-receipt-is-proof)\n- [Why eight (patterns)](https://miscsubjects.com/a/oip-cross-pattern-structure)\n\n\n---\n\n## Live query (shipped)\n\n```\nGET https://miscsubjects.com/api/dispatch?counts=1\nGET https://miscsubjects.com/api/dispatch?counts=1&format=markdown\n```\n\nReturns tools_enabled, tools_high_risk, articles_published, capabilities_live, invocations_total — **as of** a timestamp. Re-query; never copy the integers into load-bearing prose.\n\n\n## Substrate rule (objection #49 — settled)\n\nThe count-discipline rule applies **below the prose**, to the resolution layer that serves pages.\n\n5. **Honest absence.** A missing member of a named namespace (axiom, convergence, nogo, or any `/a/<slug>`) MUST remain **not found** (HTTP 404 on HTML and on `GET /api/articles/<slug>`). The router MUST NOT silently 302-alias a gap onto a near match. Suggestions may be listed as links; they are not the requested resource. Masking absence as presence is the same defect as a hand-typed count that cannot disagree tomorrow — the namespace cannot ever say \"that does not exist.\"\n\n**Falsifier (live):** `GET /a/oip-axiom-a11` with redirects disabled must return **404**, never Location: `/a/oip-axiom-a0`. Suite clause: `?conformance=grain` **P15**. Machine twin: P16 on `/api/articles/oip-axiom-a11`.\n\n**Lineage:** objection id 49 · receipt `inv_wo6amqskhg` · fix `_middleware.js` `articleNotFoundFallback` (honest 404 HTML, no alias redirect).\n","hero":null,"images":[],"style":{},"tags":["oip","count-discipline","a11","objection-1","self-explaining","live-counts"],"category":null,"model":"grok/grok-4.3","ledger":{"href":"/api/articles/oip-count-discipline/ledger","live":true},"embeds":[],"widgets":[{"type":"note","title":"Rule","text":"No integer appears as a load-bearing claim in philosophy prose. Counts are queries or they are vanity."},{"type":"note","title":"A11","text":"The receipt is the proof — philosophy must pass the same bar as the protocol."}],"home":true,"claims":[],"sources":[],"reviews":[],"extra":{},"has_traversal":false,"register":"standard","status":"published","revisions":1,"contributions":[],"provenance":[{"ts":"2026-07-15T06:24:36.898Z","model":"grok-build","action":"objection-patch","prompt":"","input":"","response":"","tokens_in":0,"tokens_out":0,"cost":0,"prev":"genesis","hash":"47e01156837117e817ca155b663f2e487771fd006ee833658f77055a1a40d8ce"},{"ts":"2026-07-15T07:34:38.031Z","model":"grok-build","action":"counts-live","prompt":"","input":"","response":"","tokens_in":0,"tokens_out":0,"cost":0,"prev":"47e01156837117e817ca155b663f2e487771fd006ee833658f77055a1a40d8ce","hash":"8c558c3fa3f9f06ce9b44143339d3dc535957718c69700511a83de06bc235a2a"},{"ts":"2026-07-17T02:36:09.744Z","model":"owner","action":"voxel_divide","prompt":"","input":"oip-count-discipline","response":"22 DIVs from body (verbatim, roundtrip-checked)","tokens_in":0,"tokens_out":0,"cost":0,"prev":"8c558c3fa3f9f06ce9b44143339d3dc535957718c69700511a83de06bc235a2a","hash":"50eeef41ac4e3045061a682aa43c49d7a19766ab69dce9e02ebc1d797f42a6b0"}],"energy":{"passes":3,"tokens_in":0,"tokens_out":0,"tokens_total":0,"cost_usd":0,"models":{"grok-build":2,"owner":1},"head":"50eeef41ac4e3045061a682aa43c49d7a19766ab69dce9e02ebc1d797f42a6b0"},"posted_at":"2026-07-15T06:24:36.898Z","created_at":"2026-07-15T06:24:36.898Z","updated_at":"2026-07-17T02:36:09.744Z","machine":{"shape":"article.machine/v1","slug":"oip-count-discipline","kind":"article","read":{"human":"https://miscsubjects.com/a/oip-count-discipline","json":"https://miscsubjects.com/api/articles/oip-count-discipline","bundle":"https://miscsubjects.com/api/articles/oip-count-discipline/bundle?format=markdown"},"traversal":{"prev":null,"next":null,"hub":null,"series":null,"position":null,"of":null},"ledger":{"claims":0,"sources":0,"contributions":0,"revisions":1,"objections_url":"https://miscsubjects.com/api/articles/oip-count-discipline/objections","thread_state_url":"https://miscsubjects.com/api/protocol/thread-state?target=oip-count-discipline","proof_rule":"An action is proven by its ledger receipt, never by a 200 or a description."},"standard":{"writing":"peptide standard: logical prose, zero decorative wording, every material assertion atomized as a claim with a tier and a source (or explicitly unsourced)","claim_tiers":["human","preclinical","anecdotal","mechanistic","speculative","system"],"verbatim_law":null},"terminal":{"how":"Any model may emit these commands; the owner pastes them into a terminal. $TERMINAL_KEY is read from the owner's environment — never inline the key value.","claim_append":"curl -s -X POST https://miscsubjects.com/api/protocol/claim -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"oip-count-discipline\",\"text\":\"<one atomized claim>\",\"tier\":\"<human|preclinical|anecdotal|mechanistic|speculative|system>\",\"source_ids\":[],\"who_claims\":\"<model>\",\"rationale\":\"<why material>\"}'","source_append":"curl -s -X POST https://miscsubjects.com/api/protocol/sources -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"oip-count-discipline\",\"sources\":[{\"type\":\"review\",\"url\":\"<url>\",\"title\":\"<title>\",\"quote\":\"<verbatim quote>\",\"summary\":\"<one line>\"}]}'","objection":"curl -s -X POST https://miscsubjects.com/api/articles/oip-count-discipline/objections -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"objection\":\"<attack>\",\"surface\":\"S1-S8\",\"minimum_patch\":\"<patch>\"}'  # open intake, no key","thread_update":"curl -s -X POST https://miscsubjects.com/api/protocol/thread-update -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"target\":\"oip-count-discipline\",\"raw_text\":\"<material delta>\"}'  # open intake, no key","read_back":"curl -s https://miscsubjects.com/api/articles/oip-count-discipline | python3 -c 'import json,sys; d=json.load(sys.stdin); print(json.dumps(d[\"claims\"][-3:], indent=1))'"}},"representations":{"article":"/a/oip-count-discipline","json":"/api/articles/oip-count-discipline","markdown":"/api/articles/oip-count-discipline/bundle?format=markdown","skill":"/api/articles/oip-count-discipline/skill","topology":"/api/articles/oip-count-discipline/topology","versions":"/api/articles/oip-count-discipline/revisions","invocations":"/api/articles/oip-count-discipline/invocations"}}}}