@adia-ai/adia-ui-forge 0.8.36 → 0.8.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +53 -18
  3. package/README.md +17 -17
  4. package/agents/{a2ui-builder.corpus.json → a2ui-maintenance-agent.corpus.json} +1 -1
  5. package/agents/{a2ui-builder.md → a2ui-maintenance-agent.md} +6 -6
  6. package/agents/framework-reviewer.md +6 -6
  7. package/agents/{release-builder.corpus.json → package-release-agent.corpus.json} +3 -3
  8. package/agents/{release-builder.md → package-release-agent.md} +7 -7
  9. package/agents/{component-author.corpus.json → primitive-authoring-agent.corpus.json} +2 -2
  10. package/agents/{component-author.md → primitive-authoring-agent.md} +7 -7
  11. package/agents/routing-corpus.json +40 -40
  12. package/commands/{dogfood.md → demo-audit.md} +2 -1
  13. package/commands/{gen-review.md → gen-ui-review.md} +3 -2
  14. package/commands/{release.md → package-release.md} +3 -2
  15. package/commands/{deploy.md → site-deployment.md} +2 -1
  16. package/package.json +1 -1
  17. package/references/contracts/a2ui-mcp-surface.md +16 -8
  18. package/references/contracts/migration-guide-format.md +4 -4
  19. package/scripts/demo-postwrite-pattern-gate +2 -2
  20. package/scripts/release-pretag-docs-gate +2 -2
  21. package/scripts/sidecar-prewrite-guard +3 -3
  22. package/skills/{adia-a2ui → a2ui-maintenance}/SKILL.md +10 -9
  23. package/skills/{adia-a2ui → a2ui-maintenance}/evals/evals.json +8 -8
  24. package/skills/{adia-a2ui → a2ui-maintenance}/evals/routing-corpus.json +51 -51
  25. package/skills/{adia-a2ui → a2ui-maintenance}/references/anti-patterns.md +2 -2
  26. package/skills/{adia-a2ui → a2ui-maintenance}/references/chunk-authoring.md +2 -2
  27. package/skills/{adia-a2ui → a2ui-maintenance}/references/eval-diagnostics.md +3 -3
  28. package/skills/{adia-a2ui → a2ui-maintenance}/references/format-extension-decisions.md +2 -2
  29. package/skills/{adia-a2ui → a2ui-maintenance}/references/mcp-pipeline-ops.md +5 -5
  30. package/skills/{adia-a2ui → a2ui-maintenance}/references/mcp-tool-reference.md +5 -4
  31. package/skills/{adia-a2ui → a2ui-maintenance}/references/pipeline-overview.md +18 -18
  32. package/skills/{adia-a2ui → a2ui-maintenance}/references/semantic-fail-lifting.md +2 -2
  33. package/skills/{adia-a2ui → a2ui-maintenance}/references/strategy-engines.md +2 -2
  34. package/skills/{adia-a2ui → a2ui-maintenance}/references/zettel-calibration.md +2 -2
  35. package/skills/{adia-dogfood → demo-audit}/SKILL.md +8 -8
  36. package/skills/{adia-dogfood → demo-audit}/evals/evals.json +7 -7
  37. package/skills/{adia-dogfood → demo-audit}/evals/routing-corpus.json +43 -43
  38. package/skills/{adia-dogfood → demo-audit}/references/visual-probe-triage.md +1 -1
  39. package/skills/{adia-dogfood → demo-audit}/scripts/analyze.mjs +2 -2
  40. package/skills/{adia-gen-review → gen-ui-review}/SKILL.md +13 -13
  41. package/skills/{adia-gen-review → gen-ui-review}/evals/evals.json +7 -7
  42. package/skills/{adia-gen-review → gen-ui-review}/evals/routing-corpus.json +43 -43
  43. package/skills/{adia-gen-review → gen-ui-review}/references/corpus-html-patterns.md +4 -4
  44. package/skills/{adia-gen-review → gen-ui-review}/references/loop-protocol.md +11 -11
  45. package/skills/{adia-gen-review → gen-ui-review}/references/scores.schema.json +1 -1
  46. package/skills/{adia-gen-review → gen-ui-review}/scripts/gen-review-coverage-audit.mjs +4 -4
  47. package/skills/{adia-gen-review → gen-ui-review}/scripts/gen-review-decompose.mjs +6 -6
  48. package/skills/{adia-gen-review → gen-ui-review}/scripts/gen-review-status.mjs +5 -5
  49. package/skills/{adia-gen-review → gen-ui-review}/scripts/validate-cycle-scores.mjs +5 -5
  50. package/skills/{adia-llm-internals → llm-client-maintenance}/SKILL.md +7 -7
  51. package/skills/{adia-llm-internals → llm-client-maintenance}/evals/evals.json +7 -7
  52. package/skills/{adia-llm-internals → llm-client-maintenance}/evals/routing-corpus.json +49 -49
  53. package/skills/{adia-llm-internals → llm-client-maintenance}/references/adapter-contract.md +3 -3
  54. package/skills/{adia-llm-internals → llm-client-maintenance}/references/add-a-provider.md +5 -5
  55. package/skills/{adia-llm-internals → llm-client-maintenance}/references/bridge-facade.md +2 -2
  56. package/skills/{adia-llm-internals → llm-client-maintenance}/references/browser-proxy-boundary.md +2 -2
  57. package/skills/{adia-llm-internals → llm-client-maintenance}/references/model-registry.md +2 -2
  58. package/skills/{adia-llm-internals → llm-client-maintenance}/references/streaming-sse.md +2 -2
  59. package/skills/{adia-release → package-release}/SKILL.md +16 -16
  60. package/skills/{adia-release → package-release}/evals/evals.json +7 -7
  61. package/skills/{adia-release → package-release}/evals/routing-corpus.json +45 -45
  62. package/skills/{adia-release → package-release}/references/changelog-discipline.md +4 -4
  63. package/skills/{adia-release → package-release}/references/cut-procedure.md +84 -30
  64. package/skills/{adia-release → package-release}/references/gates-catalog.md +7 -6
  65. package/skills/{adia-release → package-release}/references/independent-package-release.md +2 -2
  66. package/skills/{adia-release → package-release}/references/migration-guide-authoring.md +12 -3
  67. package/skills/{adia-release → package-release}/references/recovery-paths.md +5 -5
  68. package/skills/{adia-release → package-release}/scripts/bump.mjs +87 -37
  69. package/skills/{adia-release → package-release}/scripts/dispatch-publish.mjs +1 -1
  70. package/skills/{adia-release → package-release}/scripts/gate-roster.mjs +17 -6
  71. package/skills/{adia-release → package-release}/scripts/insert-stub.mjs +30 -8
  72. package/skills/{adia-release → package-release}/scripts/package-paths.mjs +47 -18
  73. package/skills/{adia-release → package-release}/scripts/pr-bridge.mjs +1 -1
  74. package/skills/{adia-release → package-release}/scripts/promote-unreleased.mjs +1 -1
  75. package/skills/{adia-release → package-release}/scripts/release-pack.mjs +29 -8
  76. package/skills/{adia-release → package-release}/scripts/tag-lockstep.mjs +2 -2
  77. package/skills/{adia-author → primitive-authoring}/SKILL.md +7 -7
  78. package/skills/{adia-author → primitive-authoring}/evals/evals.json +7 -7
  79. package/skills/{adia-author → primitive-authoring}/evals/routing-corpus.json +61 -61
  80. package/skills/{adia-author → primitive-authoring}/references/INDEX.md +2 -2
  81. package/skills/{adia-author → primitive-authoring}/references/authoring-cycle.md +1 -1
  82. package/skills/{adia-author → primitive-authoring}/references/code-style.md +5 -5
  83. package/skills/{adia-author → primitive-authoring}/references/common-gotchas.md +1 -1
  84. package/skills/{adia-author → primitive-authoring}/references/llm-bridge.md +17 -17
  85. package/skills/{adia-author → primitive-authoring}/references/module-promotion.md +5 -5
  86. package/skills/{adia-author → primitive-authoring}/references/shell-patterns.md +2 -2
  87. package/skills/{adia-author → primitive-authoring}/references/trait-pages.md +1 -1
  88. package/skills/{adia-author → primitive-authoring}/scripts/build-canonical-pattern-index.mjs +1 -1
  89. package/skills/{adia-deploy → site-deployment}/SKILL.md +6 -6
  90. package/skills/{adia-deploy → site-deployment}/evals/evals.json +8 -8
  91. package/skills/{adia-deploy → site-deployment}/evals/routing-corpus.json +49 -49
  92. package/skills/{adia-deploy → site-deployment}/references/deploy-playbooks.md +10 -10
  93. package/skills/{adia-site-docs → site-docs-authoring}/SKILL.md +4 -4
  94. package/skills/{adia-site-docs → site-docs-authoring}/evals/evals.json +7 -7
  95. package/skills/{adia-site-docs → site-docs-authoring}/evals/routing-corpus.json +51 -51
  96. package/skills/{adia-site-docs → site-docs-authoring}/intent.md +8 -8
  97. package/skills/{adia-ssr → ssr-compatibility}/SKILL.md +8 -8
  98. package/skills/{adia-ssr → ssr-compatibility}/evals/evals.json +7 -7
  99. package/skills/{adia-ssr → ssr-compatibility}/evals/routing-corpus.json +43 -43
  100. package/skills/{adia-ssr → ssr-compatibility}/references/failure-shapes.md +1 -1
  101. package/skills/{adia-ssr → ssr-compatibility}/references/guard-patterns.md +1 -1
  102. /package/skills/{adia-a2ui → a2ui-maintenance}/references/corpus-discipline.md +0 -0
  103. /package/skills/{adia-a2ui → a2ui-maintenance}/references/leverage-rules.md +0 -0
  104. /package/skills/{adia-dogfood → demo-audit}/references/admin-shell-anatomy.md +0 -0
  105. /package/skills/{adia-dogfood → demo-audit}/references/app-shell-pitfalls.md +0 -0
  106. /package/skills/{adia-dogfood → demo-audit}/references/card-anatomy-sweep.md +0 -0
  107. /package/skills/{adia-dogfood → demo-audit}/references/html-attr-sweep.md +0 -0
  108. /package/skills/{adia-dogfood → demo-audit}/references/native-leak-annotations.md +0 -0
  109. /package/skills/{adia-gen-review → gen-ui-review}/references/rubric-cosmetic.md +0 -0
  110. /package/skills/{adia-gen-review → gen-ui-review}/references/rubric-decompose.md +0 -0
  111. /package/skills/{adia-gen-review → gen-ui-review}/references/rubric-score.md +0 -0
  112. /package/skills/{adia-release → package-release}/references/notes-authoring.md +0 -0
  113. /package/skills/{adia-release → package-release}/scripts/assert-monorepo-root.mjs +0 -0
  114. /package/skills/{adia-author → primitive-authoring}/references/anti-patterns.md +0 -0
  115. /package/skills/{adia-author → primitive-authoring}/references/api-contract.md +0 -0
  116. /package/skills/{adia-author → primitive-authoring}/references/canonical-pattern-index.md +0 -0
  117. /package/skills/{adia-author → primitive-authoring}/references/composite-demo-protocol.md +0 -0
  118. /package/skills/{adia-author → primitive-authoring}/references/css-patterns.md +0 -0
  119. /package/skills/{adia-author → primitive-authoring}/references/lifecycle-patterns.md +0 -0
  120. /package/skills/{adia-author → primitive-authoring}/references/primitive-audit.md +0 -0
  121. /package/skills/{adia-author → primitive-authoring}/references/token-contract.md +0 -0
  122. /package/skills/{adia-author → primitive-authoring}/references/worked-example.md +0 -0
  123. /package/skills/{adia-author → primitive-authoring}/references/yaml-contract.md +0 -0
  124. /package/skills/{adia-ssr → ssr-compatibility}/references/consumer-workarounds.md +0 -0
  125. /package/skills/{adia-ssr → ssr-compatibility}/references/status-ledger.md +0 -0
  126. /package/skills/{adia-ssr → ssr-compatibility}/references/test-without-linkedom.md +0 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "skill": "adia-author",
