{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "name": "primitive-authoring routing accuracy corpus",
  "version": "2.1.0",
  "purpose": "Routing-eval corpus for primitive-authoring. 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": "primitive-authoring routing, does this phrase activate primitive-authoring?",
  "phrases": [
    {
      "id": "primitive-authoring-pos-01",
      "phrase": "add a new button-ui primitive component",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-02",
      "phrase": "build a new <toggle-ui> component from scratch",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-03",
      "phrase": "create a new primitive web component in packages/web-components",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-04",
      "phrase": "add a new prop to table-ui",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-05",
      "phrase": "fix the CSS in card-ui to handle the new bleed variant",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-06",
      "phrase": "update the input-ui yaml to add a placeholder attribute",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-07",
      "phrase": "build the chat-shell composition with the new sidebar slot",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-08",
      "phrase": "author a new web-module shell at packages/web-modules/editor/editor-shell",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-09",
      "phrase": "add a pane behaviour to admin-shell per the bespoke shell-tier convention",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-10",
      "phrase": "promote this inline content to a shared web-modules module",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-11",
      "phrase": "this content keeps repeating across apps, extract to a shared module",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-12",
      "phrase": "lift this billing-summary block from apps/saas to web-modules",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-13",
      "phrase": "audit the four-axis contract for table-ui",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-14",
      "phrase": "check the token usage in card-ui for drift",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-15",
      "phrase": "lifecycle audit on dropdown-ui, symmetric connected/disconnected?",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-16",
      "phrase": "author a demo for the billing-overview composite",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-17",
      "phrase": "compose the examples.html for dashboard-layout",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-pos-18",
      "phrase": "write the demo for <integrations-page-ui> in packages/web-modules/settings",
      "expected": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-neg-01",
      "phrase": "compose this Figma mock into AdiaUI components for our consumer app",
      "expected_not": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-neg-02",
      "phrase": "cut a release of the next version and publish the npm packages",
      "expected_not": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-neg-03",
      "phrase": "tune the zettel composition coverage; eval is at 38%",
      "expected_not": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-neg-04",
      "phrase": "build a user profile card with avatar and edit actions",
      "expected_not": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-neg-05",
      "phrase": "deploy the api service to the hosting platform",
      "expected_not": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-neg-06",
      "phrase": "explain how React hooks work",
      "expected_not": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-neg-07",
      "phrase": "the gemini adapter is dropping usage tokens on streamed responses",
      "expected": "llm-client-maintenance"
    },
    {
      "id": "primitive-authoring-neg-08",
      "phrase": "fix the openai stopReason mapping in the llm client",
      "expected_not": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-neg-09",
      "phrase": "extend the LLM bridge to add a new provider",
      "expected_not": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-neg-10",
      "phrase": "modify createAdapter in @adia-ai/llm to add chunk-shape support",
      "expected_not": "primitive-authoring"
    },
    {
      "id": "primitive-authoring-neg-11",
      "phrase": "set up the LLM-bridge surface for a new tool-call provider",
      "expected_not": "primitive-authoring"
    }
  ],
  "_measured_historical": {
    "as_of": "2026-07-18",
    "scorer": "routing_eval.py (nonoun-plugins/forge)",
    "f1": 0.971,
    "precision": 1.0,
    "recall": 0.944,
    "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."
  }
}
