Skip to content

Make the whole case library auditable: backfill routing cards for the 19 grandfathered cases #55

Description

@openleek

Why this matters

Every research case is supposed to carry a machine-checkable routing.json — the record of how the task was classified and scoped before any analysis. New cases are required to have one. But 19 older cases are grandfathered out via cases/legacy-routing-exempt.txt, so today the case library is split: new work is auditable, old work isn't. That's a blind spot — you can't ask "show me every actionability case that skipped the decision-pressure gate" and trust the answer while a third of the library is exempt.

This issue burns that exemption list down to zero, so the whole library answers routing questions consistently.

What's involved

  • Backfill cases/<id>/routing.json for the 19 exempt cases, removing each from cases/legacy-routing-exempt.txt as it's done.
  • Order: any canonical/golden or actively-referenced cases first (highest value), oldest one-off backtests last.
  • Each backfill is validated instantly by just check-case <id> against schemas/routing.schema.json.
  • When the list reaches zero, delete the file and the validate_case_routing exempt branch in validate_repo.py.

Done when

  • cases/legacy-routing-exempt.txt is empty (then removed), and every case with a memo/evidence-log has a schema-valid routing.json.
  • just check stays green throughout (it will, since each case is validated as added).

Context

The exempt list was a deliberate grandfather snapshot (PR #51) to avoid turning the schema rollout into a 21-case migration. It doubles as a visible debt counter — this issue is the burndown. See architecture/harness-productization-notes.md (WS1.5 / WS2).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions