5.5 KiB
W-Holonomy — author real holonomy cases + the Holonomy proof-card tab
Date: 2026-06-14
Status: forward brief (post read-only Studio, L1–L5 complete: LG-1 #737 /
LG-2 #738 / LG-3+LG-4 #739 all merged). Dispatch when prioritized.
Predecessor doctrine: docs/workbench/core-logos-studio-plan.md (Holonomy
tab §) — which the read-only wave deliberately rendered as missing_evidence
because no pack-level holonomy.jsonl exists yet. This wave fills that.
Why this is the hard one (read before scoping)
Holonomy is the crown proof of the tri-language design: aligned canonical
clauses (Hebrew path, Greek path, English path) must produce nearby holonomies
without flattening their distinctions. The HolonomyAlignmentCase schema
already exists (language_packs/schema.py) and test-level proof cases exist
(tests/test_alignment_graph.py), but no logos pack carries holonomy.jsonl
and there is no serving-path holonomy proof evaluator.
Two hard constraints from CLAUDE.md bind this wave:
- No success state without proof. A Holonomy proof card may render a
"holds" verdict ONLY when a real proof was computed. Absent/failed proof
renders as
missing_evidence/failed, never green. (This is why the read-only wave showed count-0, not a fake card.) - Schema-Defined Proof Obligations.
HolonomyAlignmentCaseonly becomes a verified property when an executing test meaningfully fails under a violated case — i.e. a case whose paths flatten a distinction, or whose holonomy exceeds tolerance, must make the evaluator returnfailedand a test must assert that. A proof evaluator that passes everything is decoration.
This is genuine field-algebra work, not data entry. Scope it as a multi-PR wave.
Sequenced PRs
WH-1 (engine) — deterministic holonomy proof evaluator
- New evaluator (e.g.
alignment/holonomy.py) that, given aHolonomyAlignmentCase(source_refs across pack_ids, expected_relation, negative_source_refs, tolerance), composes the field-path holonomy over the aligned canonical clauses using the owned algebra (algebra/versor_apply/cga_inner) — never a re-implemented metric — and returns a typed verdict:holds/flattened/exceeds_tolerance/missing_refs. - The
negative_source_refsare the falsifier: a real case must distinguish the positive alignment from the negatives (no flattening). Non-vacuous tests: a known-good case returnsholds; a case with a negative ref swapped in returns a non-holdsverdict; a missing ref returnsmissing_refs. Seed the fixtures from the existingtests/test_alignment_graph.pyproof shape. - Pure/deterministic; respects
versor_condition < 1e-6by construction (no hot-path repair). Off the serving path (nogenerate.derivationimport).
WH-2 (pack content) — author holonomy.jsonl
- Author real
HolonomyAlignmentCaserows into the logos packs (start withhe_logos_micro_v1+grc_logos_micro_v1, the curated micro packs), each with ≥2 source_refs across ≥2 pack_ids, anexpected_relation,negative_source_refs, and atolerance. - Add a
holonomy_checksumto each manifest pinned to the bytes written (sha256(holonomy_path.read_bytes())); compiler verifies it like the glosses dual-checksum. Deterministic row order. - Depends on WH-1 so authored cases are validated against a real evaluator
(don't author cases no evaluator can check — that recreates the decoration
risk). Reconcile collapse anchors first if a case touches them
(
logos-collapse-anchor-reconciliation-2026-06-14.md).
WH-3 (reader) — surface cases + proof status
- Extend
workbench/logos.py: populateLogosPackContents.holonomy_cases(currently[]) fromholonomy.jsonl, and add aLogosHolonomyCaseread model carrying the case fields plus the WH-1 proof verdict (computed read-only via the evaluator, or read from a persisted proof if WH-1 persists one — prefer persist-first if the computation is non-trivial, mirroring C3). - Overview
holonomy_case_countbecomes real; Safetymissing_holonomy_refsresolves fromunknownonce cases exist. Schema mirror + drift gate; the read model SHA-pinned if it asserts a proof metric.
WH-4 (UI) — the Holonomy tab (proof cards)
- Add a Holonomy tab to
/logos(between Alignment and Safety). Render each case as a proof card: the three paths (Hebrew ↘ / Greek ↗ / English), source_refs, expected_relation, tolerance, and the proof verdict. - Honesty gate (load-bearing): render a "holds" affordance ONLY for
holds; renderflattened/exceeds_tolerance/missing_refsas their honest failed/absent state with no success styling. A test must assert that a non-holdscase renders no success element. - New
logos_holonomy_caseevidence subject (logos_holonomy_case:<packId>/<caseId>) + inspector projection + chain-rail derivation (thereplaystage = the proof verdict). Mirror the LG-3/LG-4 subject pattern. - Full
pnpm exec vitest run(pass AND exit) + golden-file layout test if the proof card uses the DAG primitive for the path diagram.
Non-negotiables
- No success without computed proof; the evaluator must meaningfully fail.
- Engine math owned by
algebra— never re-implemented in reader or UI. - Read-only; no mutation. Off the serving path.
- Deterministic;
versor_conditionpreserved by construction (no hot-path repair).
Out of scope
- Patch Forge / proposal envelope (W-Forge).
- Cross-turn or session-level field-coherence trends.