{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "name": "a2ui-maintenance routing accuracy corpus",
  "version": "2.1.0",
  "purpose": "Routing-eval corpus for a2ui-maintenance. 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": "a2ui-maintenance routing, does this phrase activate a2ui-maintenance?",
  "phrases": [
    {
      "id": "a2ui-maintenance-pos-01",
      "phrase": "validate this A2UI document",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-02",
      "phrase": "harvest a chunk from this HTML demo",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-03",
      "phrase": "zettel coverage dropped after the last change",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-04",
      "phrase": "should this repeated subtree become its own chunk",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-05",
      "phrase": "tune the STRONG_MATCH threshold",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-06",
      "phrase": "run check_anti_patterns on this rendered HTML",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-07",
      "phrase": "refine composition with an OAuth row",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-08",
      "phrase": "MRR dropped in the chunk retrieval eval",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-09",
      "phrase": "add an MCP tool to the a2ui server",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-10",
      "phrase": "audit the training data corpus for drift",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-11",
      "phrase": "diagnose this eval gap and regression",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-12",
      "phrase": "run the MCP pipeline: generate_ui then validate_schema",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-13",
      "phrase": "lift a semantic fail under sixty",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-pos-14",
      "phrase": "why did the composer emit composition-match instead of composition-synthesized",
      "expected": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-neg-01",
      "phrase": "build a settings page from existing primitives",
      "expected_not": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-neg-02",
      "phrase": "add a slot to button-ui and update its yaml contract",
      "expected_not": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-neg-03",
      "phrase": "cut a release and bump the version tag",
      "expected_not": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-neg-04",
      "phrase": "score the generated UI quality in apps/genui",
      "expected_not": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-neg-05",
      "phrase": "run a broad visual QA sweep across site and playgrounds",
      "expected_not": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-neg-06",
      "phrase": "fix the @adia-ai/llm SSE adapter",
      "expected_not": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-neg-07",
      "phrase": "explain how React state management works",
      "expected_not": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-neg-08",
      "phrase": "compose a settings screen from catalog primitives",
      "expected_not": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-neg-09",
      "phrase": "mount gen-root and wire data resolvers for end users at runtime",
      "expected_not": "a2ui-maintenance"
    },
    {
      "id": "a2ui-maintenance-neg-10",
      "phrase": "edit the getting-started docs page on the site",
      "expected_not": "a2ui-maintenance"
    }
  ],
  "_measured_historical": {
    "as_of": "2026-07-18",
    "scorer": "routing_eval.py (nonoun-plugins/forge)",
    "f1": 0.783,
    "precision": 1.0,
    "recall": 0.643,
    "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."
  }
}
