Title Expansion Plus Runtime Semantic Replay
A checkpoint that harvests the landed `aina-core` title universe, resolver hardening, and affordance evidence into this repo, then adds semantic replay and labeled evidence fan-out for broader local serving.
This checkpoint reconciled the paused `aina-core` closeout before continuing. The already-landed `title_expansion_v1`, resolver hardening, and `evidence_enrichment_v1` slices are now ported into `/srv/aina/aina-data-engine-room`, so this repo reaches the same 110,184 local servable-title universe and can attach promoted affordance-pack evidence to served packets. This continuation adds labeled evidence fan-out without treating broader matches as exact.
Harvested, Not Rebuilt
I checked `/srv/repos/aina-core` read-only and confirmed the title expansion work existed as code, tests, source prep reports, candidates, and a local checkpoint. This repo did not have that module or source directory, so the right move was to port the tested slice rather than create a second expansion mechanism.
Observed branch `ali/title-expansion-v1-2026-06-11`, checkpoint `08b66dd`, title expansion commit `472157a`, and evidence enrichment commit `8f031a1`.
`title_expansion.py`, `test_title_expansion.py`, prepared source directories, and the `aina-data-engine title-expansion` command.
110,184 Local Servable Titles
The port produced the same expansion result locally in `aina-data-engine-room`. The warehouse at `artifacts/aina_data_engine.duckdb` moved from the pre-expansion baseline to the expanded title universe.
| Metric | Value |
|---|---|
| Candidates loaded | 55,528 |
| New titles ingested | 35,959 |
| WRTMJ new titles | 35,939 |
| Gold-IP new titles | 20 |
| Occupations before | 74,225 |
| Occupations after | 110,184 |
| Suitability rows after | 110,184 |
| Wedge occupations after | 47,837 |
Sidecar Decisions, No Runtime Mutation
The new semantic path reads the existing adjudication batch, creates three deterministic local reviewer votes per row, and emits consensus plus replay actions. It does not mutate source rows, runtime rows, external systems, or real-user data.
| Replay lane | Count |
|---|---|
| approve_existing_runtime_function | 48 |
| revise_runtime_function | 5 |
| attach_source_refs_and_rerun | 20 |
| hold_for_context_or_source_mining | 27 |
| safe sidecar applies total | 53 |
Promoted Affordances Reach Packets
The `evidence_enrichment_v1` slice is now wired locally. `RoleIntelligencePacket` has an optional `evidence_pack`, and `get_role_packet(...)` attaches high-confidence affordance evidence when a title or SOC match exists.
| Probe | Result |
|---|---|
| `account executive` | evidence pack present, 5 assist opportunities |
| `Xyzzy Unknown Nonexistent Role 99` | `no_bucket_evidence_pack` flag present |
More Titles Get Caveated Evidence
Evidence enrichment now keeps exact title matches as highest trust, preserves source-provided SOC matches as soc_fallback, and adds labeled soc_title_derived_fallback plus guarded soc_family_fallback paths. Packet quality flags expose non-title evidence fallbacks.
| Metric | Count |
|---|---|
| Total occupations | 110,184 |
| Eligible non-excluded occupations | 95,251 |
| Excluded occupations intentionally skipped | 14,933 |
| Evidence-covered before fan-out | 4,075 |
| Evidence-covered eligible after fan-out | 14,114 |
| Eligible coverage rate | 14.82% |
| Exact title matches | 368 |
| Source-provided SOC fallback | 3,008 |
| Pack-title-derived SOC fallback | 10,345 |
| SOC-family fallback | 393 |
Semantic spot-checks: seasonal sales associate now gets sales-associate evidence; customer support specialist gets customer-service evidence; support associate, warehouse manager, and software engineer stay un-enriched rather than receiving misleading packs.
Reality Check After Expansion
The `aina-core` resolver hardening and serving probe are now local. I ran a compact proof with bounded sample flags because the default sample is intentionally heavy over the expanded warehouse.
| Probe lane | Result |
|---|---|
| In-distribution exact/SOC agreement | 20/20 |
| Perturbed variants | 40/40 |
| Out-of-distribution cases | 34/34 |
| Packet path | 5/5 |
| Title-expansion exact round-trip | 20/20 |
| Title-expansion perturbed | 10/10 |
Semantic spot-check: the compact probe initially passed while answering `I manage our warehouse and shipping` with the awkward grade-fragment title `warehouse i`. I tightened the resolver ranking so management descriptions now prefer role-shaped titles anchored to the first occupational domain; the same probe now answers `warehouse manager`, and a regression test protects that behavior.
Checks Passed
Ruff passed across the touched source, tests, and scripts. The final full pytest suite passed with `218 passed in 110.03s`; focused evidence-enrichment tests now have 10 cases. The evidence fan-out probe passed with 14,114/95,251 eligible occupations covered and 14,933 excluded occupations skipped.
cd /srv/aina/aina-data-engine-room .venv/bin/python -m pytest -q .venv/bin/aina-data-engine --root /srv/aina/aina-data-engine-room title-expansion .venv/bin/aina-data-engine --root /srv/aina/aina-data-engine-room runtime-semantic-batch-decisions --batch-id runtime-semantic-001 .venv/bin/aina-data-engine --root /srv/aina/aina-data-engine-room runtime-semantic-decision-replay .venv/bin/python scripts/serving_probe.py --sample 20 --packet-sample 5 --expansion-sample 20 --expansion-perturb-sample 5 .venv/bin/python scripts/evidence_fanout_probe.py
Boundaries That Still Matter
I did not lift or use `responsibility_registry_v2`; the `aina-core` handoff says it is still under a `DO_NOT_USE` quarantine marker. I did not promote the remaining unpromoted affordance packs yet, did not claim production readiness, and did not push or merge anything.
Where To Continue
The strongest next move is a multi-LLM promotion/mining pass for non-promoted packs, followed by larger serving and evidence fan-out probes. The quarantine decision for `responsibility_registry_v2` should stay explicit and founder-controlled.
Start from title expansion, semantic replay, and evidence fan-out; then expand the promoted evidence corpus without touching quarantined responsibility data.