diff --git a/docs/pack_inventory_2026-05-21.md b/docs/pack_inventory_2026-05-21.md new file mode 100644 index 00000000..3d9a15da --- /dev/null +++ b/docs/pack_inventory_2026-05-21.md @@ -0,0 +1,251 @@ +# Pack Inventory — 2026-05-21 + +A full survey of every pack in the tree, what it covers, what consumes it, and where the system is well-rounded vs. lopsided. Generated by walking `language_packs/data/`, `packs/`, `teaching/`, `chat/teaching_grounding.py`, and `core/config.py`. + +--- + +## 1. Pack landscape at a glance + +Five layers, distinct contracts, distinct lifecycles. The bottom layer is *lexicon* (what tokens exist); the top layer is *style* (how surfaces sound). + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ LAYER 5 — Style / rhetorical (substrate only today) │ +│ rhetorical_style/ 1 pack [SPARSE — substrate phase] │ +├─────────────────────────────────────────────────────────────────┤ +│ LAYER 4 — Selection axes (orthogonal to truth) │ +│ register/ 7 packs [DENSE — fully built out] │ +│ anchor_lens/ 17 packs [DENSE — Greek + Hebrew rich] │ +├─────────────────────────────────────────────────────────────────┤ +│ LAYER 3 — Policy (boundary commitments) │ +│ identity/ 3 packs [ADEQUATE] │ +│ safety/ 1 pack [MINIMAL — sufficient floor] │ +│ ethics/ 5 packs [PARTIAL — 2/5 ratified] │ +├─────────────────────────────────────────────────────────────────┤ +│ LAYER 2 — Teaching corpora (reviewed chains) │ +│ cognition_chains_v1 22 chains [WIRED] │ +│ relations_chains_v1 7 chains [WIRED] │ +│ relations_chains_v2 7 chains [WIRED] │ +│ cross_pack_chains_v1 5 chains [WIRED, separate path] │ +├─────────────────────────────────────────────────────────────────┤ +│ LAYER 1 — Language packs (lexicon + glosses + alignment) │ +│ en_core_* 12 packs, 354 lex / 330 gloss (93%) │ +│ en_minimal_v1 220 lex / 0 gloss │ +│ grc_* 2 packs (1 mounted) │ +│ he_* 2 packs (1 mounted) │ +│ en_collapse_anchors_v1 [UNMOUNTED] │ +│ en_core_relations_v3 [UNMOUNTED — newer schema] │ +├─────────────────────────────────────────────────────────────────┤ +│ LAYER 0 — Primitives / shared schema │ +│ primitives/ 1 pack (en_semantic_primitives_v1) │ +│ common/anchors, common/contracts, common/schema │ +└─────────────────────────────────────────────────────────────────┘ +``` + +--- + +## 2. Layer 1 — Language packs (the lexical foundation) + +### 2.1 English operational base (12 packs, all mounted) + +| pack | role | lex | gloss | gloss-cov | +|---|---|---:|---:|---:| +| `en_core_cognition_v1` | operational_base v1.2.0 | 85 | 70 | 82% | +| `en_core_meta_v1` | operational_base | 73 | 71 | 97% | +| `en_core_attitude_v1` | operational_base | 40 | 40 | 100% | +| `en_core_temporal_v1` | operational_base | 28 | 28 | 100% | +| `en_core_action_v1` | operational_base | 26 | 25 | 96% | +| `en_core_quantitative_v1` | operational_base | 24 | 19 | 79% | +| `en_core_spatial_v1` | operational_base | 24 | 23 | 95% | +| `en_core_polarity_v1` | operational_base | 16 | 16 | 100% | +| `en_core_causation_v1` | operational_base | 15 | 15 | 100% | +| `en_core_relations_v1` | operational_base (kinship) | 8 | 8 | 100% | +| `en_core_relations_v2` | operational_base (kinship+) | 8 | 8 | 100% | +| `en_core_relations_v3` | depth_relation | 7 | 7 | 100% | +| **TOTAL** | | **354** | **330** | **93%** | + +`en_minimal_v1` (220 lex, 0 gloss) is the bare-vocabulary substrate — function words and basics; never expected to carry glosses. + +**Cross-pack lemma overlap.** 98 of 466 unique EN lemmas live in more than one pack (~21%). Every duplicate today pairs a domain pack against `en_minimal_v1` (e.g. `above` is in both `en_core_spatial_v1` and `en_minimal_v1`). The resolver's first-match-wins rule (ADR-0063) makes this safe but means `en_minimal_v1` is currently shadowed for any of those 98 lemmas. **Not a bug, but worth noting** — `en_minimal_v1` is the historical baseline and could be trimmed to just the lemmas no other pack carries. + +### 2.2 Non-English packs (depth_relation / depth_root) + +| pack | lang | lex | align | morph | mounted? | +|---|---|---:|---:|---:|---| +| `grc_logos_micro_v1` | grc | 11 | 9 | 11 | ✓ | +| `grc_logos_cognition_v1` | grc | 29 | 23 | 29 | ✗ | +| `he_logos_micro_v1` | he | 9 | 11 | 9 | ✓ | +| `he_core_cognition_v1` | he | 23 | 11 | 23 | ✗ | + +The mounted-by-default pair (`*_micro_v1`) is the deliberately-minimal seam-test set (ADR-0073). The bigger `*_cognition_v1` packs exist and ratify, but `core/config.py` doesn't pull them — **either intentional (depth_relation/depth_root packs are loaded by the lens system separately) or a wiring gap**. Worth confirming. + +**No glosses on any non-EN pack.** Greek and Hebrew packs carry alignment edges (cross-language equivalence) and morphology, but not the explanatory glosses that drive ADR-0085's gloss-aware CAUSE composer. If `core eval cognition` ever runs with `output_language=grc`, the gloss path silently no-ops. + +### 2.3 Orphaned / not-yet-mounted packs + +- `en_collapse_anchors_v1` — collapse_anchor role, 3 lex / 3 gloss. Lens-specialization pack; not loaded by the default mount. +- `en_core_relations_v3` — `depth_relation` role, 7 lex / 7 gloss. Newer schema than v1/v2. +- `grc_logos_cognition_v1`, `he_core_cognition_v1` — see §2.2. + +--- + +## 3. Layer 2 — Teaching corpora (the reviewed-knowledge layer) + +| corpus | chains | distinct subjects | distinct objects | wired by | +|---|---:|---:|---:|---| +| `cognition_chains_v1` | 22 | 18 | 13 | `TEACHING_CORPORA` | +| `relations_chains_v1` | 7 | 5 | 6 | `TEACHING_CORPORA` | +| `relations_chains_v2` | 7 | 5 | 6 | `TEACHING_CORPORA` | +| `cross_pack_chains_v1` | 5 | 4 | 4 | `chat.cross_pack_grounding` (separate path) | +| **TOTAL reviewed** | **41** | | | | + +**Intent shapes covered.** Every chain is either `cause` (28) or `verification` (13). No `comparison`, `procedure`, or `correction` chains exist yet — those intents route through pack composers, not the teaching corpus. + +**Predicate / connective vocabulary.** Only seven distinct connectives across 41 chains: `requires` (14), `reveals` (8), `grounds` (8), `precedes` (5), `follows` (4), `orders` (1), `supports` (1). The CAUSE/VERIFICATION lane is well-served; everything else is unreachable through teaching grounding. + +**Topology.** + +``` +out-degree leaders (radiate outward): + 3 family + 2 truth | wisdom | understanding | parent + 1 light | knowledge | memory | correction | creation | ... + +in-degree leaders (well-grounded sinks): + 4 knowledge + 3 evidence | understanding | parent + 2 truth | meaning | memory +``` + +Source-only nodes (a subject in some chain, never an object): `analogy`, `correction`, `creation`, `grandparent`, `inference`, `light`, `question`, `thought`. +Sink-only nodes: `grandchild`, `relation`. + +This shape says: **`knowledge` is the most-grounded concept** (4 distinct chains terminate there), **`family` is the most-radiant** (3 distinct chains start there), and there is *no terminal sink that lacks its own grounding chain except `grandchild` and `relation`* — meaning the cognition graph is roughly **well-connected** internally, but **does not yet bridge between the cognition and relations domains** at chain level (the cross-pack work in `cross_pack_chains_v1` is 5 chains attempting exactly that bridge). + +--- + +## 4. Layer 3 — Policy packs + +### 4.1 Identity (3 packs, all ratified) + +`default_general_v1`, `generosity_first_v1`, `precision_first_v1`. Adequate floor — every domain has at least one identity stance available. **Could grow**: domain-specific identities (e.g. an academic-tutor identity, a clinical-clinician identity) would slot in here. + +### 4.2 Safety (1 pack, ratified) + +`core_safety_axes_v1` is the sole safety pack and is fail-closed at startup. Per ADR-0029 this is intentional — safety should not have multiple competing definitions in production. **Adequate.** + +### 4.3 Ethics (5 packs, 2 ratified) + +| pack | ratified | +|---|---| +| `default_general_ethics_v1` | ✓ | +| `medical_clinical_ethics_v1` | ✓ | +| `legal_ethics_v1` | ✗ | +| `research_ethics_v1` | ✗ | +| `engineering_ethics_v1` | ✗ | + +Three drafted domain-ethics packs exist but lack the companion `.mastery_report.json` self-seal — they cannot load in production until ratified. **Highest-leverage Layer 3 gap.** + +--- + +## 5. Layer 4 — Selection axes (the orthogonal dimensions) + +### 5.1 Register (7 packs, all ratified) + +``` +default_neutral_v1 ← null-lift baseline (ADR-0072 invariant) +terse_v1 ← compression +convivial_v1 ← warmth + seeded variation (ADR-0071) +precise_v1 +formal_v1 +pedagogical_v1 +socratic_v1 +``` + +This axis is **well-built-out**. Seven distinct registers covering compression, warmth, precision, formality, teaching, and dialectic. Holds `trace_hash` constant — surfaces vary, truth path does not. + +### 5.2 Anchor-lens (17 packs, all ratified) + +``` +default_unanchored_v1 ← null-lift baseline (ADR-0073d invariant) +grc_* (8): aletheia, arche, epignosis, episteme, logos, sophia, synesis, zoe +he_* (8): chayyim, chesed, chokmah, dabar, emet, logos, shalom, tzedek +``` + +This axis is **the richest in the system** by pack count. It deliberately moves `trace_hash` (opposite invariant from register). Greek and Hebrew are at parity — 8 distinguishing-concept lenses each. The thesis behind this density (ADR-0073 → ADR-0073d) is that the *substantive* axis of variation is genuinely 16-dimensional, and trying to collapse it into English semantics is the load-bearing failure mode this system is designed to refuse. + +### 5.3 Rhetorical-style (1 pack — substrate phase) + +``` +default_unstyled_v1 ← only pack today; no composer consumes it +``` + +ADR-0087 substrate ships the loader and a single null-pack; the *content* phase (additional packs) is the next step. **The newest axis; deliberately sparse today.** + +--- + +## 6. Coverage matrix — strength / weakness summary + +| dimension | strong | weak / missing | +|---|---|---| +| **EN vocabulary breadth** | 12 domain packs, 354 lemmas, 93% gloss coverage | `en_core_cognition_v1` is at 82% (15 ungloss'd lemmas); `en_core_quantitative_v1` at 79% (5 ungloss'd) | +| **EN domain breadth** | 47 unique top-level semantic-domain prefixes; cognition (291) / meta (146) / attitude (80) lead | `biology` (7), `semantics` (7), `memory` (10), `logic` (5) are thin | +| **Cross-language** | Greek + Hebrew at parity (8 lenses each on the lens axis) | Neither language has glosses; both micro-packs are tiny (≤11 lex); the bigger `*_cognition_v1` siblings are unmounted | +| **Teaching chains** | 41 reviewed chains; well-connected internally; `knowledge` has 4 incoming grounding edges | Only 2 intent shapes covered (CAUSE, VERIFICATION); 7 connectives total; no COMPARISON / PROCEDURE / CORRECTION chains; only 5 cross-pack chains | +| **Identity** | 3 ratified general stances | Domain-specific identities absent | +| **Safety** | Floor pack ratified and fail-closed | Intentionally singular | +| **Ethics** | 2 ratified packs (general + medical) | **3 drafted packs (legal / research / engineering) not yet ratified** | +| **Register** | 7 ratified packs spanning compression → warmth → formality → dialectic | None | +| **Anchor-lens** | 17 ratified packs; Greek + Hebrew at parity; trace-hash-moving axis | Latin / Sanskrit / Arabic lenses absent (an analogous Arabic axis would extend the same pattern) | +| **Rhetorical-style** | Substrate ships | **Content packs absent — only the null-lift baseline exists** | + +--- + +## 7. Top-leverage gaps (ordered by ratio of unblocked value to effort) + +1. **Ratify the three drafted ethics packs** (`legal_ethics_v1`, `research_ethics_v1`, `engineering_ethics_v1`). + *Effort:* low (companion `.mastery_report.json` self-seal generation). + *Unblocks:* domain-ethics composition in production for legal / research / engineering workflows. + +2. **Wire `grc_logos_cognition_v1` + `he_core_cognition_v1` into the default mount** (or document why they're held back). + *Effort:* one-line additions to `core/config.py` `input_packs`. + *Unblocks:* substantially more Greek + Hebrew lexical surface area for the anchor-lens system to actually distinguish on. + +3. **Add glosses to `grc_*` and `he_*` packs.** + *Effort:* medium (content authorship — needs Greek/Hebrew literacy). + *Unblocks:* ADR-0085 gloss-aware CAUSE composer works in non-English output, instead of silently no-op'ing. + +4. **Add COMPARISON / PROCEDURE / CORRECTION teaching chains.** + *Effort:* medium (4–10 chains per intent). + *Unblocks:* the teaching-grounded surface composer fires on intents beyond CAUSE/VERIFICATION (today those intents route through pack composers only — no reviewed-knowledge layer feeds them). + +5. **Ship at least one rhetorical-style content pack** (the consumer ADR for ADR-0087). + *Effort:* medium (content + composer-consumer wiring). + *Unblocks:* the third orthogonal axis (after register and anchor-lens) actually does anything. + +6. **Fill the 24 ungloss'd EN lemmas** (15 in `en_core_cognition_v1`, 5 in `en_core_quantitative_v1`, plus stragglers in spatial / action). + *Effort:* very low (content authorship in English). + *Unblocks:* ADR-0085 fluency lift covers 100% of the EN cognition path instead of 93%. + +7. **Trim or rescope `en_minimal_v1`** (98 lemmas shadowed by domain packs; first-match-wins makes them dead today). + *Effort:* low. + *Unblocks:* nothing user-visible, but the pack inventory becomes honest about which entry resolves a given lemma. + +--- + +## 8. Architectural observation: the "well-rounded" question + +The system is **disproportionately deep on its orthogonal axes** (17 anchor lenses + 7 registers = 24 substantive selection packs) **vs. its grounded-knowledge layer** (41 reviewed chains, 2 intent shapes, 7 connectives). That's not a bug per se — the audit's Finding 4 (compound intent) and Finding 2 (grounded realizer) both name exactly this asymmetry: the *truth path* is the lightest-developed substrate, and the *selection / variation axes* are the heaviest. The seven shipped PRs from the 2026-05-20 audit (#76 → #83) all add to the truth path; the next natural batch is widening the teaching corpora and ratifying the drafted ethics packs to keep the layers in proportion. + +The five layers in order of build-out (heaviest → lightest): + +``` +Layer 4 (selection axes) ████████████████████████ 24 packs +Layer 1 (language: EN domain) ████████████ 12 packs / 354 lex +Layer 3 (policy) █████████ 9 packs (4 unratified) +Layer 2 (teaching corpora) ████ 41 chains / 4 corpora +Layer 1 (language: grc + he) ██ 4 packs +Layer 5 (rhetorical style) ▎ 1 pack (substrate only) +``` + +Layer 2 is the **load-bearing thin layer**. Every grounded surface the system emits today routes through either a pack composer (Layer 1) or a teaching chain (Layer 2); Layer 1 covers cold-start lookups, Layer 2 covers reviewed multi-hop reasoning. With only 41 chains across 18 distinct subjects, the multi-hop ceiling is structurally close. The audit's `ground_graph` wiring (PR #83 substrate, ADR-0088 Phase A pending) and Finding 4's compound dispatch (PR #82 substrate, ADR-0089 Phase C2 pending) are the right next moves on the truth path — but they will only stretch as far as Layer 2's coverage permits. Doubling Layer 2 to ~80 chains, with at least 8–10 chains per intent shape, is the single most-leveraged content move.