# 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 `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.
