- **Active, keep**: Ultra path (`core/ultra/*`), BG spill (`hakmem_batch.c`, `hakmem_tiny_bg_spill.o`), HeapV2/FrontV2 (`core/front/tiny_heap_v2.h`, `tiny_alloc_fast.inc.h`) are compiled in and runtime-gated. Removing their ENV toggles would break A/B rollback.
- **SFC is live**: `hakmem_tiny_sfc.o` is built; `HAKMEM_SFC_ENABLE/CAPACITY/REFILL_COUNT/DEBUG/STATS_DUMP/CASCADE_PCT` all drive behavior. Debug getenv duplication remains the top low-risk cleanup.
- **Doc-only set**: 21 proposal-only ENV names (adaptive presets, generic debug knobs, legacy build flags) have no getenv calls; safe to drop from docs with zero runtime impact.
- **Count drift**: Including `.inc` helpers raises the current getenv surface to ~279 names; initial 221 figure is kept as the baseline for this project’s first pass.
- **SFC_DEBUG dedup**: Move the four `HAKMEM_SFC_DEBUG` getenv calls behind one init-time flag (`hakmem_tiny_sfc.c` as the boundary). Reduces hot-path getenvs by 3.
- **Doc hygiene**: Remove the 21 docs-only names from `docs/specs/ENV_VARS*.md` to keep the supported surface visible and reversible.