@adia-ai/adia-ui-forge 0.8.35 → 0.8.37

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 +47 -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 +6 -5
  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/eval-diagnostics.md +2 -2
  26. package/skills/{adia-a2ui → a2ui-maintenance}/references/format-extension-decisions.md +2 -2
  27. package/skills/{adia-a2ui → a2ui-maintenance}/references/mcp-pipeline-ops.md +1 -1
  28. package/skills/{adia-a2ui → a2ui-maintenance}/references/mcp-tool-reference.md +5 -4
  29. package/skills/{adia-a2ui → a2ui-maintenance}/references/pipeline-overview.md +15 -15
  30. package/skills/{adia-a2ui → a2ui-maintenance}/references/semantic-fail-lifting.md +2 -2
  31. package/skills/{adia-dogfood → demo-audit}/SKILL.md +8 -8
  32. package/skills/{adia-dogfood → demo-audit}/evals/evals.json +7 -7
  33. package/skills/{adia-dogfood → demo-audit}/evals/routing-corpus.json +43 -43
  34. package/skills/{adia-dogfood → demo-audit}/references/visual-probe-triage.md +1 -1
  35. package/skills/{adia-dogfood → demo-audit}/scripts/analyze.mjs +2 -2
  36. package/skills/{adia-gen-review → gen-ui-review}/SKILL.md +13 -13
  37. package/skills/{adia-gen-review → gen-ui-review}/evals/evals.json +7 -7
  38. package/skills/{adia-gen-review → gen-ui-review}/evals/routing-corpus.json +43 -43
  39. package/skills/{adia-gen-review → gen-ui-review}/references/corpus-html-patterns.md +3 -3
  40. package/skills/{adia-gen-review → gen-ui-review}/references/loop-protocol.md +11 -11
  41. package/skills/{adia-gen-review → gen-ui-review}/references/scores.schema.json +1 -1
  42. package/skills/{adia-gen-review → gen-ui-review}/scripts/gen-review-coverage-audit.mjs +4 -4
  43. package/skills/{adia-gen-review → gen-ui-review}/scripts/gen-review-decompose.mjs +6 -6
  44. package/skills/{adia-gen-review → gen-ui-review}/scripts/gen-review-status.mjs +5 -5
  45. package/skills/{adia-gen-review → gen-ui-review}/scripts/validate-cycle-scores.mjs +5 -5
  46. package/skills/{adia-llm-internals → llm-client-maintenance}/SKILL.md +4 -4
  47. package/skills/{adia-llm-internals → llm-client-maintenance}/evals/evals.json +7 -7
  48. package/skills/{adia-llm-internals → llm-client-maintenance}/evals/routing-corpus.json +49 -49
  49. package/skills/{adia-release → package-release}/SKILL.md +17 -16
  50. package/skills/{adia-release → package-release}/evals/evals.json +7 -7
  51. package/skills/{adia-release → package-release}/evals/routing-corpus.json +45 -45
  52. package/skills/{adia-release → package-release}/references/changelog-discipline.md +4 -4
  53. package/skills/{adia-release → package-release}/references/cut-procedure.md +170 -27
  54. package/skills/{adia-release → package-release}/references/gates-catalog.md +4 -3
  55. package/skills/{adia-release → package-release}/references/independent-package-release.md +12 -8
  56. package/skills/{adia-release → package-release}/references/migration-guide-authoring.md +12 -3
  57. package/skills/{adia-release → package-release}/references/recovery-paths.md +5 -5
  58. package/skills/{adia-release → package-release}/scripts/bump.mjs +77 -30
  59. package/skills/{adia-release → package-release}/scripts/dispatch-publish.mjs +1 -1
  60. package/skills/{adia-release → package-release}/scripts/gate-roster.mjs +17 -6
  61. package/skills/{adia-release → package-release}/scripts/insert-stub.mjs +29 -7
  62. package/skills/{adia-release → package-release}/scripts/package-paths.mjs +51 -6
  63. package/skills/{adia-release → package-release}/scripts/pr-bridge.mjs +1 -1
  64. package/skills/{adia-release → package-release}/scripts/promote-unreleased.mjs +1 -1
  65. package/skills/{adia-release → package-release}/scripts/release-pack.mjs +18 -4
  66. package/skills/{adia-release → package-release}/scripts/tag-lockstep.mjs +2 -2
  67. package/skills/{adia-author → primitive-authoring}/SKILL.md +7 -7
  68. package/skills/{adia-author → primitive-authoring}/evals/evals.json +7 -7
  69. package/skills/{adia-author → primitive-authoring}/evals/routing-corpus.json +61 -61
  70. package/skills/{adia-author → primitive-authoring}/references/INDEX.md +2 -2
  71. package/skills/{adia-author → primitive-authoring}/references/authoring-cycle.md +1 -1
  72. package/skills/{adia-author → primitive-authoring}/references/code-style.md +5 -5
  73. package/skills/{adia-author → primitive-authoring}/references/common-gotchas.md +1 -1
  74. package/skills/{adia-author → primitive-authoring}/references/llm-bridge.md +7 -7
  75. package/skills/{adia-author → primitive-authoring}/references/module-promotion.md +3 -3
  76. package/skills/{adia-author → primitive-authoring}/references/shell-patterns.md +2 -2
  77. package/skills/{adia-author → primitive-authoring}/references/trait-pages.md +1 -1
  78. package/skills/{adia-author → primitive-authoring}/scripts/build-canonical-pattern-index.mjs +1 -1
  79. package/skills/{adia-deploy → site-deployment}/SKILL.md +4 -4
  80. package/skills/{adia-deploy → site-deployment}/evals/evals.json +8 -8
  81. package/skills/{adia-deploy → site-deployment}/evals/routing-corpus.json +49 -49
  82. package/skills/{adia-deploy → site-deployment}/references/deploy-playbooks.md +2 -2
  83. package/skills/{adia-site-docs → site-docs-authoring}/SKILL.md +4 -4
  84. package/skills/{adia-site-docs → site-docs-authoring}/evals/evals.json +7 -7
  85. package/skills/{adia-site-docs → site-docs-authoring}/evals/routing-corpus.json +51 -51
  86. package/skills/{adia-site-docs → site-docs-authoring}/intent.md +8 -8
  87. package/skills/{adia-ssr → ssr-compatibility}/SKILL.md +8 -8
  88. package/skills/{adia-ssr → ssr-compatibility}/evals/evals.json +7 -7
  89. package/skills/{adia-ssr → ssr-compatibility}/evals/routing-corpus.json +43 -43
  90. package/skills/{adia-ssr → ssr-compatibility}/references/failure-shapes.md +1 -1
  91. package/skills/{adia-ssr → ssr-compatibility}/references/guard-patterns.md +1 -1
  92. /package/skills/{adia-a2ui → a2ui-maintenance}/references/anti-patterns.md +0 -0
  93. /package/skills/{adia-a2ui → a2ui-maintenance}/references/chunk-authoring.md +0 -0
  94. /package/skills/{adia-a2ui → a2ui-maintenance}/references/corpus-discipline.md +0 -0
  95. /package/skills/{adia-a2ui → a2ui-maintenance}/references/leverage-rules.md +0 -0
  96. /package/skills/{adia-a2ui → a2ui-maintenance}/references/strategy-engines.md +0 -0
  97. /package/skills/{adia-a2ui → a2ui-maintenance}/references/zettel-calibration.md +0 -0
  98. /package/skills/{adia-dogfood → demo-audit}/references/admin-shell-anatomy.md +0 -0
  99. /package/skills/{adia-dogfood → demo-audit}/references/app-shell-pitfalls.md +0 -0
  100. /package/skills/{adia-dogfood → demo-audit}/references/card-anatomy-sweep.md +0 -0
  101. /package/skills/{adia-dogfood → demo-audit}/references/html-attr-sweep.md +0 -0
  102. /package/skills/{adia-dogfood → demo-audit}/references/native-leak-annotations.md +0 -0
  103. /package/skills/{adia-gen-review → gen-ui-review}/references/rubric-cosmetic.md +0 -0
  104. /package/skills/{adia-gen-review → gen-ui-review}/references/rubric-decompose.md +0 -0
  105. /package/skills/{adia-gen-review → gen-ui-review}/references/rubric-score.md +0 -0
  106. /package/skills/{adia-llm-internals → llm-client-maintenance}/references/adapter-contract.md +0 -0
  107. /package/skills/{adia-llm-internals → llm-client-maintenance}/references/add-a-provider.md +0 -0
  108. /package/skills/{adia-llm-internals → llm-client-maintenance}/references/bridge-facade.md +0 -0
  109. /package/skills/{adia-llm-internals → llm-client-maintenance}/references/browser-proxy-boundary.md +0 -0
  110. /package/skills/{adia-llm-internals → llm-client-maintenance}/references/model-registry.md +0 -0
  111. /package/skills/{adia-llm-internals → llm-client-maintenance}/references/streaming-sse.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,130 +1,130 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "name": "adia-a2ui routing accuracy corpus",
