AINA Data Engine Room · M6 runtime readiness · 2026-06-13

Top-Band Alias Repair Queue Handoff

Punctuation aliases now resolve deterministically, and the remaining top-band misses now have LinkedIn-backed JD-aware intake rows.

Ali Mehdi Mukadam · co-authored with Codex · 4 minute read
The Single Idea

The top-band runtime router no longer misses common punctuation aliases like f i manager versus f&i manager. The remaining top 1,000 not_found or abstain routes now have a deterministic repair queue, and every queued row has been converted into a LinkedIn-backed source-authority intake candidate for JD-aware role context. Runtime service is still gated; this slice moves the work from title-only gaps to source-backed role context.

Top 500 matched499 / 499
Top 1000 matched974 / 996
JD-aware context996 / 996
01 · Runtime matching

Punctuation aliases now match

role_context_query now normalizes any non-alphanumeric separator to a space before matching. This keeps title matching deterministic while covering common marketplace and JD title variants such as ampersands, slashes, hyphens, and other punctuation.

uv run pytest tests/test_role_context_query.py::test_role_context_query_matches_punctuation_normalized_title_aliases -q
02 · Coverage proof

The top-band miss count dropped

The top 500 now has zero not_found rows. The top 1,000 still has gaps, but the miss count dropped from 53 to 22 after punctuation-aware matching.

BandBeforeAfterChange
Top 500 matched486 / 499499 / 499+13
Top 500 not found130-13
Top 1,000 matched943 / 996974 / 996+31
Top 1,000 not found5322-31
{
  "abstain": 30,
  "not_found": 22,
  "serve": 944
}
03 · Repair queue

Remaining gaps are explicit

The new top-band-runtime-route-repair-queue command writes JSON, JSONL, Markdown, and HTML artifacts. It queues only rows that still route as not_found or abstain, and now surfaces exact local linkedin_jobs candidates for each queued title.

QueueCount
Total repair rows52
Top 500 repair rows16
Top 1,000 repair rows52
Rows with JD context match52
Rows with existing JD/source-authority refs52
Rows with exact LinkedIn title matches52
LinkedIn source refs surfaced416
{
  "jd_context_confirmation_blocked": 1,
  "runtime_contract_missing_for_source_backed_role_context": 22,
  "source_authority_incomplete_with_context": 29
}
04 · LinkedIn intake

Exact matches are now source-authority intake rows

The new top-band-linkedin-source-authority-intake command converts the 52 queued titles into local source-context candidates with source-ref keys that JD-aware role context can parse and join back to linkedin_jobs. These rows are not runtime authority.

IntakeCount
Intake rows52
Top 500 intake rows16
Top 1,000 intake rows52
Candidate source-ref keys416
Rows with risk tags50
{
  "blocked_until_learner_or_source_confirmation": 1,
  "source_context_candidate_requires_jd_context_before_runtime_service": 51
}
JD-aware metricCount
Role-context rows1,056
Top-band LinkedIn intake rows consumed52
Rows with job context1,022
Top 500 titles with role context499 / 499
Top 1,000 titles with role context996 / 996
Top-band explicit gaps0
05 · Boundary

The runtime boundary stayed locked

This slice stayed local and headless. It did not invoke live Gemini, did not promote runtime embedding authority, did not use real-user data, did not write externally, did not enable public runtime, did not mutate donor repos, and did not add any legacy reviewer-gated field or gate.
06 · Validation

The proof commands passed

uv run pytest tests/test_role_context_query.py tests/test_top_band_runtime_route_coverage.py tests/test_top_band_runtime_route_repair_queue.py -q
uv run ruff check src/aina_data_engine/reports.py src/aina_data_engine/role_context_query.py src/aina_data_engine/top_band_runtime_route_repair_queue.py src/aina_data_engine/cli.py tests/test_role_context_query.py tests/test_top_band_runtime_route_repair_queue.py
uv run pytest tests/test_top_band_linkedin_source_authority_intake.py tests/test_jd_aware_role_context.py tests/test_top_band_runtime_route_repair_queue.py -q
uv run ruff check src/aina_data_engine/reports.py src/aina_data_engine/top_band_linkedin_source_authority_intake.py src/aina_data_engine/jd_aware_role_context.py src/aina_data_engine/cli.py tests/test_top_band_linkedin_source_authority_intake.py tests/test_jd_aware_role_context.py
uv run aina-data-engine --root /srv/aina/aina-data-engine-room production-runtime-readiness
uv run aina-data-engine --root /srv/aina/aina-data-engine-room ain-506-p0-gate
uv run aina-data-engine --root /srv/aina/aina-data-engine-room ain-510-retrieval-promotion-gate
uv run aina-data-engine --root /srv/aina/aina-data-engine-room top-band-linkedin-source-authority-intake
uv run aina-data-engine --root /srv/aina/aina-data-engine-room jd-aware-role-context-evidence --fixture-limit 50
uv run aina-data-engine --root /srv/aina/aina-data-engine-room validate

Key evidence: production runtime readiness is ready_to_harden_headless_production_runtime; AIN-506 passed; AIN-510 is promotion_ready; full validation passed with zero failed checks; LinkedIn intake passed with 52 rows and 416 source-ref keys; JD-aware role context now covers 499 / 499 top 500 titles and 996 / 996 top 1,000 titles.

07 · Next slice

Bridge source context into runtime contracts

Start from the 52-row source-backed intake set. The next slice should read the intake rows and JD-aware role-context rows together, promote only rows that have enough source authority to serve safely, and keep ambiguous rows as abstain with a clear learner or source confirmation path.

cd /srv/aina/aina-data-engine-room
git status --short --branch
uv run aina-data-engine --root /srv/aina/aina-data-engine-room validate
uv run aina-data-engine --root /srv/aina/aina-data-engine-room top-band-linkedin-source-authority-intake
uv run aina-data-engine --root /srv/aina/aina-data-engine-room jd-aware-role-context-evidence --fixture-limit 50
uv run aina-data-engine --root /srv/aina/aina-data-engine-room top-band-runtime-route-repair-queue
Where to start

Open the 52-row LinkedIn intake first, then bridge source-backed JD context into runtime contracts without promoting ambiguous rows.