2
+ "skill": "primitive-authoring",
3
3
  "note": "Trigger-routing suite (gh#369). expect=trigger: the skill should fire on the prompt in a fresh session. expect=no-trigger: a near-miss owned elsewhere (owner named per case) or generic knowledge with no AdiaUI skill involved. Cases derived from evals/routing-corpus.json's phrases array (gh#355 vetted corpus) plus the SKILL.md description's own trigger/NOT-fence language.",
4
4
  "cases": [
5
5
  { "id": "t01", "prompt": "Add a new <toggle-ui> primitive component from scratch", "expect": "trigger" },
@@ -11,12 +11,12 @@
11
11
  { "id": "t07", "prompt": "Audit the four-axis contract for table-ui — token usage and lifecycle symmetry", "expect": "trigger" },
12
12
  { "id": "t08", "prompt": "Author a demo for the billing-overview composite, an examples.html", "expect": "trigger" },
13
13
  { "id": "t09", "prompt": "Add a pane behaviour to admin-shell per the bespoke shell-tier convention", "expect": "trigger" },
14
- { "id": "n01", "prompt": "Compose this Figma mock into AdiaUI components for our consumer app", "expect": "no-trigger", "owner": "adia-compose" },
15
- { "id": "n02", "prompt": "Cut a release of the next version and publish the npm packages", "expect": "no-trigger", "owner": "adia-release" },
16
- { "id": "n03", "prompt": "Tune the zettel composition coverage, the eval is at 38%", "expect": "no-trigger", "owner": "adia-a2ui" },
17
- { "id": "n04", "prompt": "Deploy the API service to the hosting platform", "expect": "no-trigger", "owner": "adia-deploy" },
18
- { "id": "n05", "prompt": "The gemini adapter is dropping usage tokens on streamed responses", "expect": "no-trigger", "owner": "adia-llm-internals" },
19
- { "id": "n06", "prompt": "Extend the LLM bridge in @adia-ai/llm to add a new provider", "expect": "no-trigger", "owner": "adia-llm-internals" },
14
+ { "id": "n01", "prompt": "Compose this Figma mock into AdiaUI components for our consumer app", "expect": "no-trigger", "owner": "screen-composition" },
15
+ { "id": "n02", "prompt": "Cut a release of the next version and publish the npm packages", "expect": "no-trigger", "owner": "package-release" },
16
+ { "id": "n03", "prompt": "Tune the zettel composition coverage, the eval is at 38%", "expect": "no-trigger", "owner": "a2ui-maintenance" },
17
+ { "id": "n04", "prompt": "Deploy the API service to the hosting platform", "expect": "no-trigger", "owner": "site-deployment" },
18
+ { "id": "n05", "prompt": "The gemini adapter is dropping usage tokens on streamed responses", "expect": "no-trigger", "owner": "llm-client-maintenance" },
19
+ { "id": "n06", "prompt": "Extend the LLM bridge in @adia-ai/llm to add a new provider", "expect": "no-trigger", "owner": "llm-client-maintenance" },
20
20
  { "id": "n07", "prompt": "Explain how React hooks work in general", "expect": "no-trigger" }
21
21
  ]
22
22
  }
@@ -1,155 +1,155 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "name": "adia-author routing accuracy corpus",
3
+ "name": "primitive-authoring routing accuracy corpus",
4
4
  "version": "2.1.0",
5
- "purpose": "Routing-eval corpus for adia-author. 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).",
5
+ "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).",
6
6
  "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.",
7
- "scope": "adia-author routing \u2014 does this phrase activate adia-author?",
7
+ "scope": "primitive-authoring routing \u2014 does this phrase activate primitive-authoring?",
8
8
  "phrases": [
9
9
  {
10
- "id": "adia-author-pos-01",
10
+ "id": "primitive-authoring-pos-01",
11
11
  "phrase": "add a new button-ui primitive component",
12
- "expected": "adia-author"
12
+ "expected": "primitive-authoring"
13
13
  },
14
14
  {
15
- "id": "adia-author-pos-02",
15
+ "id": "primitive-authoring-pos-02",
16
16
  "phrase": "build a new <toggle-ui> component from scratch",
17
- "expected": "adia-author"
17
+ "expected": "primitive-authoring"
18
18
  },
19
19
  {
20
- "id": "adia-author-pos-03",
20
+ "id": "primitive-authoring-pos-03",
21
21
  "phrase": "create a new primitive web component in packages/web-components",
22
- "expected": "adia-author"
22
+ "expected": "primitive-authoring"
23
23
  },
24
24
  {
25
- "id": "adia-author-pos-04",
25
+ "id": "primitive-authoring-pos-04",
26
26
  "phrase": "add a new prop to table-ui",
27
- "expected": "adia-author"
27
+ "expected": "primitive-authoring"
28
28
  },
29
29
  {
30
- "id": "adia-author-pos-05",
30
+ "id": "primitive-authoring-pos-05",
31
31
  "phrase": "fix the CSS in card-ui to handle the new bleed variant",
32
- "expected": "adia-author"
32
+ "expected": "primitive-authoring"
33
33
  },
34
34
  {
35
- "id": "adia-author-pos-06",
35
+ "id": "primitive-authoring-pos-06",
36
36
  "phrase": "update the input-ui yaml to add a placeholder attribute",
37
- "expected": "adia-author"
37
+ "expected": "primitive-authoring"
38
38
  },
39
39
  {
40
- "id": "adia-author-pos-07",
40
+ "id": "primitive-authoring-pos-07",
41
41
  "phrase": "build the chat-shell composition with the new sidebar slot",
42
- "expected": "adia-author"
42
+ "expected": "primitive-authoring"
43
43
  },
44
44
  {
45
- "id": "adia-author-pos-08",
45
+ "id": "primitive-authoring-pos-08",
46
46
  "phrase": "author a new web-module shell at packages/web-modules/editor/editor-shell",
47
- "expected": "adia-author"
47
+ "expected": "primitive-authoring"
48
48
  },
49
49
  {
50
- "id": "adia-author-pos-09",
50
+ "id": "primitive-authoring-pos-09",
51
51
  "phrase": "add a pane behaviour to admin-shell per the bespoke shell-tier convention",
52
- "expected": "adia-author"
52
+ "expected": "primitive-authoring"
53
53
  },
54
54
  {
55
- "id": "adia-author-pos-10",
55
+ "id": "primitive-authoring-pos-10",
56
56
  "phrase": "promote this inline content to a shared web-modules module",
57
- "expected": "adia-author"
57
+ "expected": "primitive-authoring"
58
58
  },
59
59
  {
60
- "id": "adia-author-pos-11",
60
+ "id": "primitive-authoring-pos-11",
61
61
  "phrase": "this content keeps repeating across apps, extract to a shared module",
62
- "expected": "adia-author"
62
+ "expected": "primitive-authoring"
63
63
  },
64
64
  {
65
- "id": "adia-author-pos-12",
65
+ "id": "primitive-authoring-pos-12",
66
66
  "phrase": "lift this billing-summary block from apps/saas to web-modules",
67
- "expected": "adia-author"
67
+ "expected": "primitive-authoring"
68
68
  },
69
69
  {
70
- "id": "adia-author-pos-13",
70
+ "id": "primitive-authoring-pos-13",
71
71
  "phrase": "audit the four-axis contract for table-ui",
72
- "expected": "adia-author"
72
+ "expected": "primitive-authoring"
73
73
  },
74
74
  {
75
- "id": "adia-author-pos-14",
75
+ "id": "primitive-authoring-pos-14",
76
76
  "phrase": "check the token usage in card-ui for drift",
77
- "expected": "adia-author"
77
+ "expected": "primitive-authoring"
78
78
  },
79
79
  {
80
- "id": "adia-author-pos-15",
80
+ "id": "primitive-authoring-pos-15",
81
81
  "phrase": "lifecycle audit on dropdown-ui \u2014 symmetric connected/disconnected?",
82
- "expected": "adia-author"
82
+ "expected": "primitive-authoring"
83
83
  },
84
84
  {
85
- "id": "adia-author-pos-16",
85
+ "id": "primitive-authoring-pos-16",
86
86
  "phrase": "author a demo for the billing-overview composite",
87
- "expected": "adia-author"
87
+ "expected": "primitive-authoring"
88
88
  },
89
89
  {
90
- "id": "adia-author-pos-17",
90
+ "id": "primitive-authoring-pos-17",
91
91
  "phrase": "compose the examples.html for dashboard-layout",
92
- "expected": "adia-author"
92
+ "expected": "primitive-authoring"
93
93
  },
94
94
  {
95
- "id": "adia-author-pos-18",
95
+ "id": "primitive-authoring-pos-18",
96
96
  "phrase": "write the demo for <integrations-page-ui> in packages/web-modules/settings",
97
- "expected": "adia-author"
97
+ "expected": "primitive-authoring"
98
98
  },
99
99
  {
100
- "id": "adia-author-neg-01",
100
+ "id": "primitive-authoring-neg-01",
101
101
  "phrase": "compose this Figma mock into AdiaUI components for our consumer app",
102
- "expected_not": "adia-author"
102
+ "expected_not": "primitive-authoring"
103
103
  },
104
104
  {
105
- "id": "adia-author-neg-02",
105
+ "id": "primitive-authoring-neg-02",
106
106
  "phrase": "cut a release of the next version and publish the npm packages",
107
- "expected_not": "adia-author"
107
+ "expected_not": "primitive-authoring"
108
108
  },
109
109
  {
110
- "id": "adia-author-neg-03",
110
+ "id": "primitive-authoring-neg-03",
111
111
  "phrase": "tune the zettel composition coverage; eval is at 38%",
112
- "expected_not": "adia-author"
112
+ "expected_not": "primitive-authoring"
113
113
  },
114
114
  {
115
- "id": "adia-author-neg-04",
115
+ "id": "primitive-authoring-neg-04",
116
116
  "phrase": "build a user profile card with avatar and edit actions",
117
- "expected_not": "adia-author"
117
+ "expected_not": "primitive-authoring"
118
118
  },
119
119
  {
120
- "id": "adia-author-neg-05",
120
+ "id": "primitive-authoring-neg-05",
121
121
  "phrase": "deploy the api service to the hosting platform",
122
- "expected_not": "adia-author"
122
+ "expected_not": "primitive-authoring"
123
123
  },
124
124
  {
125
- "id": "adia-author-neg-06",
125
+ "id": "primitive-authoring-neg-06",
126
126
  "phrase": "explain how React hooks work",
127
- "expected_not": "adia-author"
127
+ "expected_not": "primitive-authoring"
128
128
  },
129
129
  {
130
- "id": "adia-author-neg-07",
130
+ "id": "primitive-authoring-neg-07",
131
131
  "phrase": "the gemini adapter is dropping usage tokens on streamed responses",
132
- "expected": "adia-llm-internals"
132
+ "expected": "llm-client-maintenance"
133
133
  },
134
134
  {
135
- "id": "adia-author-neg-08",
135
+ "id": "primitive-authoring-neg-08",
136
136
  "phrase": "fix the openai stopReason mapping in the llm client",
137
- "expected_not": "adia-author"
137
+ "expected_not": "primitive-authoring"
138
138
  },
139
139
  {
140
- "id": "adia-author-neg-09",
140
+ "id": "primitive-authoring-neg-09",
141
141
  "phrase": "extend the LLM bridge to add a new provider",
142
- "expected_not": "adia-author"
142
+ "expected_not": "primitive-authoring"
143
143
  },
144
144
  {
145
- "id": "adia-author-neg-10",
145
+ "id": "primitive-authoring-neg-10",
146
146
  "phrase": "modify createAdapter in @adia-ai/llm to add chunk-shape support",
147
- "expected_not": "adia-author"
147
+ "expected_not": "primitive-authoring"
148
148
  },
149
149
  {
150
- "id": "adia-author-neg-11",
150
+ "id": "primitive-authoring-neg-11",
151
151
  "phrase": "set up the LLM-bridge surface for a new tool-call provider",
152
- "expected_not": "adia-author"
152
+ "expected_not": "primitive-authoring"
153
153
  }
154
154
  ],
