Top-Band Repair-First Triage Handoff
The repair-first bucket now reuses prior fixture work before any new generation.
The repair-first abstains are no longer a vague bucket. They are reconciled against existing AI Fluency proof-tail fixtures before any new generation, which means the engine room now knows what can move next, what must stay policy-held, and what still needs source-authority search.
What Changed
Added top_band_repair_first_triage_v1. It consumes top_band_abstain_hardening_v1 and ai_fluency_proof_tail_fixtures_v1, then classifies the 8 repair-first rows using existing fixtures and hardening evidence.
The lane does not change runtime routing. It emits ready and blocked sidecars for the next slice.
Live Counts
Ready Candidate
| Original Title | Cleaned Candidate | Fixture Used | Next Action |
|---|---|---|---|
service delivery coordinator washington dc | service delivery coordinator | delivery coordinator | run_title_repair_semantic_qa_before_bridge |
Held Rows
| Title | Decision | Reason |
|---|---|---|
paralegal corporate documentation | policy-first | legal / people-sensitive |
contract paralegal temporary | policy-first | legal / people-sensitive |
chat support | policy-first | customer data privacy |
experienced paralegals attorneys work at home remote telecommuting | policy-first | legal |
remote paralegal for a growing intellectual property law firm | policy-first | legal |
attorney ii remote | policy-first | legal |
ai content writer | blocked | no reusable fixture or source too thin |
The important anti-loop result is that seven rows reused existing fixture work instead of asking a model to rediscover it.
Verification
uv run pytest tests/test_top_band_repair_first_triage.py tests/test_top_band_abstain_hardening.py tests/test_top_band_abstain_semantic_qa.py tests/test_top_band_abstain_contract_bridge.py tests/test_production_runtime_contracts.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/top_band_repair_first_triage.py tests/test_top_band_repair_first_triage.py src/aina_data_engine/cli.py src/aina_data_engine/reports.py uv run aina-data-engine --root /srv/aina/aina-data-engine-room top-band-repair-first-triage 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 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 production-runtime-readiness
No live Gemini call, public runtime, real-user data, external writes, production telemetry, donor repo mutation, or runtime embedding authority promotion happened in this lane.
Next Move
The next narrow slice should run semantic QA only for service delivery coordinator washington dc -> service delivery coordinator. If it passes, it can follow the existing caveated bridge pattern. The six policy-first rows need a regulated/customer-data policy lane before runtime fallback. ai content writer needs source-authority search before it can be repaired or embedded.
cd /srv/aina/aina-data-engine-room git status --short --branch uv run aina-data-engine --root /srv/aina/aina-data-engine-room top-band-repair-first-triage
Start with the one ready title-repair row, but keep the bridge boundary intact until semantic QA proves it.