---
slug: oip-count-discipline
title: Count Discipline — A11 Applied to Philosophy Prose
canonical: https://miscsubjects.com/a/oip-count-discipline
---

<!-- 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 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)

1. **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.
2. **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.
3. **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.
4. **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-map` and `oip-convergence-catalogue` stripped of fixed integers.
- Leads rewritten to point here and to live shelves rather than absolute N.
- `oip-cross-pattern-structure` forced 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

- [Objection log (eight surfaces)](https://miscsubjects.com/a/oip-objection-log-eight-surfaces)
- [A11 / receipt is proof](https://miscsubjects.com/a/what-is-receipt-is-proof)
- [Why eight (patterns)](https://miscsubjects.com/a/oip-cross-pattern-structure)


---

## Live query (shipped)

```
GET https://miscsubjects.com/api/dispatch?counts=1
GET https://miscsubjects.com/api/dispatch?counts=1&format=markdown
```

Returns 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.

5. **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."

**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).