155
155
  "_measured_historical": {
@@ -1,4 +1,4 @@
1
- # adia-author references — retrieval map
1
+ # primitive-authoring references — retrieval map
2
2
 
3
3
  One line per file: `path — the question it answers`. Load this first; load
4
4
  files on demand from it. Axes are topical (no severity ranking applies).
@@ -38,4 +38,4 @@ file, including the depth references those entries cross-link.
38
38
 
39
39
  ## Historical
40
40
 
41
- - [llm-bridge.md](llm-bridge.md) — superseded 2026-07-18 pointer: `@adia-ai/llm` internals belong to `adia-llm-internals`; kept only to redirect.
41
+ - [llm-bridge.md](llm-bridge.md) — superseded 2026-07-18 pointer: `@adia-ai/llm` internals belong to `llm-client-maintenance`; kept only to redirect.
@@ -233,7 +233,7 @@ npm run verify:palette # CVD thresholds across theme × scheme
233
233
  node -c path/to/new/file.js # JS syntax check
234
234
  ```
235
235
 
236
- The full release-side gate roster lives in the sibling **adia-release** skill; run its pre-flight sweep after any structural change.
236
+ The full release-side gate roster lives in the sibling **package-release** skill; run its pre-flight sweep after any structural change.
237
237
 
238
238
  If a gate fails, fix before declaring done.
239
239
 
@@ -132,7 +132,7 @@ Static markup written by hand uses the components directly. UIs generated from i
132
132
 
133
133
  The runtime handles `createSurface` / `updateComponents` / `wireComponents` messages and binds `FormController` / `DataStreamController` controllers automatically. Don't roll your own message handler — the wiring lives in `@adia-ai/a2ui-runtime`.
134
134
 
135
- For multi-turn refinement, pass back `state_id` from prior responses so the engine can chain through `parent_state_id`. See the sibling **adia-a2ui** skill for the operator playbook.
135
+ For multi-turn refinement, pass back `state_id` from prior responses so the engine can chain through `parent_state_id`. See the sibling **a2ui-maintenance** skill for the operator playbook.
136
136
 
137
137
  ## Two-block `@scope` CSS
138
138
 
@@ -316,7 +316,7 @@ Other deprecated forms swept in an early cut:
316
316
  - `'chat-submit'` event → `'submit'`
317
317
  - `<field-ui error="…">` → message moves to the slotted control
318
318
 
319
- For a wholesale consumer-side migration, use `adia-migrate` (adia-factory plugin) — it reads the MIGRATION GUIDE and runs the mechanical sweeps.
319
+ For a wholesale consumer-side migration, use `app-migration` (adia-factory plugin) — it reads the MIGRATION GUIDE and runs the mechanical sweeps.
320
320
 
321
321
  ## Validate, always
322
322
 
@@ -328,7 +328,7 @@ For consumer markup (HTML pages, exemplars, training data), the checks are manua
328
328
  - Run the project's lint if applicable: `npx eslint <path>`.
329
329
  - Smoke the rendered output via `npm run dev` and load the touched page.
330
330
 
331
- For component source under `packages/web-components/components/**`, the gate is heavier — see [authoring-cycle.md](authoring-cycle.md) Step 5 + the full release-side gate roster in the sibling **adia-release** skill.
331
+ For component source under `packages/web-components/components/**`, the gate is heavier — see [authoring-cycle.md](authoring-cycle.md) Step 5 + the full release-side gate roster in the sibling **package-release** skill.
332
332
 
333
333
  ## Cross-references
334
334
 
@@ -339,6 +339,6 @@ For component source under `packages/web-components/components/**`, the gate is
339
339
  - [token-contract.md](token-contract.md) — token audit procedure
340
340
  - [module-promotion.md](module-promotion.md) — promote inline → module
341
341
  - [anti-patterns.md](anti-patterns.md) — failure-mode catalogue with file:line refs
342
- - **adia-a2ui** (sibling skill) — generator / corpus / MCP pipeline
343
- - **adia-dogfood** (sibling skill) — cross-surface visual / static QA
342
+ - **a2ui-maintenance** (sibling skill) — generator / corpus / MCP pipeline
343
+ - **demo-audit** (sibling skill) — cross-surface visual / static QA
344
344
  - the **adia-factory** plugin — composition playbook for consumers building apps on the framework
@@ -125,7 +125,7 @@ async #loadContent(route) {
125
125
 
126
126
  ## 7. Minting a wrapper-shaped component before its registry.js entry lands — site-a2ui silently deletes the node, not just mis-types it
127
127
 
128
- **Pattern**: a tag is gated first and only, for `*-ui` tags, by `packages/a2ui/runtime/registry.js`'s hand-maintained `registry` map — inverted into `reverseRegistry` at `transpiler-maps.js`'s module init, consulted first thing in `compose/transpiler/transpiler.js:149-150`. `registry.js` is hand-edited, not generated by `node scripts/build/components.mjs` (that script writes sidecars/prop-catalog data, consumed only for prop-extraction fidelity on tags the transpiler ALREADY resolved — `transpiler-maps.js:22-26`); a runtime `registerType()` call doesn't rescue a stale row either — `reverseRegistry` is a one-time init snapshot, not live. Regenerate a site-a2ui row for a demo using a component minted in the SAME change, before its `registry.js` line lands, and the tag falls through to `transpiler.js`'s "Unknown → Column" branch (line 180-183) — same mechanism as gh#535's toolbar-group breakage, which at least rendered visibly-wrong. A NEW component is usually wrapper-shaped (one child, author-defined attributes like `anchor="bottom"` the transpiler doesn't map to any real A2UI prop). That shape trips a SECOND, separate rule right after — "single-child container chains flatten" (`transpiler.js:282-285`): a retyped Column with exactly one child and zero recognized props is discarded outright, and its child is spliced directly into the PARENT's children in its place. The wrapper's own id and node are never pushed to the tree at all — not visible-but-wrong, just gone. The row is then internally self-consistent (content hash matches source) so `check:chunks-fresh`/`verify:site-a2ui` both report clean.
128
+ **Pattern**: a tag is gated first and only, for `*-ui` tags, by `packages/gen-ui/a2ui/registry.js`'s hand-maintained `registry` map — inverted into `reverseRegistry` at `transpiler-maps.js`'s module init, consulted first thing in `compose/transpiler/transpiler.js:149-150`. `registry.js` is hand-edited, not generated by `node scripts/build/components.mjs` (that script writes sidecars/prop-catalog data, consumed only for prop-extraction fidelity on tags the transpiler ALREADY resolved — `transpiler-maps.js:22-26`); a runtime `registerType()` call doesn't rescue a stale row either — `reverseRegistry` is a one-time init snapshot, not live. Regenerate a site-a2ui row for a demo using a component minted in the SAME change, before its `registry.js` line lands, and the tag falls through to `transpiler.js`'s "Unknown → Column" branch (line 180-183) — same mechanism as gh#535's toolbar-group breakage, which at least rendered visibly-wrong. A NEW component is usually wrapper-shaped (one child, author-defined attributes like `anchor="bottom"` the transpiler doesn't map to any real A2UI prop). That shape trips a SECOND, separate rule right after — "single-child container chains flatten" (`transpiler.js:282-285`): a retyped Column with exactly one child and zero recognized props is discarded outright, and its child is spliced directly into the PARENT's children in its place. The wrapper's own id and node are never pushed to the tree at all — not visible-but-wrong, just gone. The row is then internally self-consistent (content hash matches source) so `check:chunks-fresh`/`verify:site-a2ui` both report clean.
129
129
 
130
130
  **Example**: minting `anchor-bar-ui` (gh#495, PR #569) and regenerating the `bulk-action-toolbar` pattern's site-a2ui row before the worktree's `registry.js` entry for it existed. Git-verified on the pre-fix commit (`ebf71832d`): `site-a2ui/pages/site__patterns__bulk-action-toolbar.a2ui.json` contains zero occurrences of `pat-bulk-float-bar` (the anchor-bar-ui's own authored id) anywhere — not retyped-and-visible, genuinely absent — while its single child (the toolbar content) survived, reparented one level up. `verify:site-a2ui` reported 321/321 clean.
131
131
 
@@ -1,15 +1,15 @@
1
1
  # LLM Bridge extension — @adia-ai/llm
2
2
 
3
- **Superseded 2026-07-18 — `@adia-ai/llm` internals are `adia-llm-internals`'s charter, not
4
- `adia-author`'s.** That skill's references (`adapter-contract.md`, `streaming-sse.md`,
3
+ **Superseded 2026-07-18 — `@adia-ai/llm` internals are `llm-client-maintenance`'s charter, not
4
+ `primitive-authoring`'s.** That skill's references (`adapter-contract.md`, `streaming-sse.md`,
5
5
  `model-registry.md`, `bridge-facade.md`, `browser-proxy-boundary.md`, `add-a-provider.md`)
6
6
  are the current, maintained source — this file is kept only as a historical pointer and is
7
- no longer linked from `adia-author`'s task-shape table or `code-style.md`. Route provider/
8
- streaming/bridge work to `adia-llm-internals`.
7
+ no longer linked from `primitive-authoring`'s task-shape table or `code-style.md`. Route provider/
8
+ streaming/bridge work to `llm-client-maintenance`.
9
9
 
10
- Use when adding a 4th provider, modifying `createAdapter()`, changing the streaming chunk shape, or extending `packages/llm/server.js`.
10
+ Use when adding a 4th provider, modifying `createAdapter()`, changing the streaming chunk shape, or extending `packages/llm/core/server.js`.
11
11
 
12
- This reference is about **modifying** the package. For day-to-day consumption (import + call), the README at `packages/llm/README.md` is sufficient.
12
+ This reference is about **modifying** the package. For day-to-day consumption (import + call), the README at `packages/llm/core/README.md` is sufficient.
13
13
 
14
14
  ---
15
15
 
@@ -18,7 +18,7 @@ This reference is about **modifying** the package. For day-to-day consumption (i
18
18
  - Adding a new provider adapter (e.g., DeepSeek, Cohere, Mistral)
19
19
  - Changing `maxTokens`, `temperature`, or another bridge default
20
20
  - Extending the streaming chunk type set (currently: `text` / `thinking` / `done` / `error`)
21
- - Adding a new endpoint to `packages/llm/server.js`
21
+ - Adding a new endpoint to `packages/llm/core/server.js`
22
22
  - Modifying the bridge's `complete()` / `stream()` shape
23
23
  - Debugging "why does my LLM call return truncated JSON?"
24
24
 
@@ -112,7 +112,7 @@ If you add a new endpoint, document it in the npm README under "Browser proxy mo
112
112
 
113
113
  ### Step 1: Create the adapter
114
114
 
115
- `packages/llm/adapters/<name>.js` exports a single object matching the shape used by anthropic / openai / gemini:
115
+ `packages/llm/core/adapters/<name>.js` exports a single object matching the shape used by anthropic / openai / gemini:
116
116
 
117
117
  ```js
118
118
  import { readSSE } from './sse.js';
@@ -139,7 +139,7 @@ export const myProvider = {
139
139
 
140
140
  ### Step 2: Register in the facade
141
141
 
142
- Edit `packages/llm/adapters/index.js`:
142
+ Edit `packages/llm/core/adapters/index.js`:
143
143
 
144
144
  ```js
145
145
  import { myProvider } from './myprovider.js';
@@ -154,7 +154,7 @@ function detectProvider(model) {
154
154
 
155
155
  ### Step 3: Subpath export
156
156
 
157
- Edit `packages/llm/package.json`:
157
+ Edit `packages/llm/core/package.json`:
158
158
 
159
159
  ```json
160
160
  "exports": {
@@ -216,19 +216,19 @@ const DEFAULT_MODELS = {
216
216
  Run the smoke tests against the new provider:
217
217
 
218
218
  ```bash
219
- MYPROVIDER_API_KEY=*** node packages/a2ui/mcp/scripts/smoke-engine-registry.mjs
219
+ MYPROVIDER_API_KEY=*** node packages/gen-ui/mcp/gen-ui/scripts/smoke-engine-registry.mjs
220
220
  ```
221
221
 
222
222
  Then run real-LLM eval at low intent count:
223
223
 
224
224
  ```bash
225
- LLM_PROVIDER=myprovider node packages/a2ui/mcp/scripts/eval-diff.mjs --semantic
225
+ LLM_PROVIDER=myprovider node packages/gen-ui/mcp/gen-ui/scripts/eval-diff.mjs --semantic
226
226
  ```
227
227
 
228
228
  ## Pitfalls
229
229
 
230
- - **Two proxy shapes — `proxyUrl` is overloaded.** The bridge supports two architecturally different proxies and the dispatcher in `packages/llm/adapters/index.js` chooses between them by URL shape. Get this wrong and you get silent 401s in the browser even though `node packages/llm/server.js` works fine.
231
- - **Smart proxy** (`packages/llm/server.js`, route `POST /api/chat`): accepts a **provider-neutral body** `{ provider, model, messages, ... }`, holds the API key server-side, and dispatches internally to the right adapter. Headers are just `content-type: application/json`.
230
+ - **Two proxy shapes — `proxyUrl` is overloaded.** The bridge supports two architecturally different proxies and the dispatcher in `packages/llm/core/adapters/index.js` chooses between them by URL shape. Get this wrong and you get silent 401s in the browser even though `node packages/llm/core/server.js` works fine.
231
+ - **Smart proxy** (`packages/llm/core/server.js`, route `POST /api/chat`): accepts a **provider-neutral body** `{ provider, model, messages, ... }`, holds the API key server-side, and dispatches internally to the right adapter. Headers are just `content-type: application/json`.
232
232
  - **Passthrough proxy** (Vite dev `/api/llm/<provider>/<rest>` → real upstream URL `https://api.<provider>.com/<rest>`): expects the **real upstream body shape** (Anthropic-shaped for `/anthropic/`, OpenAI-shaped for `/openai/`, etc.) plus the **adapter's own auth headers** (`x-api-key` + `anthropic-version`, or `Authorization: Bearer …`). The proxy is dumb — it just rewrites the URL and forwards bytes.
233
233
  - Dispatcher: `chat()` and `streamChat()` in `adapters/index.js` call `isPassthroughProxy(proxyUrl)` (regex `/\/api\/llm\/[a-z]+(\/|$)/`). If true, they call `passthroughRequest()` which builds the real upstream body via `adapter.buildRequest()` then swaps in `proxyUrl`. If false, they call `proxyRequest()` with the provider-neutral body.
234
234
  - **When adding a new provider**, make sure: (1) `buildRequest()` omits the API key header when `proxyUrl` is the smart proxy (already handled), (2) `buildRequest()` _includes_ the API key header when called from `passthroughRequest()` (also already handled — passthroughRequest forwards adapter headers). The adapter's `buildRequest()` is the single source of truth for upstream-shape body + headers. Don't fork it for proxy mode.
@@ -246,7 +246,7 @@ After any extension:
246
246
  npm run check:lockstep # @adia-ai/llm version must match the others
247
247
  npm run smoke:engines # engines still register; pick still works
248
248
  npm run test:a2ui # 22 pass / 0 fail / 1 skipped
249
- node packages/llm/server.js # boots cleanly; .env auto-loads
249
+ node packages/llm/core/server.js # boots cleanly; .env auto-loads
250
250
  ```
251
251
 
252
252
  If you added a new SSE chunk type to the streaming protocol, verify all 7 consumers (chat-shell, generator.js, synthesis.js, eval-chunk-synthesis, eval-refine-synthesis, playgrounds/chat, apps/genui) still handle it correctly or fall through gracefully.
@@ -254,6 +254,6 @@ If you added a new SSE chunk type to the streaming protocol, verify all 7 consum
254
254
  ## Cross-references
255
255
 
256
256
  - [code-style.md](code-style.md) — general AdiaUI conventions (this is a specialty path; start there if you need broader context)
257
- - **adia-a2ui** (sibling skill) — generator / MCP / zettel synthesis (consumes the bridge)
257
+ - **a2ui-maintenance** (sibling skill) — generator / MCP / zettel synthesis (consumes the bridge)
258
258
  - Spec: `.claude/docs/specs/package-architecture.md` § 11 (Phase 5 — engine registry)
259
- - README: `packages/llm/README.md` — consumer-facing docs
259
+ - README: `packages/llm/core/README.md` — consumer-facing docs
@@ -119,7 +119,7 @@ The "stripped" consumer. Same structural change minus persistence.
119
119
 
120
120
  ### Phase 4 — Migrate the chunk corpus
121
121
 
122
- The harvested training-corpus chunk (`packages/a2ui/corpus/chunks/<name>.json`) embeds the consumer's HTML as an escaped string. Update it so the LLM sees the new authoring shape.
122
+ The harvested training-corpus chunk (`packages/gen-ui/a2ui/corpus/chunks/<name>.json`) embeds the consumer's HTML as an escaped string. Update it so the LLM sees the new authoring shape.
123
123
 
124
124
  1. **Preferred** — re-run the harvester:
125
125
 
@@ -144,7 +144,7 @@ The harvested training-corpus chunk (`packages/a2ui/corpus/chunks/<name>.json`)
144
144
  3. **Defensive grep across all chunks** for the legacy markers:
145
145
 
146
146
  ```bash
147
- grep -l 'id="<old-id>"' packages/a2ui/corpus/chunks/*.json
147
+ grep -l 'id="<old-id>"' packages/gen-ui/a2ui/corpus/chunks/*.json
148
148
  ```
149
149
 
150
150
  4. **Gotcha — hand-edit + later re-harvest** — if you used the fallback (step 2) AND a peer later adds your consumer's directory to harvester SOURCES, the next `harvest:chunks` run will overwrite your hand-edit with the live consumer HTML. Usually that's _good_ (the re-harvest captures the live state, including any post-edit consumer updates), but diff before assuming. Concrete example: theme-panel's `playground-app-shell.json` was hand-edited, then re-harvested after `playgrounds/` was added to SOURCES — the re-harvest captured the `<aside-ui>` → `<admin-sidebar>` bespoke conversion that the hand-edit missed.
@@ -159,7 +159,7 @@ The harvested training-corpus chunk (`packages/a2ui/corpus/chunks/<name>.json`)
159
159
 
160
160
  ### Phase 5 — Release
161
161
 
162
- Either ship as a standalone lockstep cut (per the sibling **adia-release** skill), OR ride a bundled cut that the user is already coordinating. Either way:
162
+ Either ship as a standalone lockstep cut (per the sibling **package-release** skill), OR ride a bundled cut that the user is already coordinating. Either way:
163
163
 
164
164
  1. **CHANGELOGs** — `packages/web-modules/CHANGELOG.md` `[Unreleased]` (or the dated bump block if you're cutting now) + root `CHANGELOG.md`.
165
165
  2. **README** — `packages/web-modules/README.md`: cluster table row, Layout tree entry, Quick start `import` line.
@@ -265,7 +265,7 @@ apps/playgrounds/catalog layout.
265
265
  - [shell-patterns.md](shell-patterns.md) — bespoke shell-tier decomposition (ADR-0023; the _different_ activity)
266
266
  - [authoring-cycle.md](authoring-cycle.md) — the standard 5-step authoring cycle
267
267
  - [api-contract.md](api-contract.md) — prop naming, reflection, the legacy forms
268
- - **adia-release** (sibling skill) — lockstep release cycle (Phase 5)
269
- - **adia-a2ui** (sibling skill) — chunk corpus harvest + smoke gates (Phase 4)
268
+ - **package-release** (sibling skill) — lockstep release cycle (Phase 5)
269
+ - **a2ui-maintenance** (sibling skill) — chunk corpus harvest + smoke gates (Phase 4)
270
270
  - Spec: `.claude/docs/specs/package-architecture.md` — three-tier package layout
271
271
  - ADR-0012 / ADR-0023 — decision labels: primitives-vs-modules-vs-themes and the bespoke shell pattern (history lives in git + PR descriptions)
@@ -532,8 +532,8 @@ When you encounter a legacy reference in old documentation or commit history, th
532
532
  ## After implementation
533
533
 
534
534
  1. Update this reference if you discover new pitfalls
535
- 2. Cut a lockstep release using the sibling **adia-release** skill
536
- 3. **When all consumers have migrated**, author the breaking-change migration recipe (adia-release owns the MIGRATION GUIDE) and cut a breaking release. Don't let the compat window outlive its usefulness.
535
+ 2. Cut a lockstep release using the sibling **package-release** skill
536
+ 3. **When all consumers have migrated**, author the breaking-change migration recipe (package-release owns the MIGRATION GUIDE) and cut a breaking release. Don't let the compat window outlive its usefulness.
537
537
 
538
538
  ## Anti-patterns specific to shells (deduplicated)
539
539
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Every trait detail page under `site/pages/traits/<name>/` follows one binding section template. The 41-page Phase B sweep proved what a loose contract produces: bimodal quality (portfolio-grade pages next to abstract-box demos) and zero pages teaching restraint. Navigate-by-template is the contract. Source: ADR-0019.
4
4
 
5
- Trait pages are this skill's charter (traits live in `packages/web-components/traits/`); `adia-site-docs` owns `site/pages/{architecture,getting-started,guides,patterns,reference}` — not `traits/`.
5
+ Trait pages are this skill's charter (traits live in `packages/web-components/traits/`); `site-docs-authoring` owns `site/pages/{architecture,getting-started,guides,patterns,reference}` — not `traits/`.
6
6
 
7
7
  ## Required sections, in order
8
8
 
@@ -9,7 +9,7 @@
9
9
  * Run from the framework monorepo root (the dirs it scans — apps/, catalog/,
10
10
  * playgrounds/ — are monorepo roots):
11
11
  *
12
- * node packages/plugins/adia-ui-forge/skills/adia-author/scripts/build-canonical-pattern-index.mjs
12
+ * node packages/plugins/adia-ui-forge/skills/primitive-authoring/scripts/build-canonical-pattern-index.mjs
13
13
  *
14
14
  * The output `references/canonical-pattern-index.md` is checked in so agents
15
15
  * reading the skill always see the current state without running the script
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: adia-deploy
2
+ name: site-deployment
3
3
  description: >-
4
4
  Deploys and operates the AdiaUI site + services on exe.dev VMs — pushing a
5
5
  `site-v*` tag through the hardened rsync --delete deploy to ui-kit.exe.xyz
@@ -9,12 +9,12 @@ description: >-
9
9
  rotation. Use for "deploy to exe.dev", "push a site-v* tag", "the site is
10
10
  502ing / looks stale", "roll back the last deploy", "restart/diagnose the
11
11
  exe service", "rotate keys on the VM". NOT for cutting the release itself
12
- (adia-release).
12
+ (package-release).
13
13
  disable-model-invocation: false
14
14
  user-invocable: true
15
15
  ---
16
16
 
17
- # adia-deploy
17
+ # site-deployment
18
18
 
19
19
  Operates AdiaUI services on **exe.dev** — shared Linux VMs reached via
20
20
  `ssh <host>.exe.xyz`. Four playbooks: deploy an update, diagnose a down
@@ -47,7 +47,7 @@ Standard layout: `/srv/<app>/dist/` webroot (exedev-owned) ·
47
47
 
48
48
  ## Deploy-freshness cadence — a lockstep cut is not a site deploy
49
49
 
50
- `adia-release` cutting and publishing the lockstep version (the roster in
50
+ `package-release` cutting and publishing the lockstep version (the roster in
51
51
  `scripts/package-paths.mjs` is the live count) does
52
52
  **not** itself update `ui-kit.exe.xyz` — that only happens on a `site-v*` tag
53
53
  push (see below). Any lockstep cut that changes a package the site actually
@@ -88,9 +88,9 @@ delete-adjudication classes.
88
88
  1. Build from clean, fully-merged `main`. In a fresh worktree,
89
89
  `npm run build -w @adia-ai/llm` runs **before** `build:site` — llm compiles
90
90
  at publish time and its outputs are gitignored, so without it
91
- `/packages/llm/index.js` 404s and component registration breaks site-wide
91
+ `/packages/llm/core/index.js` 404s and component registration breaks site-wide
92
92
  (found live 2026-06-09).
93
- 2. Dry-run `rsync -azni --delete --exclude='packages/a2ui/corpus/feedback/'`
93
+ 2. Dry-run `rsync -azni --delete --exclude='packages/gen-ui/a2ui/corpus/feedback/'`
94
94
  and bucket **every** `*deleting` line into a known-safe class; any
95
95
  unexplained served-content delete aborts the deploy. The exclude protects
96
96
  prod-only runtime-written files (feedback logs wiped 2026-06-10).
@@ -1,5 +1,5 @@
1
1
  {
2
- "skill": "adia-deploy",
2
+ "skill": "site-deployment",
3
3
  "note": "Trigger-routing suite (gh#369). expect=trigger: the skill should fire on the prompt in a fresh session. expect=no-trigger: a near-miss owned elsewhere (owner named per case) or generic knowledge with no AdiaUI skill involved. Cases derived from evals/routing-corpus.json's phrases array (gh#355 vetted corpus) plus the SKILL.md description's own trigger/NOT-fence language.",
4
4
  "cases": [
5
5
  { "id": "t01", "prompt": "Deploy the latest build to ui-kit.exe.xyz", "expect": "trigger" },
@@ -11,12 +11,12 @@
11
11
  { "id": "t07", "prompt": "Push a site-v* tag to deploy the current build, review the dry-run delete summary first", "expect": "trigger" },
12
12
  { "id": "t08", "prompt": "Did we deploy the site after the last lockstep cut, or is it behind npm?", "expect": "trigger" },
13
13
  { "id": "t09", "prompt": "Roll back the last site deploy, the new build is broken", "expect": "trigger" },
14
- { "id": "n01", "prompt": "Cut a release of the next version and publish the npm packages", "expect": "no-trigger", "owner": "adia-release" },
15
- { "id": "n02", "prompt": "Verify that this consumer app screen renders correctly before shipping", "expect": "no-trigger", "owner": "adia-verify" },
16
- { "id": "n03", "prompt": "Add a new prop to button-ui", "expect": "no-trigger", "owner": "adia-author" },
17
- { "id": "n04", "prompt": "Run a dogfood sweep on the demo pages", "expect": "no-trigger", "owner": "adia-dogfood" },
18
- { "id": "n05", "prompt": "Tune the zettel retrieval coverage, the eval dropped to 38%", "expect": "no-trigger", "owner": "adia-a2ui" },
19
- { "id": "n06", "prompt": "Why does accordion-ui crash under SSR in Astro?", "expect": "no-trigger", "owner": "adia-ssr" },
20
- { "id": "n07", "prompt": "Fix the streaming adapter bug in the @adia-ai/llm package", "expect": "no-trigger", "owner": "adia-llm-internals" }
14
+ { "id": "n01", "prompt": "Cut a release of the next version and publish the npm packages", "expect": "no-trigger", "owner": "package-release" },
15
+ { "id": "n02", "prompt": "Verify that this consumer app screen renders correctly before shipping", "expect": "no-trigger", "owner": "surface-qa" },
16
+ { "id": "n03", "prompt": "Add a new prop to button-ui", "expect": "no-trigger", "owner": "primitive-authoring" },
17
+ { "id": "n04", "prompt": "Run a dogfood sweep on the demo pages", "expect": "no-trigger", "owner": "demo-audit" },
18
+ { "id": "n05", "prompt": "Tune the zettel retrieval coverage, the eval dropped to 38%", "expect": "no-trigger", "owner": "a2ui-maintenance" },
19
+ { "id": "n06", "prompt": "Why does accordion-ui crash under SSR in Astro?", "expect": "no-trigger", "owner": "ssr-compatibility" },
20
+ { "id": "n07", "prompt": "Fix the streaming adapter bug in the @adia-ai/llm package", "expect": "no-trigger", "owner": "llm-client-maintenance" }
21
21
  ]
22
22
  }