3
+ "name": "a2ui-maintenance routing accuracy corpus",
4
4
  "version": "2.1.0",
5
- "purpose": "Routing-eval corpus for adia-a2ui. 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 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).",
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-a2ui routing \u2014 does this phrase activate adia-a2ui?",
7
+ "scope": "a2ui-maintenance routing \u2014 does this phrase activate a2ui-maintenance?",
8
8
  "phrases": [
9
9
  {
10
- "id": "adia-a2ui-pos-01",
10
+ "id": "a2ui-maintenance-pos-01",
11
11
  "phrase": "validate this A2UI document",
12
- "expected": "adia-a2ui"
12
+ "expected": "a2ui-maintenance"
13
13
  },
14
14
  {
15
- "id": "adia-a2ui-pos-02",
15
+ "id": "a2ui-maintenance-pos-02",
16
16
  "phrase": "harvest a chunk from this HTML demo",
17
- "expected": "adia-a2ui"
17
+ "expected": "a2ui-maintenance"
18
18
  },
19
19
  {
20
- "id": "adia-a2ui-pos-03",
20
+ "id": "a2ui-maintenance-pos-03",
21
21
  "phrase": "zettel coverage dropped after the last change",
22
- "expected": "adia-a2ui"
22
+ "expected": "a2ui-maintenance"
23
23
  },
24
24
  {
25
- "id": "adia-a2ui-pos-04",
25
+ "id": "a2ui-maintenance-pos-04",
26
26
  "phrase": "should this repeated subtree become its own chunk",
27
- "expected": "adia-a2ui"
27
+ "expected": "a2ui-maintenance"
28
28
  },
29
29
  {
30
- "id": "adia-a2ui-pos-05",
30
+ "id": "a2ui-maintenance-pos-05",
31
31
  "phrase": "tune the STRONG_MATCH threshold",
32
- "expected": "adia-a2ui"
32
+ "expected": "a2ui-maintenance"
33
33
  },
34
34
  {
35
- "id": "adia-a2ui-pos-06",
35
+ "id": "a2ui-maintenance-pos-06",
36
36
  "phrase": "run check_anti_patterns on this rendered HTML",
37
- "expected": "adia-a2ui"
37
+ "expected": "a2ui-maintenance"
38
38
  },
39
39
  {
40
- "id": "adia-a2ui-pos-07",
40
+ "id": "a2ui-maintenance-pos-07",
41
41
  "phrase": "refine composition with an OAuth row",
42
- "expected": "adia-a2ui"
42
+ "expected": "a2ui-maintenance"
43
43
  },
44
44
  {
45
- "id": "adia-a2ui-pos-08",
45
+ "id": "a2ui-maintenance-pos-08",
46
46
  "phrase": "MRR dropped in the chunk retrieval eval",
47
- "expected": "adia-a2ui"
47
+ "expected": "a2ui-maintenance"
48
48
  },
49
49
  {
50
- "id": "adia-a2ui-pos-09",
50
+ "id": "a2ui-maintenance-pos-09",
51
51
  "phrase": "add an MCP tool to the a2ui server",
52
- "expected": "adia-a2ui"
52
+ "expected": "a2ui-maintenance"
53
53
  },
54
54
  {
55
- "id": "adia-a2ui-pos-10",
55
+ "id": "a2ui-maintenance-pos-10",
56
56
  "phrase": "audit the training data corpus for drift",
57
- "expected": "adia-a2ui"
57
+ "expected": "a2ui-maintenance"
58
58
  },
59
59
  {
60
- "id": "adia-a2ui-pos-11",
60
+ "id": "a2ui-maintenance-pos-11",
61
61
  "phrase": "diagnose this eval gap and regression",
62
- "expected": "adia-a2ui"
62
+ "expected": "a2ui-maintenance"
63
63
  },
64
64
  {
65
- "id": "adia-a2ui-pos-12",
65
+ "id": "a2ui-maintenance-pos-12",
66
66
  "phrase": "run the MCP pipeline: generate_ui then validate_schema",
67
- "expected": "adia-a2ui"
67
+ "expected": "a2ui-maintenance"
68
68
  },
69
69
  {
70
- "id": "adia-a2ui-pos-13",
70
+ "id": "a2ui-maintenance-pos-13",
71
71
  "phrase": "lift a semantic fail under sixty",
72
- "expected": "adia-a2ui"
72
+ "expected": "a2ui-maintenance"
73
73
  },
74
74
  {
75
- "id": "adia-a2ui-pos-14",
75
+ "id": "a2ui-maintenance-pos-14",
76
76
  "phrase": "why did the composer emit composition-match instead of composition-synthesized",
77
- "expected": "adia-a2ui"
77
+ "expected": "a2ui-maintenance"
78
78
  },
79
79
  {
80
- "id": "adia-a2ui-neg-01",
80
+ "id": "a2ui-maintenance-neg-01",
81
81
  "phrase": "build a settings page from existing primitives",
82
- "expected_not": "adia-a2ui"
82
+ "expected_not": "a2ui-maintenance"
83
83
  },
84
84
  {
85
- "id": "adia-a2ui-neg-02",
85
+ "id": "a2ui-maintenance-neg-02",
86
86
  "phrase": "add a slot to button-ui and update its yaml contract",
87
- "expected_not": "adia-a2ui"
87
+ "expected_not": "a2ui-maintenance"
88
88
  },
89
89
  {
90
- "id": "adia-a2ui-neg-03",
90
+ "id": "a2ui-maintenance-neg-03",
91
91
  "phrase": "cut a release and bump the version tag",
92
- "expected_not": "adia-a2ui"
92
+ "expected_not": "a2ui-maintenance"
93
93
  },
94
94
  {
95
- "id": "adia-a2ui-neg-04",
95
+ "id": "a2ui-maintenance-neg-04",
96
96
  "phrase": "score the generated UI quality in apps/genui",
97
- "expected_not": "adia-a2ui"
97
+ "expected_not": "a2ui-maintenance"
98
98
  },
99
99
  {
100
- "id": "adia-a2ui-neg-05",
100
+ "id": "a2ui-maintenance-neg-05",
101
101
  "phrase": "run a broad visual QA sweep across site and playgrounds",
102
- "expected_not": "adia-a2ui"
102
+ "expected_not": "a2ui-maintenance"
103
103
  },
104
104
  {
105
- "id": "adia-a2ui-neg-06",
105
+ "id": "a2ui-maintenance-neg-06",
106
106
  "phrase": "fix the @adia-ai/llm SSE adapter",
107
- "expected_not": "adia-a2ui"
107
+ "expected_not": "a2ui-maintenance"
108
108
  },
109
109
  {
110
- "id": "adia-a2ui-neg-07",
110
+ "id": "a2ui-maintenance-neg-07",
111
111
  "phrase": "explain how React state management works",
112
- "expected_not": "adia-a2ui"
112
+ "expected_not": "a2ui-maintenance"
113
113
  },
114
114
  {
115
- "id": "adia-a2ui-neg-08",
115
+ "id": "a2ui-maintenance-neg-08",
116
116
  "phrase": "compose a settings screen from catalog primitives",
117
- "expected_not": "adia-a2ui"
117
+ "expected_not": "a2ui-maintenance"
118
118
  },
119
119
  {
120
- "id": "adia-a2ui-neg-09",
120
+ "id": "a2ui-maintenance-neg-09",
121
121
  "phrase": "mount gen-root and wire data resolvers for end users at runtime",
122
- "expected_not": "adia-a2ui"
122
+ "expected_not": "a2ui-maintenance"
123
123
  },
124
124
  {
125
- "id": "adia-a2ui-neg-10",
125
+ "id": "a2ui-maintenance-neg-10",
126
126
  "phrase": "edit the getting-started docs page on the site",
127
- "expected_not": "adia-a2ui"
127
+ "expected_not": "a2ui-maintenance"
128
128
  }
129
129
  ],
