Umbrella ADR-0073 ratified (Accepted); L1.1 content phase
(ADR-0073a) landed. Pure pack enrichment — no runtime code, no
composer change, no test of behaviour. Substrate prerequisite for
the L1.2–L1.4 phases.
Greek additions (grc_logos_cognition_v1, 20 → 29 entries)
Knowledge family (English collapses to `knowledge`):
- ἐπιστήμη logos.episteme.systematic_knowledge
- σύνεσις logos.synesis.insight
(γνῶσις at grc-core-cog-007 unchanged — treated as the
experiential variant by the L1.3 lens config)
Love family (English collapses to `love`):
- ἀγάπη logos.agape.covenant_love
- φιλία logos.philia.companion_love
- ἔρως logos.eros.passionate_love
- στοργή logos.storge.familial_love
Time family (English collapses to `time`):
- αἰών logos.aion.age_era
- χρόνος logos.chronos.clock_time
- καιρός logos.kairos.opportune_moment
Hebrew additions (he_core_cognition_v1, 20 → 23 entries)
- חסד logos.chesed.covenant_loyalty
- שלום logos.shalom.wholeness_peace
- צδק logos.tzedek.right_order
Alignment.jsonl on both cognition-tier packs (previously only the
micro packs carried alignment)
- grc_logos_cognition_v1/alignment.jsonl — 20 edges: three-way core
dyads (word / truth / light / life / beginning / wisdom),
knowledge-family → en collapse, ἀγάπη↔חסד covenant-love pairing
(weight 0.86, Septuagintal), `cross_lang.no_english_collapse`
annotations for love + time families pointing at
`en-collapse-<family>` sentinel ids (weight 0.0).
- he_core_cognition_v1/alignment.jsonl — 7 edges: core dyads to en,
חסד↔ἀγάπη covenant pairing, no-english-collapse annotations for
חסד / שלום / צδק.
Manifest checksums refreshed per CLAUDE.md doctrine
- grc_logos_cognition_v1: b45bcf581cee… → 0f9436675707…
- he_core_cognition_v1: dee1e8c6ad9a… → 22145d008185…
Design decisions
- Existing 20 + 20 lemma atoms untouched — downstream tests /
composers / teaching chains keep referencing the same atoms.
Only new lemmas carry the distinguishing atoms.
- `cross_lang.no_english_collapse` edges are metadata not data
(sentinel target ids, weight 0.0). Their purpose is letting the
alignment graph answer "does English split this family?" without
forcing an artificial English lemma.
- Every new entry carries `adr-0073a:hand_authored:2026-05-19` in
its `provenance_ids` so future audits can find the L1.1 cohort
deterministically.
Verification
- python -m language_packs verify grc_logos_cognition_v1 → OK
- python -m language_packs verify he_core_cognition_v1 → OK
- python -m language_packs compile <both> → 29 / 23
manifold points; spot-check confirms καιρός / צδק resolve.
- python -m core.cli eval cognition → public
100 / 100 / 91.7 / 100 byte-identical (new lemmas sit on disk but
no composer references them yet).
- python -m core.cli test --suite cognition → 120/1 pass
- python -m core.cli test --suite smoke → 67/0 pass
- python -m core.cli test --suite full → 2632 passed
/ 4 skipped / 1 pre-existing failure (test_all_preamble_explains_
combined_run rename drift, unrelated).
- core demo register-tour → exit 0
(R5 seam still holds; L1.1 doesn't touch register pathway).
What L1.1 deliberately does NOT do
- No AnchorLens class (that's L1.2 / ADR-0073b).
- No composer wiring (L1.3 / ADR-0073c).
- No --anchor-lens CLI flag or demo (L1.4 / ADR-0073d).
- No teaching corpus in non-English (post-L1).
6.5 KiB
ADR-0073a — Anchor lens content phase (Plan Phase L1.1)
Status: Accepted Date: 2026-05-19 Ratified: 2026-05-19 Author: Shay Phase: Plan Phase L1.1 (content prerequisites — pack enrichment, no code) Parent: ADR-0073 (umbrella anchor-lens architecture)
Context
ADR-0073 identifies three honest gaps blocking anchor-lens
implementation, the first being distinction-bearing breadth absent
from cognition-tier packs. Greek's interesting move is splitting
one English concept into multiple lemmas; the cognition packs carry
one lemma per concept. Without those distinctions on disk, no later
phase (L1.2–L1.4) can render "knowing-as-experience" vs
"knowing-as-system" deterministically — the substrate atoms simply
do not exist to pivot on.
L1.1 fixes this with pure content enrichment. No runtime code, no composer, no realizer, no test of behaviour — only:
- lexicon.jsonl additions
- matching morphology.jsonl additions
- alignment.jsonl creation on the cognition-tier packs (currently only the micro packs carry alignment)
- manifest.json checksum refresh + re-verification
This is the highest-leverage step in the L1 sequence because it unblocks every later phase without code risk.
Decision
Greek additions (grc_logos_cognition_v1)
Nine new lemmas covering three distinction-bearing families that English collapses:
Knowledge family (English collapses to knowledge):
| entry_id | lemma | distinguishing atom |
|---|---|---|
grc-core-cog-021 |
ἐπιστήμη | logos.episteme.systematic_knowledge |
grc-core-cog-022 |
σύνεσις | logos.synesis.insight |
(γνῶσις at grc-core-cog-007 retains logos.epignosis.knowledge —
the L1.3 lens reads it as the experiential variant.)
Love family (English collapses to love):
| entry_id | lemma | distinguishing atom |
|---|---|---|
grc-core-cog-023 |
ἀγάπη | logos.agape.covenant_love |
grc-core-cog-024 |
φιλία | logos.philia.companion_love |
grc-core-cog-025 |
ἔρως | logos.eros.passionate_love |
grc-core-cog-026 |
στοργή | logos.storge.familial_love |
Time family (English collapses to time):
| entry_id | lemma | distinguishing atom |
|---|---|---|
grc-core-cog-027 |
αἰών | logos.aion.age_era |
grc-core-cog-028 |
χρόνος | logos.chronos.clock_time |
grc-core-cog-029 |
καιρός | logos.kairos.opportune_moment |
Hebrew additions (he_core_cognition_v1)
Three new lemmas from Hebrew's load-bearing covenant / wholeness / righteousness distinctions:
| entry_id | lemma | distinguishing atom |
|---|---|---|
he-core-cog-021 |
חסד | logos.chesed.covenant_loyalty |
he-core-cog-022 |
שלום | logos.shalom.wholeness_peace |
he-core-cog-023 |
צדק | logos.tzedek.right_order |
Alignment.jsonl on both cognition-tier packs
The cognition-tier packs (grc_logos_cognition_v1,
he_core_cognition_v1) gain a companion alignment.jsonl mirroring
the micro packs' format. Edges fall in three categories:
cross_lang.<atom>— three-way alignment on the sharedlogos.*atoms where all three substrates have the lemma (word / truth / light / life / beginning / pneuma / sophia).cross_lang.<family>— within-family alignment where two substrates have distinguishing lemmas but the third collapses or lacks the family (e.g. ἀγάπη ↔ חסד on the covenant-love axis; English has no covenant-love lemma).cross_lang.no_english_collapse— annotation edges marking families English does not split (love, time). These are metadata: target_id isen-collapse-<family>, a sentinel pointing at no real lexicon entry, withweight=0.0and anevidence_idslist naming the collapsed English term.
Manifest checksum refresh
Per CLAUDE.md doctrine:
checksum = hashlib.sha256(Path(lexicon_path).read_bytes()).hexdigest()
grc_logos_cognition_v1/manifest.json and
he_core_cognition_v1/manifest.json are updated with the new
checksums of their post-enrichment lexicon.jsonl files.
python -m language_packs verify <pack_id> is the canonical gate.
What L1.1 deliberately does NOT do
- No new
AnchorLensclass. That's L1.2. - No composer wiring. Composers continue to render English by default.
- No
--anchor-lensCLI flag. That's L1.4. - No teaching corpus in non-English. Teaching chains in grc/he are a later phase (L2+).
- No modification of existing lemma atoms. The 20 grc + 20 he existing entries are untouched so downstream tests / composers / teaching chains keep referencing the same atoms they always have. Only new lemmas carry the distinguishing atoms.
These deferrals are deliberate: L1.1 keeps the diff to pure JSONL/JSON, so the substrate is ratified independently of any runtime change.
Trust boundary
L1.1 touches user-influenceable content (pack files) but the gate
remains the same as for every other language pack: manifest
checksum + python -m language_packs verify. The new entries are
authored by hand here, not ingested from an external source.
No dynamic imports, no filesystem traversal, no shell passthrough.
Verification
python -m language_packs verify grc_logos_cognition_v1 → OK
python -m language_packs verify he_core_cognition_v1 → OK
python -m language_packs list → both packs listed,
entry counts 29 / 23
python -m core.cli test --suite packs -q → green
python -m core.cli eval cognition → public 100/100/91.7/100
(byte-identical;
new lemmas not yet
consumed by any
composer)
The cognition eval byte-identity holds because the new lemmas sit on disk but no composer references them yet — composers will start consuming them in L1.3.
What this unlocks
L1.2 (AnchorLens class + loader + default_unanchored_v1 sentinel)
can now start. Without L1.1's substrate, L1.2 would have nothing
to lens onto: the unanchored-vs-anchored distinction would be
academic because both branches would render the same single lemma.
L1.1 makes anchor lens possible; the later phases make it
operator-visible.