Count Discipline — A11 Applied to Philosophy Prose
<!-- hierarchy:nav -->
Path: OIP › Objection Log › Count Discipline
Attack type answered: hand-typed integers as load-bearing claims (intent asserted as fact)
Axiom: A11 — the receipt is the proof; A0 — test every claim against its negation
Count Discipline — A11 Applied to Philosophy Prose
§SELF — oip-count-discipline
What this page is: the corpus rule that forbids bare integers in philosophy prose as load-bearing claims. What it explains: why thinker-map / catalogue / pattern counts that disagree across pages falsify rigor without touching a single idea. Why read it: this is the single most dangerous self-inflicted wound in the GRAIN corpus, and the fix is mechanical.
The rule (binding)
- 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.
- 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.
- 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.
- 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.
Minimum implementation (this patch wave)
- Titles of
thinker-mapandoip-convergence-cataloguestripped of fixed integers. - Leads rewritten to point here and to live shelves rather than absolute N.
oip-cross-pattern-structureforced to state the 7/9 forcing function or the honest downgrade.- Future: render N from
/api/articles?tag=at request time (code path). Until that ships, prose must not pretend the number is settled.
How to falsify this rule
Publish any new page whose load-bearing claim is a hand-typed count that another page contradicts. That page fails A11.
Up the tree
---
Live query (shipped)
GET https://miscsubjects.com/api/dispatch?counts=1
GET https://miscsubjects.com/api/dispatch?counts=1&format=markdownReturns 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.
Substrate rule (objection #49 — settled)
The count-discipline rule applies below the prose, to the resolution layer that serves pages.
- 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 onGET /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."
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.
Lineage: objection id 49 · receipt inv_wo6amqskhg · fix _middleware.js articleNotFoundFallback (honest 404 HTML, no alias redirect).