AINA Data Engine Room · Handoff · 2026-06-13

Sensitive Guardrail Fixture Packs

The sensitive abstains now have local evaluator mismatch fixtures, but no runtime or embedding promotion.

Ali Mehdi Mukadam · co-authored with Codex · Repo: /srv/aina/aina-data-engine-room

The Single Idea

This slice converted the sensitive source-authority triage ledger into local evaluator mismatch fixture packs. It gives the next runtime-hardening lane concrete tests for legal, HR, education, finance, healthcare, customer-data, and public-sector risk. It still does not promote any sensitive abstain into runtime bridges, embeddings, public behavior, or production authority.

01 · What Changed

From Triage To Testable Fixtures

The new top_band_sensitive_guardrail_fixture_pack_v1 lane consumes top_band_sensitive_source_authority_triage_v1, creates one guardrail pack per risk bucket, and creates one evaluator mismatch fixture per candidate row. Non-candidates stay blocked with exact next actions.

Input25-row sensitive triage
Packs7 risk buckets
Fixtures22 evaluator cases
Outputruntime still locked
02 · Live Result

The 25 Rows Are Now Actionable Without Promotion

The fixture pack creates local test scaffolding only. The blocked rows stay blocked because subtype confirmation, context resolution, or label repair is still required.

22fixture rows
7bucket packs
3blocked rows
0runtime promotions
TitleRankDecisionNext Action
case manager122hold_for_learner_or_source_confirmationKeep abstain until role subtype or source confirmation.
teacher special education91hold_for_context_resolutionResolve JD role context before guardrail fixture.
paralegal corporate documentation402repair_labels_before_sensitive_guardrailComplete label and text repair before guardrail fixture.
03 · Risk Buckets

Every Sensitive Bucket Has A Pack

BucketTriage RowsFixture Rows
legal_compliance1714
people_hr_sensitive1715
education_minors108
finance_regulatory97
public_sector43
customer_data32
healthcare_privacy32

The fixture counts are lower than the triage counts because the three held or repair-first rows still carry risk buckets but cannot receive evaluator fixtures yet.

04 · Validation

Current Gates Are Green

uv run pytest tests/test_top_band_sensitive_guardrail_fixture_pack.py tests/test_top_band_sensitive_source_authority_triage.py tests/test_production_runtime_contracts.py -q
uv run ruff check src/aina_data_engine/top_band_sensitive_guardrail_fixture_pack.py src/aina_data_engine/cli.py src/aina_data_engine/reports.py tests/test_top_band_sensitive_guardrail_fixture_pack.py
uv run aina-data-engine --root /srv/aina/aina-data-engine-room top-band-sensitive-guardrail-fixture-pack
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

Results: focused pytest 10 passed, ruff passed, fixture pack returned fixture_packs_ready, validation passed, AIN-506 passed, AIN-510 returned promotion_ready, and runtime readiness returned ready_to_harden_headless_production_runtime.

6510valid vectors
500top-500 vectors
1000top-1,000 vectors
0.190463known-pair gap
05 · Boundaries

No Production Authority Was Expanded

No live Gemini call, no embedding manifest, no batch manifest, no runtime bridge, no public runtime unlock, no real-user data, no external writes, no production telemetry, no runtime embedding authority promotion, and no donor repo mutation.

Run The Fixtures Before Bridging

The next production-quality slice should execute these 22 mismatch cases locally, produce pass/fail receipts by fixture, bucket, and title, keep failures in abstain, and allow only passing rows to become candidates for a caveated sensitive fallback bridge.

Where To Start

Resume by running evaluator execution over the 22 fixture rows; do not bridge or embed them until those mismatch cases pass.