{"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"],"model":null,"ledger":null,"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"}],"energy":{"passes":2,"tokens_in":0,"tokens_out":0,"tokens_total":0,"cost_usd":0,"models":{"grok-build":2},"head":"8c558c3fa3f9f06ce9b44143339d3dc535957718c69700511a83de06bc235a2a"},"posted_at":"2026-07-15T06:24:36.898Z","created_at":"2026-07-15T06:24:36.898Z","updated_at":"2026-07-15 07:45:40","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))'"}}}