epiphany/spec
Levi Neuwirth b3449256f9 P13-S5 and P13-S6: the two inherited claims were both true
`epiphany-core/DECISIONS.md` had carried two Push-4a audit claims as
**unverified** through two passes, with the standing note that they "should be
checked, not inherited". Checked. Both are real, and both are Chapter 4 defects
standing in front of Push 4b rather than inside it -- which is the point of
checking before scoping, not after.

**P13-S5 -- the JI prime basis is specified at two lengths.**
`req:pitch:ji-vector-basis` says the built-in JI spaces order primes ascending
*starting with 2*, and that `components.len()` MUST equal the basis size. The
built-in pitch-space table calls `ji-5limit` "Two-dimensional (prime axes 3,
5)", `ji-7limit` three-dimensional, `ji-11limit` four-dimensional -- each
exactly one short, consistently, because the table is octave-reduced and the
requirement is full-register. `req:tuning:builtin-tuning-catalog` makes the
table normative, so a 5-limit vector is required to be both length 2 and length
3. The requirement's own octave-reduction clause does not reconcile them: it
normalizes the first component to a canonical range, it does not remove it.
Same family as P13-S2 and P13-I1, and cheaper -- a one-side edit once ratified.

**P13-S6 -- no built-in tuning system's resolution is pinned to a versioned
definition, and 14 of 20 have no definition at all.** The claim as inherited
("the named historical tunings lack exact deterministic ratio data") understates
it. It is not a missing table: `TuningResolution::Function` delegates the
historical temperaments to a `TuningFunctionId`, which Chapter 10 lists as an
*extension point*, and no built-in is mapped to a function id nor any function
id pinned. Only the six `tet-*` entries are actually specified, by
`EqualTemperament`'s structural rule. The other 14 are names: three meantone
variants, `werckmeister-iii`/`iv`, `vallotti`, `kirnberger-ii`/`iii`,
`young-ii`, `pythagorean` (the 3:2 ratio is named, the fifth-chain construction
and wolf placement are not), three `ji-static-5limit-*`, and
`ji-adaptive-5limit`. Set against `req:tuning:tuning-resolution-determinism`,
which requires determinism *across platforms*, two conforming implementations
may each choose a different published Werckmeister III and both pass -- in a
project that runs a cross-implementation conformance step.

The fix pattern is already in-house and was found by looking for it:
`req:pitch:spelling-algorithm` pins `SpellingAlgorithmId "default"` at version 1
to a named algorithm and errors on any other identifier. Nothing equivalent
exists for tuning. Which published variant each built-in denotes is a
ratification question, not an implementation one.

Both are filed open in the Batch-3 ledger. Neither was needed for 4a; both are
load-bearing for 4b, whose whole job is resolving a scale position to a
frequency.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 09:03:39 -04:00
..
vectors Text Projection: whole-document conformance, and a corpus with teeth 2026-07-21 15:44:25 -04:00
CONTRACT_P13S1_LABELS.md P13-S1: every requirement is named, and now it is also numbered 2026-07-21 18:27:52 -04:00
CONTRACT_TEXTPROJ_DOCUMENT.md Text Projection: the document layer, and the equation closes 2026-07-21 15:05:28 -04:00
CONTRACT_TEXTPROJ_OPS.md Text Projection: the operation layer, and the tests that can see it fail 2026-07-21 13:43:09 -04:00
PASS11_RATIFICATION_LOG.md P12-I2: wire the ratified MUSCLOID layout-object id derivation 2026-06-27 12:46:19 -04:00
PASS11_WORKLIST.md Pass 11: ratify provisional byte choices into normative spec text 2026-06-21 22:30:06 -04:00
PASS12_BATCH.md Pass 12 G-pass: ratify the full batch (28 rows) — spec tranche 2026-07-07 10:23:30 -04:00
PASS12_RATIFICATION_LOG.md P13-S1: every requirement is named, and now it is also numbered 2026-07-21 18:27:52 -04:00
PASS12_WORKLIST.md Pass 12 G-pass: ratify the full batch (28 rows) — spec tranche 2026-07-07 10:23:30 -04:00
PASS13_CANDIDATES.md P13-S5 and P13-S6: the two inherited claims were both true 2026-07-22 09:03:39 -04:00
PHASE2_F_WEEK0_WORKLIST.md Phase 2: spelling + decomposition pre-passes (Agent H) with F merge gate 2026-06-23 16:33:39 -04:00
PHASE2_QUICKSTART.md Phase 2: spelling + decomposition pre-passes (Agent H) with F merge gate 2026-06-23 16:33:39 -04:00
PLAN_P13S1_LABELS.md P13-S1: every requirement is named, and now it is also numbered 2026-07-21 18:27:52 -04:00
PLAN_P13S2_CMN24.md P13-S2: the alteration is space-relative, and the core fails closed 2026-07-22 09:00:09 -04:00
PLAN_TEXTPROJ_DOCUMENT.md Text Projection: the document layer, and the equation closes 2026-07-21 15:05:28 -04:00
PLAN_TEXTPROJ_OPS.md Text Projection: the operation layer, and the tests that can see it fail 2026-07-21 13:43:09 -04:00
QUICKSTART.md Pass 11: ratify provisional byte choices into normative spec text 2026-06-21 22:30:06 -04:00
binary_format.pdf P13-S1: every requirement is named, and now it is also numbered 2026-07-21 18:27:52 -04:00
binary_format.tex P13-S1: every requirement is named, and now it is also numbered 2026-07-21 18:27:52 -04:00
core_spec.pdf P13-S2: the alteration is space-relative, and the core fails closed 2026-07-22 09:00:09 -04:00
core_spec.tex P13-S2: the alteration is space-relative, and the core fails closed 2026-07-22 09:00:09 -04:00
operation_catalog.pdf P13-S2: the alteration is space-relative, and the core fails closed 2026-07-22 09:00:09 -04:00
operation_catalog.tex P13-S2: the alteration is space-relative, and the core fails closed 2026-07-22 09:00:09 -04:00
quality_metric_catalog.pdf P13-S1: every requirement is named, and now it is also numbered 2026-07-21 18:27:52 -04:00
quality_metric_catalog.tex P13-S1: every requirement is named, and now it is also numbered 2026-07-21 18:27:52 -04:00
reference_suite.pdf P13-S1: every requirement is named, and now it is also numbered 2026-07-21 18:27:52 -04:00
reference_suite.tex P13-S1: every requirement is named, and now it is also numbered 2026-07-21 18:27:52 -04:00
text_projection.pdf P13-S1: every requirement is named, and now it is also numbered 2026-07-21 18:27:52 -04:00
text_projection.tex P13-S1: every requirement is named, and now it is also numbered 2026-07-21 18:27:52 -04:00