# Tombstone — 2026-05-27 ecodex/ dead-code archive

**Convening:** [Council #7 — ecodex/](../../_council/2026-05-27-dead-code-ecodex/CLOSED.md)
**Bias:** figure out intent before deleting

## Section 14 (Class Affinity) — 6 files

The entire `affinity_claims/` sub-tree was deliberately retired per the live decommission comment at `data/evercraft/function/codex/hub/enter_section_inner.mcfunction:42`:

> `# Section 14 (Class Affinity) removed — already covered by Classes page (section 20)`

Section 20 (Classes page) is the live replacement. All 6 affinity files had zero external callers. Independently confirmed by Race, Compliance, Performance, and Lore seats.

- `ecodex/sections/affinity_claims.mcfunction` (62 LOC, 14-class row spawner)
- `ecodex/sections/affinity_claims/check_clicks.mcfunction` (23 LOC, click dispatcher)
- `ecodex/sections/affinity_claims/refresh.mcfunction` (21 LOC, row refresher)
- `ecodex/sections/affinity_claim_click.mcfunction` (12 LOC, macro click bridge)
- `ecodex/sections/affinity_do_claim.mcfunction` (15 LOC, macro do-claim reward grant)
- `ecodex/sections/refresh_affinity_row.mcfunction` (25 LOC, row refresh helper)

## `do_restore.mcfunction` — dead-by-orphan

Reads `ec.ecodex_restore` + `ec.ecodex_mainhand` tags. Grep across the entire datapack found **zero writers** — only `do_restore` itself removes them. Function was unreachable. The comment at `ecodex/open_tab.mcfunction:14` promising "the eternal codex handles its own restore via ecodex/do_restore" was a stale v1 promise; the live restore path is inline `loot give @s loot evercraft:ecodex/eternal_codex` in `do_combine_codices_inner.mcfunction:14` and siblings. Comment removed in this ship.

## `show_milestone_info_2.mcfunction` + `show_milestone_info_3.mcfunction` — sentinel-collapse pattern

Author standardized on 1-stage + 5-stage display macros. When a section has fewer than 5 stages, the live convention is sentinel-collapse (`th5:999` — unreachable threshold), per `craftforever_claims/check_clicks.mcfunction:38` ("Spirit Toolsmith (4 stages, th5=999 unreachable)"). The 2-stage / 3-stage variants are speculative early-design artifacts. Zero callers.

## `show_lore_info.mcfunction` — DRY refactor deferred

3-line macro for lore-piece info display on attack. Body is currently inlined verbatim across all 9 `lore_claims/check_clicks_page_*.mcfunction` files (~180 lines duplicated). Archiving the macro file; full DRY refactor queued to `BIG_BRAIN/10-pending.md` as a focused future wave. Live feature unaffected.

## `give.mcfunction` — RELOCATED to admin/

3-line player-give convenience. Relocated to `data/evercraft/function/admin/give/eternal_codex.mcfunction` per the Council #4 admin/give relocation pattern.