130
130
  "_measured_historical": {
@@ -62,7 +62,7 @@ fluctuate).
62
62
  `catalog/ui-patterns/app/<name>/`), `data-chunk` + `data-chunk-kind="block"`
63
63
  markers, real component tags so coverage scoring matches, then
64
64
  `npm run harvest:chunks`.
65
- - **D. Broken render** — `packages/a2ui/mcp/scripts/render-fidelity.mjs`
65
+ - **D. Broken render** — `packages/mcp/gen-ui/scripts/render-fidelity.mjs`
66
66
  output (console errors, blank viewport, undefined elements); verify
67
67
  registrations in `packages/web-components/index.js`; check the harvester
68
68
  didn't strip `data-chunk-slot` from page shells.
@@ -79,7 +79,7 @@ the SKILL.md floors hold.
79
79
 
80
80
  ## The eval suite's dimensions
81
81
 
82
- `packages/a2ui/mcp/scripts/test-evals.mjs` scores 5 weighted dimensions:
82
+ `packages/mcp/gen-ui/scripts/test-evals.mjs` scores 5 weighted dimensions:
83
83
  structural_validity 30% · intent_alignment 25% · component_coverage 20% ·
84
84
  card_model_compliance 15% · anti_pattern_count 10%. `--save-baseline`
