docs: propagate kernel/sub-battery counts to canonical surfaces

Reviewer-flagged errata in the dav1dprometheus comm doc surfaced
two real drifts in canonical docs that needed correction:

docs/_source/pi-star.rst:
  - "Fifteen concrete π*'s" -> "Sixteen". The table was missing
    combinatorics@v1 (#000032). Authoritative count comes from
    arborist.pi_star.registry.REGISTRY itself, with a note saying
    so. Each entry called out as behaviorally immutable, with
    forward link to docs/spec-methodology.md section 1.1 where the
    versioning rule is canonical.

docs/dav1dprometheus-update-2026-05-09.md:
  - Reverts a regression introduced in the previous errata pass
    (455fc10). The reviewer counted 5 axes x 5 = 20 sub-batteries,
    but 5T carries 6 (legacy 'transfer' from SQD-whitepaper plus
    the canonical Dav1DPrometheus five, kept side-by-side per
    ticket #000024). Total is 21, not 20. Top-of-doc revision
    note records the correction, body section restores the 21
    count with the explicit 5+6+5+5 explanation.

Other reviewer points are already canonical (kernel-version
immutability is in docs/spec-methodology.md section 1.1) or are
editorial-only and don't require canonical-doc changes.

Tested:
  - len(REGISTRY) == 16 (verified live)
  - bench/batteries/runner.py enumerates 21 sub-batteries
    (5+6+5+5 per file naming under bench/fixtures/5{s,t,f,r}/)
This commit is contained in:
russell@unturf.com 2026-05-09 17:27:02 -04:00
parent 455fc10c2a
commit 0e4f050e8c
No known key found for this signature in database
2 changed files with 52 additions and 31 deletions

View file

@ -11,28 +11,38 @@ the equivalence-class identity.
Registry overview
-----------------
Lookup is by ``name@version`` key. **Fifteen** concrete π*'s ship
Lookup is by ``name@version`` key. **Sixteen** concrete π*'s ship
today; the registry has no remaining reserved stubs.
================================ ================= =====================================================
Key Domain Status
================================ ================= =====================================================
``wikitext-base@v1`` text Wikitext → plain prose
``claim-lattice@v1`` text Claim lines → JSON parsed-claim list
``code-py-ast@v1`` code Python source → canonical AST S-expression
``arithmetic@v1`` arithmetic Expression → exact rational ``num/den`` (SQD §14.1)
``logic-kernel@v1`` logic Boolean expression → canonical CNF (SQD §14.3)
``time-series-quantized@v1`` time-series JSON sample array → quantized integer vector (SQD §13.5)
``tabular-pinned@v1`` tabular JSON-rows → pinned-schema canonical bytes
``algebra-symbolic@v1`` symbolic-algebra SymPy ``expand + srepr`` (#000030 Phase 1)
``algebra-symbolic-simplified@v1`` symbolic-algebra SymPy ``simplify + srepr`` — collapses trig identities
``calculus-derivative@v1`` calculus ``sp.diff`` re-canonicalized through algebra-symbolic
``calculus-integral@v1`` calculus ``sp.integrate`` + unevaluated-Integral sentinel
``calculus-limit@v1`` calculus ``sp.limit`` + ±∞/complex-infinity sentinels
``calculus-series@v1`` calculus Truncated Taylor / Maclaurin (drops ``O(x**n)``)
``linear-algebra@v1`` linear-algebra RREF / det / eigenvalues / inverse via ``{op, matrix}``
``function-sampled@v1`` function-sampled SymPy expr → quantized integer vector (bridge to time-series)
================================ ================= =====================================================
================================== ================== =====================================================
Key Domain Status
================================== ================== =====================================================
``wikitext-base@v1`` text Wikitext → plain prose
``claim-lattice@v1`` text Claim lines → JSON parsed-claim list
``code-py-ast@v1`` code Python source → canonical AST S-expression
``arithmetic@v1`` arithmetic Expression → exact rational ``num/den`` (SQD §14.1)
``logic-kernel@v1`` logic Boolean expression → canonical CNF (SQD §14.3)
``time-series-quantized@v1`` time-series JSON sample array → quantized integer vector (SQD §13.5)
``tabular-pinned@v1`` tabular JSON-rows → pinned-schema canonical bytes
``algebra-symbolic@v1`` symbolic-algebra SymPy ``expand + srepr`` (#000030 Phase 1)
``algebra-symbolic-simplified@v1`` symbolic-algebra SymPy ``simplify + srepr`` — collapses trig identities
``calculus-derivative@v1`` calculus ``sp.diff`` re-canonicalized through algebra-symbolic
``calculus-integral@v1`` calculus ``sp.integrate`` + unevaluated-Integral sentinel
``calculus-limit@v1`` calculus ``sp.limit`` + ±∞/complex-infinity sentinels
``calculus-series@v1`` calculus Truncated Taylor / Maclaurin (drops ``O(x**n)``)
``linear-algebra@v1`` linear-algebra RREF / det / eigenvalues / inverse via ``{op, matrix}``
``function-sampled@v1`` function-sampled SymPy expr → quantized integer vector (bridge to time-series)
``combinatorics@v1`` combinatorics Pure-integer counting kernel (#000032; fails closed on non-non-negative-integer results)
================================== ================== =====================================================
Authoritative count comes from
:data:`arborist.pi_star.registry.REGISTRY` itself; if this table
drifts from ``len(REGISTRY)`` the table is wrong, not the registry.
Each entry is **behaviorally immutable** — any byte-affecting
change to a registered ``name@version`` requires a new version
key, never an in-place patch (otherwise prior persisted canonical-
cache rows become semantically unstable). Full versioning rule
in ``docs/spec-methodology.md`` §1.1.
The math π*'s (algebra-symbolic / calculus-* / linear-algebra /
function-sampled) gate on the optional ``[math]`` extra:

View file

@ -11,7 +11,7 @@ into a Merkle-AGI-v9.8 substrate.
> **Revision note (2026-05-10):** an external review surfaced
> several errata in the original (2026-05-09) draft. Corrections
> applied in-place: the sub-battery count is **20** (not 21);
> applied in-place:
> 5S vocabulary is **Syntax / Semantics / Syllogism / Synthesis /
> Semiotics** (not Surface/Substrate/…); 5R vocabulary is **React /
> Rearrange / Restore / Replicate / Resonate** (not React/Recall/
@ -24,6 +24,16 @@ into a Merkle-AGI-v9.8 substrate.
> EVIDENCE-WARRANTED; license tags are flagged as project-reported;
> the "no human labelers" property is scoped to canonical-shape
> domains only. Original draft preserved at commit `a2ff9d4`.
>
> The reviewer also flagged the sub-battery count as 20 vs the
> document's 21. The codebase has **21**: 5+6+5+5, because 5T
> carries 6 sub-batteries — the original SQD-whitepaper
> ``transfer`` plus the canonical Dav1DPrometheus five
> (Transfer Learning, Truthtables, Time, Triangulation,
> Transitivity), per ticket #000024 which preserved the legacy
> name alongside the authoritative wording. Earlier in this
> revision pass the count was incorrectly downgraded to 20 — that
> regression is corrected here.
---
@ -34,10 +44,11 @@ with a v9.8 audit chain — adopted your taxonomy in the first week
of May 2026 and landed the full benchmark surface in eight days.
Concretely:
### The 20 sub-batteries are real, fixtures included
### The 21 sub-batteries are real, fixtures included
Five axes × five sub-batteries each = **20 sub-batteries**, each
fixture-backed and runnable through `bench/batteries/runner.py`:
Four axes × five canonical sub-batteries + 5T's preserved legacy
sub-battery = **21 sub-batteries**, each fixture-backed and runnable
through `bench/batteries/runner.py`:
```
5S — Syntax / Semantics / Syllogism / Synthesis / Semiotics
@ -49,18 +60,18 @@ fixture-backed and runnable through `bench/batteries/runner.py`:
5 sub-batteries × ~50 synthetic + ~50 live each (Phase 1b.2
live wire-ups land on real arborist subsystems)
5T — Time / Truthtables / Transfer Learning / Triangulation /
Transitivity
5 sub-batteries
Transitivity (canonical Dav1DPrometheus five)
+ Transfer (legacy SQD-whitepaper sub-battery, kept alongside
Transfer Learning per ticket #000024)
6 sub-batteries total
5R — React / Rearrange / Restore / Replicate / Resonate
5 sub-batteries (workspace-operator shape, per SQD §9.3 —
deterministic, no LLM-as-judge)
```
(An earlier draft of this note miscounted the sub-batteries as 21
and mis-spelled 5S as Surface/Substrate/… and 5R as React/Recall/
Reason/Refine/Restore. The fixtures + runner in `bench/batteries/`
are the authority — corrected here. The 21-vs-20 confusion came
from ticket #000021's number bleeding into the count.)
(An earlier draft of this note mis-spelled 5S as Surface/Substrate/…
and 5R as React/Recall/Reason/Refine/Restore. The fixtures +
runner in `bench/batteries/` are the authority — corrected here.)
Total deterministic-task surface: **662 tasks** in the default
runner (per the runner's `--all` enumeration), plus several