{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "name": "package-release routing accuracy corpus",
  "version": "2.1.0",
  "purpose": "Routing-eval corpus for package-release. Each phrase declares the skill (expected), a forbidden skill (expected_not, for phrases the source data only ever asserted as \"not this skill\"), or neither. Scored by scripts/skills/run-skill-evals.mjs (TF-IDF token overlap over per-skill description+triggers).",
  "scoring_notes": "Heuristic signal, not ground truth. Treat misroutes as a prompt to tighten the skill description, never as a reason to keyword-stuff it. Real harness routing is LLM-driven.",
  "scope": "package-release routing, does this phrase activate package-release?",
  "phrases": [
    {
      "id": "package-release-pos-01",
      "phrase": "Cut and ship v0.8.5 of the AdiaUI packages",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-02",
      "phrase": "The [Unreleased] CHANGELOG entries are piling up, let's cut a release",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-03",
      "phrase": "Tag the lockstep packages and push them to origin",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-04",
      "phrase": "check:lockstep is failing, one package didn't bump",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-05",
      "phrase": "Dispatch the publish workflows for v0.8.5 and verify npm",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-06",
      "phrase": "We have three unpushed release commits piled up, batch-push them",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-07",
      "phrase": "F-N1 is warning about a CHANGELOG entry not covering a touched directory",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-08",
      "phrase": "The release cut landed on the wrong branch, help me recover",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-09",
      "phrase": "Author the release notes and Slack post for the last two versions",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-10",
      "phrase": "This cut removes the variant prop from button-ui, write the MIGRATION GUIDE section",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-11",
      "phrase": "Publish the adia-ui-forge plugin independently of the lockstep set",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-12",
      "phrase": "Just verify the release gates are green without cutting anything",
      "expected": "package-release"
    },
    {
      "id": "package-release-pos-13",
      "phrase": "Tags are pushed but zero publish workflows fired, what happened",
      "expected": "package-release"
    },
    {
      "id": "package-release-neg-01",
      "phrase": "Restart the exe.dev VM, it's returning 502s",
      "expected_not": "package-release"
    },
    {
      "id": "package-release-neg-02",
      "phrase": "Rsync the built dist folder to ui-kit.exe.xyz",
      "expected_not": "package-release"
    },
    {
      "id": "package-release-neg-03",
      "phrase": "Sweep our consumer app for the renamed variant prop after the last breaking release",
      "expected_not": "package-release"
    },
    {
      "id": "package-release-neg-04",
      "phrase": "Add a new size variant to the button-ui primitive",
      "expected_not": "package-release"
    },
    {
      "id": "package-release-neg-05",
      "phrase": "Compose a settings screen for our app from the AdiaUI catalog",
      "expected_not": "package-release"
    },
    {
      "id": "package-release-neg-06",
      "phrase": "zettel coverage dropped on the nightly eval, find out why",
      "expected_not": "package-release"
    },
    {
      "id": "package-release-neg-07",
      "phrase": "sweep the component demos for native-primitive leaks before we cut",
      "expected_not": "package-release"
    },
    {
      "id": "package-release-neg-08",
      "phrase": "the gemini adapter is dropping usage tokens on streamed responses",
      "expected": "llm-client-maintenance"
    }
  ],
  "_measured_historical": {
    "as_of": "2026-07-18",
    "scorer": "routing_eval.py (nonoun-plugins/forge)",
    "f1": 1.0,
    "precision": 1.0,
    "recall": 1.0,
    "exit_code": 0,
    "note": "measured by the external routing_eval.py (nonoun-plugins/forge) against the pre-conversion positives/negatives shape; historical record only, not regenerated by run-skill-evals.mjs."
  }
}