85
85
  (`npm run test:evals:baseline`) stores scores; later runs flag any dimension
@@ -15,10 +15,10 @@ prop/construct surface.
15
15
  `link`, …). Add a new named type; the component dispatches rendering
16
16
  through the registry it already owns. **Smallest blast radius**: no new
17
17
  A2UI construct, no runtime/validator changes, no registry entry in
18
- `packages/a2ui/runtime/registry.js`. **Ceiling**: only covers formats the
18
+ `packages/a2ui/registry.js`. **Ceiling**: only covers formats the
19
19
  registry's render contract can express (inline-safe content, not
20
20
  arbitrary nested block markup). Building the new registry entry is a
21
- web-components primitive edit — hand off to `adia-author` for the
21
+ web-components primitive edit — hand off to `primitive-authoring` for the
22
22
  implementation half; this reference only decides the tier.
23
23
  2. **New A2UI primitive(s)**, each slot/cell a normal construct subtree (any
24
24
  registered component nestable inside it) — matches how `Column`/`Row`
@@ -70,7 +70,7 @@ failures when the corpus drifts: `hasRootComponent` (missing `id: "root"`),
70
70
  `cardContentModel` (section without Column wrapper, or heading inside section
71
71
  instead of header), `headingHierarchy` (skipped levels), `flatAdjacency`
72
72
  (nested components instead of sibling id references). Full list + weights:
73
- `packages/a2ui/mcp/TOOLS.md`.
73
+ `packages/mcp/TOOLS.md` (the `gen-ui` section).
74
74
 
75
75
  ## Feedback loop
76
76
 
@@ -1,9 +1,10 @@
1
1
  # MCP tool reference — the a2ui server's tool surface
2
2
 
