`packs.compiler._blend_feature_versors` ignores its strength argument and
returns the target verbatim. All three "nudge" sites — cross-language alignment
(0.10), morphology clustering (0.40), mount-time domain resonance (0.40) — are
therefore total overwrites, and ADR-0015's two explicit requirements ("a
weighted graph, not a translation table"; "without flattening their
distinctions") are violated bit-exactly.
Measured: mounting the depth packs onto English REMOVES 37 distinct coordinates
(239 surfaces -> 202 points). English alone is collision-free (220/220), Greek
alone is collision-free (11/11), so the loss is created by the mount. Nine
English question words -- ask, question, what, who, where, how, why, when,
which -- share one coordinate, dragged there by a single Greek verb in their
primary domain. `word`, `דבר`, `דברים` and `λόγος` are one point. English is the
mount-time prototype, so the design's depth-anchor roles run backwards: the
depth languages are deleted into the articulation surface.
Four more findings in the same layer:
* 63 of 83 authored alignment edges resolve to nothing -- including every edge
of the two packs serving actually grounds HE/GRC against -- because
`_infer_foreign_pack_ids` maps id prefixes through a table hardcoded to the
original three packs, and a miss is a silent `continue`. The corpus was
grown 7.5x; the growth was never connected.
* `algebra.holonomy.holonomy_encode` never closes. The reverse walk was
deleted at fca6216e and the docstring describing it left in place; `alpha`
is validated and never read (alpha=0.0 and alpha=1.0 return bit-identical
arrays) while core/physics/biography.py:94 passes it.
* Four token-level "resonance proofs" are green because the compared arrays
are the same array -- the open follow-up the 2026-06-14 clause-level finding
explicitly deferred, now closed as decoration.
* The cure was already one layer down and never called: algebra/rotor.py has
shipped `rotor_power` + `word_transition_rotor` (the group geodesic) since
the algebra layer's first commit. A naive lerp leaves the versor group and
VocabManifold.update() correctly refuses it -- the overwrite is what a lerp
degrades into once the guard bites. The guard was right; the escape was not.
This is the missing half of every "geometry adds nothing" verdict: no operator
can distinguish what its ground does not distinguish.
Lands as instrument, not repair -- ../core is the quarry, and L2 is rebuilt in
the keel with these measurements as its provenance. The four decoration tests
are deliberately left standing and named in the analysis doc: green-for-the-
wrong-reason and red are different signals, and replacing them belongs to the
rebuild.
* evals/logos/manifold_collapse.py -- deterministic, bit-exact census
* tests/test_manifold_collapse_floor.py -- both directions plus the
English-alone control that attributes the loss to the mount. Two sabotages
observed red: a real interpolation (ValueError from the versor guard, which
is how the cure was found) and disabling the mount site (37 -> 3, which is
how the 34/2/1 site attribution was measured).
Also lands the FA-1 gate PRE-REGISTRATION -- criterion, corpus, negative
classes and anti-gaming rules committed here so they demonstrably predate any
discrimination number, per the ADR-0252 §5 precedent. The repairs it tests are
mechanism (the geodesic, the closed loop, fail-closed edge resolution), not
tuning; the declared strengths are used as written and are not free parameters.
Charter and gap register corrected where this contradicts them: the corpus is
83 edges not 11, the holonomy machinery is not core/physics/digest.py, and
FA-1's "the gate has never been measured" was false -- the 2026-06-14 negative
exists and is pinned. That error, made in the document that records the
three-negatives correction, is the fourth instance of the pattern this arc
keeps finding, and is recorded as such rather than quietly fixed.
[Verification]: uv run core test --suite smoke -q -> 782 passed in 224.37s, EXIT=0
15 KiB
Finding: the semantic ground collapses — "alignment" is implemented as overwrite
Date: 2026-07-28 · measured at 472fc0a8 · FA-1 of the Foundations Audit · G-25
Status: substrate finding, L2. Load-bearing for every layer above it, for the keel's
logos/ and algebra/ contracts (K1/K3), and for the standing question of why capability
has not moved.
0. The one-sentence finding
packs.compiler._blend_feature_versors — the function every cross-language and
morphological "nudge" in the system calls, at three sites, with three different declared
strengths — ignores its strength argument and returns the target verbatim. Nothing in
CORE is blended toward anything. Aligned words are overwritten by their partners, so the
three-language manifold ADR-0005/0015 designs as three charts on one semantic space is, in
the mounted configuration the runtime actually uses, one chart with aliases.
def _blend_feature_versors(source, target, strength):
strength = max(0.0, min(1.0, float(strength)))
if strength <= 0.0:
return np.asarray(source, dtype=np.float32).copy()
return np.asarray(target, dtype=np.float32).copy() # ← any strength > 0
ADR-0015 states the requirement this violates twice over: aligned clauses must resonate "without flattening their distinctions", and "cross-language alignment is a weighted graph, not a translation table." It is a translation table, applied destructively.
1. What it costs, measured
Instrument: evals/logos/manifold_collapse.py. Coordinates are compared bit-exactly
(ndarray.tobytes()) — there is no tolerance to tune, and no metric to argue about. Pinned
by tests/test_manifold_collapse_floor.py (registered in smoke).
| Configuration | surfaces | distinct coordinates | lost | groups |
|---|---|---|---|---|
en_minimal_v1 alone |
220 | 220 | 0 | 0 |
grc_logos_micro_v1 alone |
11 | 11 | 0 | 0 |
he_logos_micro_v1 alone |
9 | 8 | 1 | אור/אוֹר |
| trilingual mounted | 239 | 202 | 37 | 11 |
Mounting the depth packs — the operation designed to add depth — removes 37 distinct coordinates. English alone is collision-free; English mounted with Hebrew and Greek is not.
The eleven collapsed groups, verbatim:
ask · how · question · what · when · where · which · who · why · ἐρωτάω
begin · beginning · origin · source · ראשית · ἀρχή
breath · spirit · πνεῦμα · רוח
create · image · κτίζω · ברא
light · φῶς · אוֹר · אור
read · receive · silence · λαμβάνω
say · speak · voice · λέγω
word · λόγος · דבר · דברים
answer · respond · ἀποκρίνομαι
truth · אמת · ἀλήθεια
life · חיים
Read the first line again. Nine English question words occupy one coordinate. In the
semantic ground the reader stands on, who, why, when, where, how and which are
the same point — and they are collapsed not by any English-side decision but because one
Greek verb, ἐρωτάω, shares their primary semantic domain and drags the whole group into
the multi-language branch. read, receive and silence are likewise one point.
Attribution (measured by disabling each site in turn):
| Site | lost coordinates | what it does |
|---|---|---|
_apply_mounted_primary_domain_resonance (mount time, strength 0.40) |
34 | overwrites every member of a multi-language primary-domain group with the English prototype |
_apply_alignment_corrections (pack load, strength weight × 0.10) |
2 | overwrites the home token with the foreign token, last foreign pack wins |
_apply_morphology_cluster_corrections (compile, strength 0.40) |
1 | overwrites every same-root form with the cluster prototype |
The mount-time site is the dominant cause and carries a comment that named the open question
precisely — "it does not yet isolate structural derivation (Hebrew/Greek morphology
operators) from this function's nudge" — and pointed at docs/handoff/ADR-0167-FOLLOWUPS.md
§6, a file that does not exist. The isolation question is now answered: there is no
structural derivation left to isolate, because the 0.40 "blend factor" is a 1.00 replacement.
2. The inversion this produces
ADR-0005 assigns the roles: Hebrew as depth anchor, Greek as relational depth,
English as articulation surface. The mount-time prototype rule is
next((surface for language, surface in surfaces if language == "en"), surfaces[0][1]) —
English is preferred as the prototype, and every other language is replaced by it.
The design's dependency runs exactly backwards. The depth languages do not anchor English;
they are deleted into it. דבר is not near word in the mounted manifold — it is
word, bit for bit, and so is λόγος, and so is דברים.
At pack-load time the same function runs with the foreign packs in sorted() order, so
he[דבר] is first overwritten by en[word] and then by grc[λόγος]: which language a
Hebrew token becomes is decided by the alphabetical order of pack ids.
3. Four "resonance proofs" that pass because the compared quantities are identical
docs/analysis/holonomy-resonance-proof-not-robust-2026-06-14.md audited the clause-level
resonance and found it decoration. It explicitly deferred the token-level tests: "whether
each is robust or another cherry-picked configuration is an open follow-up, not covered by
this finding." That follow-up is now closed, and the answer is worse than cherry-picking:
| Test | Why it passes |
|---|---|
test_light_alignment_clusters_across_mounted_trilingual_field |
cga_inner(light, אוֹר) = 3.0220894813537598 = cga_inner(light, light). The versors are the same array. |
test_triple_alignment_closer_than_other_triples |
same — aligned pairs are self-comparisons |
test_same_root_hebrew_forms_land_closer_than_unrelated_noun |
דבר and דברים are bit-identical after clustering |
test_structured_morphology_improves_same_root_hebrew_resonance |
asserts structured > unstructured for the same-root pair; structured makes them identical, so the "improvement" is total collapse |
The last one is the sharpest: a test named for an improvement in resonance is green precisely because the distinction it should preserve was destroyed.
This is the repo's own disease definition met exactly — "a test that passes under conditions
that bypass the obligation it nominally proves is decoration, not proof" — and it is the
fourth independent instance this arc (CLAIMS.md staleness G-22, DOMAIN_PACKS G-23, the
hollow distinct-evidence guard in PR-12, and now the semantic ground itself).
4. The second defect: 63 of the 83 alignment edges are silently discarded
The audit charter recorded the alignment corpus as "seed-scale: 11 edges… the ADR's
prescribed first cases, never grown beyond them." That is wrong, and the way it is wrong
is the finding. Four packs carry alignment.jsonl:
| Pack | edges authored | edges that resolve | in serving? |
|---|---|---|---|
he_logos_micro_v1 |
11 | 11 (as overwrites) | secondary |
grc_logos_micro_v1 |
9 | 9 (as overwrites) | secondary |
he_core_cognition_v1 |
22 | 0 | primary (chat/pack_grounding.py:57) |
grc_logos_cognition_v1 |
41 | 0 | primary (chat/pack_grounding.py:56) |
| total | 83 | 20 |
The corpus was grown — 7.5× beyond the seed, to 83 edges — and 76% of it is inert.
The mechanism is four lines. _infer_foreign_pack_ids decides which foreign pack an edge
points into by splitting target_id on "-" and looking the first field up in a hardcoded
three-entry table:
_PREFIX_TO_PACK = {"he": "he_logos_micro_v1", "grc": "grc_logos_micro_v1", "en": "en_minimal_v1"}
prefix = edge.target_id.split("-")[0]
en-core-cog-001 has prefix "en", so it resolves to en_minimal_v1 — a pack with no such
entry id. The lookup misses, _apply_alignment_corrections hits continue, and the edge
vanishes without a warning, a counter, or a test. Entry ids are pack-local; the resolver is
global and frozen at three pack names, so any pack beyond the original three is unreachable
by construction — including the two that serving actually grounds Hebrew and Greek against.
Both branches of the pillar therefore fail, in opposite directions: the packs whose alignment works destroy distinctions, and the packs serving actually uses have alignment that does nothing at all. FA-1's work-order item 4 — "grow-or-declare the alignment corpus" — is answered before it begins: it was grown, and the growth was never connected.
5. The third defect: holonomy does not close
Independent of the collapse, the object named holonomy is not one.
algebra/holonomy.py documents, in the module docstring and in the function docstring:
A prompt is encoded as the geometric holonomy of its forward+reverse versor walk. The walk closes… Forward walk: F = w1·…·wn · Reverse walk: R = (1−alpha)·reverse(wn)·…·reverse(w1) · Holonomy: H = F · R
The implementation computes F and returns it. There is no R. Commit fca6216e
("Stabilize holonomy accumulation", 2026-05-13) deleted the reverse accumulation and kept
the docstring that describes it — the original at b80dd57a did compute
H = geometric_product(F, R). Consequences, measured:
alphais validated (0.0 <= alpha <= 1.0) and then never read.holonomy_encode(v, alpha=0.0)andholonomy_encode(v, alpha=1.0)return bit-identical arrays.core/physics/biography.py:94passesalpha=alphainto it — a caller steering a parameter that does nothing.- A walk followed by its own reverse does not return to identity (scalar
164.6, non-scalar norm4044.2). A closed-loop transport must; an open path product need not, and this is one.
ADR-0015's validation gate is closure — holonomy(he) ≈ holonomy(grc) ≈ holonomy(en).
A quantity that never closes has no reason to be invariant across representations, so the
2026-06-14 negative result was not a surprising failure of the geometry: it is what this
implementation predicts. That doc's open question RQ2 — "is the per-token _position_rotor
injection drowning the semantic signal in path-order geometry?" — was aimed correctly and
could not see the deletion, because the docstring said the closure was there.
6. The cure was already in the algebra layer, one import away
A linear blend of two versors is not a versor — the Cl(4,1) versor group is not closed under
addition — and VocabManifold.update() correctly refuses non-versors (residual > 1e-5).
Substituting a naive lerp for the overwrite raises ValueError: Word 'דברים': replacement versor residual 3.68e-02 exceeds 1.0e-05 immediately. The overwrite is what a lerp
degrades into once the guard rejects it. The guard was right; the escape was wrong.
The correct operation is interpolation on the group — the geodesic from source to target in
Spin(4,1) — and algebra/rotor.py has implemented it since the algebra layer's first commit:
blended = geometric_product(rotor_power(word_transition_rotor(source, target), strength), source)
Measured on en[word] → en[light]: unit residual stays at ~1e-7 for every t (three
orders of magnitude inside the manifold's tolerance), t=0 returns the source exactly,
t=1 the target exactly, and intermediate t genuinely interpolates.
So the deepest layer built the exact tool the layer above it needed, and the layer above never called it. That is the Foundations Audit's thesis — layers assuming connections that were never made — at the foundation, with both halves of the connection present and unjoined.
7. Why this is the answer to "why hasn't capability moved"
Every geometric experiment this project has run was run on this ground:
- the field-reasoner wedge (2026-06-04) — decoration,
- the relational-operator ablation (2026-07-19) — identical to the symbolic baseline,
- ADR-0252 §5 structure-mapping (2026-07-28) — NO-GO at every attribute weight,
- cross-language holonomy resonance (2026-06-14) — anti-correlated.
The convergent explanation recorded in the Perception Arc was "wherever the geometric operation is isomorphic to the arithmetic it replaces, it reproduces it exactly." That is true and insufficient. The measurement here adds the missing half: the geometry had been erased before the experiments started. A fifth of the mounted vocabulary shares coordinates with something else; the tokens that carry question type are one point; the depth languages are aliases of English. No operator defined over that ground can distinguish what the ground does not distinguish, so "geometry adds nothing" was the only available result.
This does not retroactively make those experiments positive — they were well-controlled and their verdicts stand for the encodings they tested. It changes what they are evidence of: they measured operators over a collapsed ground, not the value of geometric operators. The reopening criterion in the foundations audit §4 — "a domain where the geometric encoding is not isomorphic to a trivial symbolic computation" — is now joined by a second, stronger one: re-run on a ground that has not been flattened.
8. Disposition
Not repaired here. ../core is the quarry and the evidence source; L2 is rebuilt in the keel
(coreai, K3), where the corrected contract is admitted with these measurements as its
provenance. Repairing the compiler in place would move every versor in the system, and the
blast radius includes four tests whose current green depends on the collapse — those are
decoration to be replaced with real proofs, not regressions to be preserved, and doing
that properly is the keel's K3 work, not a patch here.
What lands here instead:
- The instrument —
evals/logos/manifold_collapse.py, deterministic, bit-exact. - The pin —
tests/test_manifold_collapse_floor.pyinsmoke, both directions: the collapse may not widen silently, and it may not shrink silently either. Two sabotages observed red (a real interpolation →ValueErrorfrom the versor guard; disabling the mount-time site →37 → 3, which is also how the 34/2/1 attribution above was measured). - The four decoration tests are left standing and named here. They are not weakened in this commit: a test that is green for the wrong reason and a test that is red are different signals, and the honest move is the one the 2026-06-14 doc made — record exactly why each is green, so replacing it is a decision someone makes with the evidence in hand.
9. What FA-1 asks next — pre-registered separately
Whether a repaired ground discriminates meaning is a question with a criterion, and the
criterion is committed before the run (docs/analysis/fa1-holonomy-gate-preregistration.md),
the way ADR-0252 §5 was decided. The mechanism is proven; the capability is not claimed.
Related: docs/analysis/holonomy-resonance-proof-not-robust-2026-06-14.md (the clause-level
negative this extends) · docs/plans/2026-07-28-foundations-audit.md (FA-1) ·
docs/assessment/30-gap-register.md (G-25) · coreai/docs/atlas/00-atlas-overview.md (K1/K3).