3
- **Schema SoT is `packages/a2ui/mcp/TOOLS.md` (30 tools), generated alongside
4
- `server.js` — read it for input/output shapes; never restate schemas here
5
- (they drift).** Tools register in `packages/a2ui/mcp/server.js` +
6
- `packages/a2ui/mcp/tools/{corpus,discovery,feedback,refine,synthesis,
3
+ **Schema SoT is `packages/mcp/TOOLS.md` (the `gen-ui` section — 30 tools),
4
+ generated alongside `server.js` — read it for input/output shapes; never
5
+ restate schemas here (they drift).** Tools register in
6
+ `packages/mcp/gen-ui/server.js` +
7
+ `packages/mcp/gen-ui/tools/{corpus,discovery,feedback,refine,synthesis,
7
8
  validation,zettel}.js`. Any tool change updates TOOLS.md in the same commit.
8
9
 
9
10
  ## Stability rule (load-bearing)
@@ -13,26 +13,26 @@ lifecycle), `.claude/docs/specs/package-architecture.md` (package relations).
13
13
 
14
14
  | File | Role |
15
15
  | --- | --- |
16
- | `packages/a2ui/compose/core/generator.js` | `generate_ui` orchestrator — instant / pro / thinking / stream modes; multi-turn via `executionId` |
17
- | `packages/a2ui/compose/strategies/registry.js` | Engine registry — `registerEngine(name, factory)`. Reserved names: `monolithic`, `monolithic-instant`, `monolithic-pro`, `monolithic-thinking`, `zettel`, `chunk-zettel`, `free-form` |
18
- | `packages/a2ui/compose/strategies/zettel/` | Zettel + chunk-zettel engines — see [strategy-engines](strategy-engines.md) for the per-file map |
19
- | `packages/a2ui/compose/strategies/free-form-composer/` | Free-form engine (`index.js`, `system-prompt.js`, `transpile.js`) |
20
- | `packages/a2ui/compose/strategies/_shared/chunk-loader.js` | Shared chunk loading for engines |
21
- | `packages/a2ui/compose/shared/validate-and-repair.js` | Shared closed-loop validate→repair, adopted by every LLM-calling engine (thinking/pro fully; free-form validate-only) — see [strategy-engines](strategy-engines.md) §Closed-loop validation |
22
- | `packages/a2ui/compose/transpiler/transpiler.js` | HTML → A2UI transpile pass (used by harvester + convert_html) |
16
+ | `packages/gen-ui/compose/core/generator.js` | `generate_ui` orchestrator — instant / pro / thinking / stream modes; multi-turn via `executionId` |
17
+ | `packages/gen-ui/compose/strategies/registry.js` | Engine registry — `registerEngine(name, factory)`. Reserved names: `monolithic`, `monolithic-instant`, `monolithic-pro`, `monolithic-thinking`, `zettel`, `chunk-zettel`, `free-form` |
18
+ | `packages/gen-ui/compose/strategies/zettel/` | Zettel + chunk-zettel engines — see [strategy-engines](strategy-engines.md) for the per-file map |
19
+ | `packages/gen-ui/compose/strategies/free-form-composer/` | Free-form engine (`index.js`, `system-prompt.js`, `transpile.js`) |
20
+ | `packages/gen-ui/compose/strategies/_shared/chunk-loader.js` | Shared chunk loading for engines |
21
+ | `packages/gen-ui/compose/shared/validate-and-repair.js` | Shared closed-loop validate→repair, adopted by every LLM-calling engine (thinking/pro fully; free-form validate-only) — see [strategy-engines](strategy-engines.md) §Closed-loop validation |
22
+ | `packages/gen-ui/compose/transpiler/transpiler.js` | HTML → A2UI transpile pass (used by harvester + convert_html) |
23
23
 
24
24
  ### Corpus + retrieval
25
25
 
26
26
  | File | Role |
27
27
  | --- | --- |
28
28
  | `packages/a2ui/corpus/scripts/chunk-library.js` | Chunk catalog API — `getChunk()`, `searchChunks()` (keyword), `searchChunksAsync()` (keyword + cosine), `listChunksByKind()`, `lookupChunksByPrimary()`. Reads `corpus/chunks/` + `_index.json` |
29
- | `packages/a2ui/compose/strategies/zettel/composition-library.js` | Composition loader + `searchAll()` scoring (normalizes harvested chunks to composition shape) |
29
+ | `packages/gen-ui/compose/strategies/zettel/composition-library.js` | Composition loader + `searchAll()` scoring (normalizes harvested chunks to composition shape) |
30
30
  | `scripts/build/harvest-chunks.mjs` | `[data-chunk]` boundary walker over `site/pages/`, `apps/`, `playgrounds/`, `catalog/` — writes `corpus/chunks/<name>.json` + `_index.json`. Run via `npm run harvest:chunks` |
31
- | `packages/a2ui/retrieval/intent/intent-categorizer.js` | Free-text intent → UI-category taxonomy |
32
- | `packages/a2ui/retrieval/feedback/feedback-analyzer.js` | Aggregates JSONL feedback (`corpus/feedback/*.jsonl`); promotion + gap candidates |
33
- | `packages/a2ui/retrieval/feedback/gap-registry.js` | Persistent gap tracking → `packages/a2ui/corpus/gaps/registry.json` |
34
- | `packages/a2ui/retrieval/anti-patterns.js` | The `check_anti_patterns` rule source |
35
- | `packages/a2ui/compose/core/reference.js` | Thin wrappers over retrieval exports (`searchBlocks`, `searchBlocksSemantic`, …) |
31
+ | `packages/gen-ui/retrieval/intent/intent-categorizer.js` | Free-text intent → UI-category taxonomy |
32
+ | `packages/gen-ui/retrieval/feedback/feedback-analyzer.js` | Aggregates JSONL feedback (`corpus/feedback/*.jsonl`); promotion + gap candidates |
33
+ | `packages/gen-ui/retrieval/feedback/gap-registry.js` | Persistent gap tracking → `packages/a2ui/corpus/gaps/registry.json` |
34
+ | `packages/gen-ui/retrieval/anti-patterns.js` | The `check_anti_patterns` rule source |
35
+ | `packages/gen-ui/compose/core/reference.js` | Thin wrappers over retrieval exports (`searchBlocks`, `searchBlocksSemantic`, …) |
36
36
 
37
37
  ### LLM bridge + MCP
38
38
 
@@ -40,7 +40,7 @@ lifecycle), `.claude/docs/specs/package-architecture.md` (package relations).
40
40
  | --- | --- |
41
41
  | `packages/llm/llm-bridge.js` | `createAdapter()` — real LLM or stub fallback |
42
42
  | `scripts/load-env.mjs` | Shared .env loader for Node scripts |
43
- | `packages/a2ui/mcp/server.js` + `mcp/tools/*.js` | MCP stdio server + tool registrations — see [mcp-tool-reference](mcp-tool-reference.md) |
43
+ | `packages/mcp/gen-ui/server.js` + `packages/mcp/gen-ui/tools/*.js` | MCP stdio server + tool registrations — see [mcp-tool-reference](mcp-tool-reference.md) |
44
44
 
45
45
  ## Critical rules
46
46
 
@@ -60,7 +60,7 @@ lifecycle), `.claude/docs/specs/package-architecture.md` (package relations).
60
60
  props + slot bindings; never JS or per-canvas CSS. Behavior delegates to
61
61
  traits or pre-built apps. "Make the generator emit JS/CSS" is a won't-fix.
62
62
  6. **Renderer guards `textContent` against container wipe** —
63
- `packages/a2ui/runtime/renderer.js` whitelists pure-text leaves
63
+ `packages/a2ui/renderer.js` whitelists pure-text leaves
64
64
  (`TEXT_TAG_OK`); everything else routes through the `text=` attribute so
65
65
  slotted children survive. Preserve this when touching the renderer.
66
66
  7. **Registry ↔ catalog parity.** A component in the runtime registry but
@@ -4,7 +4,7 @@ Use when `npm run eval:diff -- --engine zettel --semantic` reports intents
4
4
  with `semanticScore < 60` (or <70 for the watch list): the judge says the
5
5
  emitted UI doesn't match what was asked for.
6
6
 
7
- ## The judge's three axes (`packages/a2ui/validator/semantic/index.js:32`)
7
+ ## The judge's three axes (`packages/gen-ui/validate/semantic/index.js:32`)
8
8
 
9
9
  - **dominantPattern** (weight 0.5) — does the root/primary component match the
10
10
  intent type (chat, form, calendar, data-display, nav…)?
@@ -64,7 +64,7 @@ rich keyword set (15–20 terms) with exact intent phrases and domain synonyms.
64
64
  ```bash
65
65
  node scripts/build/components.mjs --verify
66
66
  npm run smoke:engines && npm run smoke:register-engine && npm run test:a2ui
67
- node packages/a2ui/mcp/scripts/eval-diff.mjs --engine zettel --semantic
67
+ node packages/mcp/gen-ui/scripts/eval-diff.mjs --engine zettel --semantic
68
68
  ```
69
69
 
70
70
  The semantic judge is cached, content-hashed on
@@ -1,17 +1,17 @@
1
1
  ---
2
- name: adia-dogfood
2
+ name: demo-audit
3
3
  description: >-
4
4
  Seven-mode QA sweep of the monorepo's demo/app surfaces: visual probe,
5
5
  app-shell QA, attr-quote typos, native-primitive leak, admin-shell
6
6
  composition, card anatomy, plus an aggregated token/contrast/lifecycle
7
7
  drift battery (`npm run dogfood:status`). Use for "run a dogfood sweep",
8
8
  "find broken demos", "audit native primitive leaks". NOT for gen-UI
9
- gallery scoring (adia-gen-review) or authoring primitives (adia-author).
9
+ gallery scoring (gen-ui-review) or authoring primitives (primitive-authoring).
10
10
  disable-model-invocation: false
11
11
  user-invocable: true
12
12
  ---
13
13
 
14
- # adia-dogfood
14
+ # demo-audit
15
15
 
16
16
  Finds the bugs the type-checker misses across the monorepo's rendered surfaces.
17
17
  Detection is script-driven — repo audit scripts plus one bundled deep analyzer;
@@ -27,7 +27,7 @@ not a filesystem tree to `ls`; the analyzers walk the sitemap.
27
27
 
28
28
  | # | Task shape | Detection (repo root) | Triage depth |
29
29
  |---|---|---|---|
30
- | 1 | Component visual probe — "find broken demos"; after wide refactors of tokens, slots, or stamping | `npm run dogfood:visual-probe` (baseline: 4xx, console, 0×0 body, host upgrade) · `node "${CLAUDE_PLUGIN_ROOT}/skills/adia-dogfood/scripts/analyze.mjs"` (deep: 8 probe classes) | [visual-probe-triage](references/visual-probe-triage.md) |
30
+ | 1 | Component visual probe — "find broken demos"; after wide refactors of tokens, slots, or stamping | `npm run dogfood:visual-probe` (baseline: 4xx, console, 0×0 body, host upgrade) · `node "${CLAUDE_PLUGIN_ROOT}/skills/demo-audit/scripts/analyze.mjs"` (deep: 8 probe classes) | [visual-probe-triage](references/visual-probe-triage.md) |
31
31
  | 2 | App-shell QA — after `apps/` structural sweeps; before a release | `node scripts/dev/audit-app-shells.mjs [--only=NAME] [--fail-fast] [--compare-prod]` | [app-shell-pitfalls](references/app-shell-pitfalls.md) |
32
32
  | 3 | HTML attr-quote typo sweep — nested `"` broke an attribute boundary | inline node one-shot (no repo script) | [html-attr-sweep](references/html-attr-sweep.md) |
33
33
  | 4 | Native-primitive leak — `<button>` where `<button-ui>` exists | `npm run audit:native-primitive-leak` (`:all` / `:strict` variants) | [native-leak-annotations](references/native-leak-annotations.md) |
@@ -56,7 +56,7 @@ map onto each other; a mode-7 finding is never relabeled critical/warning/info.
56
56
  ## Triage gate — before ANY auto-fix (builder seat only)
57
57
 
58
58
  This gate and the allowlist below govern a **builder** seat running dogfood
59
- with Write/Edit (typically `component-author`) — never a read-only
59
+ with Write/Edit (typically `primitive-authoring-agent`) — never a read-only
60
60
  verification seat. `framework-reviewer` (Read/Grep/Glob/Bash, no Write/Edit)
61
61
  never applies a fix regardless of triage outcome: it always files the finding
62
62
  with the fix-routing column below cited, and stops there.
@@ -75,7 +75,7 @@ Apply a fix unattended iff all three hold; otherwise file it for human review:
75
75
  A read-only seat holds Bash, and Bash alone can run `perl -i` / `sed -i` /
76
76
  `node -e` with a file write even without a Write or Edit tool — the tool
77
77
  allowlist is not the enforcement boundary, the routing rule is: these fixes
78
- are executed by `component-author` (or a human), never dispatched to or run
78
+ are executed by `primitive-authoring-agent` (or a human), never dispatched to or run
79
79
  by `framework-reviewer` or any other read-only dogfood seat. A read-only run
80
80
  reports "matches this allowlist row" as part of its finding and stops.
81
81
 
@@ -132,7 +132,7 @@ surfaces swept: <route(s)/component(s)/shell(s) covered, or "full sweep">
132
132
  findings: <file>:<line> — <defect class> — <severity: critical|warning|info (modes 1-6) or P0-P3 (mode 7)> — <one-line detail>
133
133
  …one row per finding; "none" if zero
134
134
  unmeasured: <modes that could not run + why, e.g. "mode 1 — dev server unreachable">; omit if none
135
- fix-routing: <per finding: auto-fixed (allowlist row cited, builder seat only) | routed to component-author | escalated to human — name which>
135
+ fix-routing: <per finding: auto-fixed (allowlist row cited, builder seat only) | routed to primitive-authoring-agent | escalated to human — name which>
136
136
  verdict: clean | findings-filed — <one line>
137
137
  ```
138
138
 
@@ -145,7 +145,7 @@ surfaces swept: apps/admin/**, packages/web-modules/shell/**
145
145
  findings: apps/admin/pages/settings.html:142 — native-primitive-leak — warning — <button> where button-ui exists, no data-native-ok
146
146
  packages/web-modules/shell/admin-shell.js:88 — admin-shell-anatomy — critical — missing canonical <statusbar-ui> part
147
147
  unmeasured: mode 1 (visual-probe) — dev server not running, skipped
148
- fix-routing: settings.html:142 — escalated to human (native-primitive replacement is an attribute-shape decision, never auto-fixed); admin-shell.js:88 — routed to component-author (shared web-modules source, outside the audited surface)
148
+ fix-routing: settings.html:142 — escalated to human (native-primitive replacement is an attribute-shape decision, never auto-fixed); admin-shell.js:88 — routed to primitive-authoring-agent (shared web-modules source, outside the audited surface)
149
149
  verdict: findings-filed — 1 critical, 1 warning open; see qa/findings/ for the full report
150
150
  ```
151
151
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "skill": "adia-dogfood",
2
+ "skill": "demo-audit",
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": "Run a dogfood sweep before we cut the release", "expect": "trigger" },
@@ -10,11 +10,11 @@
10
10
  { "id": "t06", "prompt": "Sweep card anatomy for a collapsed header wrapper", "expect": "trigger" },
11
11
  { "id": "t07", "prompt": "Run npm run dogfood:status and post the findings in the PR description", "expect": "trigger" },
12
12
  { "id": "t08", "prompt": "Find token drift and contrast collapse across the components after the refactor", "expect": "trigger" },
13
- { "id": "n01", "prompt": "Score the gen-ui gallery output quality against the rubric", "expect": "no-trigger", "owner": "adia-gen-review" },
14
- { "id": "n02", "prompt": "Add a new primitive component to packages/web-components", "expect": "no-trigger", "owner": "adia-author" },
15
- { "id": "n03", "prompt": "Cut the next release and publish the lockstep packages", "expect": "no-trigger", "owner": "adia-release" },
16
- { "id": "n04", "prompt": "Deploy the latest build to ui-kit.exe.xyz", "expect": "no-trigger", "owner": "adia-deploy" },
17
- { "id": "n05", "prompt": "Zettel coverage dropped on the nightly eval, find out why", "expect": "no-trigger", "owner": "adia-a2ui" },
18
- { "id": "n06", "prompt": "Compose the billing settings screen from the catalog", "expect": "no-trigger", "owner": "adia-compose" }
13
+ { "id": "n01", "prompt": "Score the gen-ui gallery output quality against the rubric", "expect": "no-trigger", "owner": "gen-ui-review" },
14
+ { "id": "n02", "prompt": "Add a new primitive component to packages/web-components", "expect": "no-trigger", "owner": "primitive-authoring" },
15
+ { "id": "n03", "prompt": "Cut the next release and publish the lockstep packages", "expect": "no-trigger", "owner": "package-release" },
16
+ { "id": "n04", "prompt": "Deploy the latest build to ui-kit.exe.xyz", "expect": "no-trigger", "owner": "site-deployment" },
17
+ { "id": "n05", "prompt": "Zettel coverage dropped on the nightly eval, find out why", "expect": "no-trigger", "owner": "a2ui-maintenance" },
18
+ { "id": "n06", "prompt": "Compose the billing settings screen from the catalog", "expect": "no-trigger", "owner": "screen-composition" }
19
19
  ]
20
20
  }
@@ -1,110 +1,110 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "name": "adia-dogfood routing accuracy corpus",
3
+ "name": "demo-audit routing accuracy corpus",
4
4
  "version": "2.1.0",
5
- "purpose": "Routing-eval corpus for adia-dogfood. 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 demo-audit. 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-dogfood routing \u2014 does this phrase activate adia-dogfood?",
7
+ "scope": "demo-audit routing \u2014 does this phrase activate demo-audit?",
8
8
  "phrases": [
9
9
  {
10
- "id": "adia-dogfood-pos-01",
10
+ "id": "demo-audit-pos-01",
11
11
  "phrase": "run a dogfood sweep before we cut the release",
12
- "expected": "adia-dogfood"
12
+ "expected": "demo-audit"
13
13
  },
14
14
  {
15
- "id": "adia-dogfood-pos-02",
15
+ "id": "demo-audit-pos-02",
16
16
  "phrase": "find broken demos across the component site",
17
- "expected": "adia-dogfood"
17
+ "expected": "demo-audit"
18
18
  },
19
19
  {
20
- "id": "adia-dogfood-pos-03",
20
+ "id": "demo-audit-pos-03",
21
21
  "phrase": "audit native primitive leaks in the admin app",
22
- "expected": "adia-dogfood"
22
+ "expected": "demo-audit"
23
23
  },
24
24
  {
25
- "id": "adia-dogfood-pos-04",
25
+ "id": "demo-audit-pos-04",
26
26
  "phrase": "check for attr-quote typos that broke the rendered HTML",
27
- "expected": "adia-dogfood"
27
+ "expected": "demo-audit"
28
28
  },
29
29
  {
30
- "id": "adia-dogfood-pos-05",
30
+ "id": "demo-audit-pos-05",
31
31
  "phrase": "run the app-shell QA sweep after the apps/ structural refactor",
32
- "expected": "adia-dogfood"
32
+ "expected": "demo-audit"
33
33
  },
34
34
  {
35
- "id": "adia-dogfood-pos-06",
35
+ "id": "demo-audit-pos-06",
36
36
  "phrase": "audit admin-shell composition for missing canonical parts",
37
- "expected": "adia-dogfood"
37
+ "expected": "demo-audit"
38
38
  },
39
39
  {
40
- "id": "adia-dogfood-pos-07",
40
+ "id": "demo-audit-pos-07",
41
41
  "phrase": "sweep card anatomy for a collapsed header wrapper",
42
- "expected": "adia-dogfood"
42
+ "expected": "demo-audit"
43
43
  },
44
44
  {
45
- "id": "adia-dogfood-pos-08",
45
+ "id": "demo-audit-pos-08",
46
46
  "phrase": "run npm run dogfood:status and post the findings in the PR description",
47
- "expected": "adia-dogfood"
47
+ "expected": "demo-audit"
48
48
  },
49
49
  {
50
- "id": "adia-dogfood-pos-09",
50
+ "id": "demo-audit-pos-09",
51
51
  "phrase": "is this surface clean before we merge",
52
- "expected": "adia-dogfood"
52
+ "expected": "demo-audit"
53
53
  },
54
54
  {
55
- "id": "adia-dogfood-pos-10",
55
+ "id": "demo-audit-pos-10",
56
56
  "phrase": "find token drift and contrast collapse across the components",
57
- "expected": "adia-dogfood"
57
+ "expected": "demo-audit"
58
58
  },
59
59
  {
60
- "id": "adia-dogfood-pos-11",
60
+ "id": "demo-audit-pos-11",
61
61
  "phrase": "audit the demo pages for broken components after the token refactor",
62
- "expected": "adia-dogfood"
62
+ "expected": "demo-audit"
63
63
  },
64
64
  {
65
- "id": "adia-dogfood-pos-12",
65
+ "id": "demo-audit-pos-12",
66
66
  "phrase": "check for unregistered custom elements on the component pages",
67
- "expected": "adia-dogfood"
67
+ "expected": "demo-audit"
68
68
  },
69
69
  {
70
- "id": "adia-dogfood-neg-01",
70
+ "id": "demo-audit-neg-01",
71
71
  "phrase": "score the gen-ui gallery output quality against the rubric",
72
- "expected_not": "adia-dogfood"
72
+ "expected_not": "demo-audit"
73
73
  },
74
74
  {
75
- "id": "adia-dogfood-neg-02",
75
+ "id": "demo-audit-neg-02",
76
76
  "phrase": "review the rubric score for this generated screen and root-cause the gap",
77
- "expected_not": "adia-dogfood"
77
+ "expected_not": "demo-audit"
78
78
  },
79
79
  {
80
- "id": "adia-dogfood-neg-03",
80
+ "id": "demo-audit-neg-03",
81
81
  "phrase": "add a new primitive component to packages/web-components",
82
- "expected_not": "adia-dogfood"
82
+ "expected_not": "demo-audit"
83
83
  },
84
84
  {
85
- "id": "adia-dogfood-neg-04",
85
+ "id": "demo-audit-neg-04",
86
86
  "phrase": "cut the next release and publish the lockstep packages",
87
- "expected_not": "adia-dogfood"
87
+ "expected_not": "demo-audit"
88
88
  },
89
89
  {
90
- "id": "adia-dogfood-neg-05",
90
+ "id": "demo-audit-neg-05",
91
91
  "phrase": "deploy the latest build to ui-kit.exe.xyz",
92
- "expected": "adia-deploy"
92
+ "expected": "site-deployment"
93
93
  },
94
94
  {
95
- "id": "adia-dogfood-neg-06",
95
+ "id": "demo-audit-neg-06",
96
96
  "phrase": "zettel coverage dropped on the nightly eval, find out why",
97
- "expected_not": "adia-dogfood"
97
+ "expected_not": "demo-audit"
98
98
  },
99
99
  {
100
- "id": "adia-dogfood-neg-07",
100
+ "id": "demo-audit-neg-07",
101
101
  "phrase": "fix the openai stopReason mapping in the llm client",
102
- "expected_not": "adia-dogfood"
102
+ "expected_not": "demo-audit"
103
103
  },
104
104
  {
105
- "id": "adia-dogfood-neg-08",
105
+ "id": "demo-audit-neg-08",
106
106
  "phrase": "compose the billing settings screen from the catalog",
107
- "expected_not": "adia-dogfood"
107
+ "expected_not": "demo-audit"
108
108
  }
109
109
  ],
110
110
  "_measured_historical": {
@@ -6,7 +6,7 @@ Detection layers, deepest last:
6
6
  console JS errors, non-zero body rect, ≥1 upgraded custom-element host.
7
7
  Artifacts land in `qa/findings/visual-probe-<DATE>/`.
8
8
  2. Bundled deep analyzer —
9
- `node "${CLAUDE_PLUGIN_ROOT}/skills/adia-dogfood/scripts/analyze.mjs"`.
9
+ `node "${CLAUDE_PLUGIN_ROOT}/skills/demo-audit/scripts/analyze.mjs"`.
10
10
  Resolves the target checkout from `$ADIA_REPO_ROOT`, else cwd — always run
11
11
  from (or point it at) the monorepo checkout, never the plugin install dir.
12
12
  Flags: `--filter <slug>` · `--port N` (default 5173) · `--out PATH`
@@ -32,7 +32,7 @@
32
32
  * node "$SCRIPT" --out /tmp/report.md # custom path
33
33
  * node "$SCRIPT" --quiet # report only
34
34
  * where SCRIPT is this file's path
35
- * (`${CLAUDE_PLUGIN_ROOT}/skills/adia-dogfood/scripts/analyze.mjs`).
35
+ * (`${CLAUDE_PLUGIN_ROOT}/skills/demo-audit/scripts/analyze.mjs`).
36
36
  *
37
37
  * Repo root: the monorepo whose `site/sitemap.json` is swept. Resolved from
38
38
  * `$ADIA_REPO_ROOT` if set, else the current working directory — so the
@@ -500,7 +500,7 @@ function renderReport(results, base) {
500
500
  lines.push(`# Dogfooding report — ${today}`);
501
501
  lines.push('');
502
502
  lines.push(`Sweep of every \`/site/components/*\` demo page against ${base}.`);
503
- lines.push('Generated by the `adia-dogfood` skill analyzer (`scripts/analyze.mjs`).');
503
+ lines.push('Generated by the `demo-audit` skill analyzer (`scripts/analyze.mjs`).');
504
504
  lines.push('');
505
505
  lines.push('## Summary');
506
506
  lines.push('');