@adia-ai/adia-ui-forge 0.8.36 → 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.
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +40 -18
- package/README.md +17 -17
- package/agents/{a2ui-builder.corpus.json → a2ui-maintenance-agent.corpus.json} +1 -1
- package/agents/{a2ui-builder.md → a2ui-maintenance-agent.md} +6 -6
- package/agents/framework-reviewer.md +6 -6
- package/agents/{release-builder.corpus.json → package-release-agent.corpus.json} +3 -3
- package/agents/{release-builder.md → package-release-agent.md} +7 -7
- package/agents/{component-author.corpus.json → primitive-authoring-agent.corpus.json} +2 -2
- package/agents/{component-author.md → primitive-authoring-agent.md} +7 -7
- package/agents/routing-corpus.json +40 -40
- package/commands/{dogfood.md → demo-audit.md} +2 -1
- package/commands/{gen-review.md → gen-ui-review.md} +3 -2
- package/commands/{release.md → package-release.md} +3 -2
- package/commands/{deploy.md → site-deployment.md} +2 -1
- package/package.json +1 -1
- package/references/contracts/a2ui-mcp-surface.md +16 -8
- package/references/contracts/migration-guide-format.md +4 -4
- package/scripts/demo-postwrite-pattern-gate +2 -2
- package/scripts/release-pretag-docs-gate +2 -2
- package/scripts/sidecar-prewrite-guard +3 -3
- package/skills/{adia-a2ui → a2ui-maintenance}/SKILL.md +6 -5
- package/skills/{adia-a2ui → a2ui-maintenance}/evals/evals.json +8 -8
- package/skills/{adia-a2ui → a2ui-maintenance}/evals/routing-corpus.json +51 -51
- package/skills/{adia-a2ui → a2ui-maintenance}/references/eval-diagnostics.md +2 -2
- package/skills/{adia-a2ui → a2ui-maintenance}/references/format-extension-decisions.md +2 -2
- package/skills/{adia-a2ui → a2ui-maintenance}/references/mcp-pipeline-ops.md +1 -1
- package/skills/{adia-a2ui → a2ui-maintenance}/references/mcp-tool-reference.md +5 -4
- package/skills/{adia-a2ui → a2ui-maintenance}/references/pipeline-overview.md +15 -15
- package/skills/{adia-a2ui → a2ui-maintenance}/references/semantic-fail-lifting.md +2 -2
- package/skills/{adia-dogfood → demo-audit}/SKILL.md +8 -8
- package/skills/{adia-dogfood → demo-audit}/evals/evals.json +7 -7
- package/skills/{adia-dogfood → demo-audit}/evals/routing-corpus.json +43 -43
- package/skills/{adia-dogfood → demo-audit}/references/visual-probe-triage.md +1 -1
- package/skills/{adia-dogfood → demo-audit}/scripts/analyze.mjs +2 -2
- package/skills/{adia-gen-review → gen-ui-review}/SKILL.md +13 -13
- package/skills/{adia-gen-review → gen-ui-review}/evals/evals.json +7 -7
- package/skills/{adia-gen-review → gen-ui-review}/evals/routing-corpus.json +43 -43
- package/skills/{adia-gen-review → gen-ui-review}/references/corpus-html-patterns.md +3 -3
- package/skills/{adia-gen-review → gen-ui-review}/references/loop-protocol.md +11 -11
- package/skills/{adia-gen-review → gen-ui-review}/references/scores.schema.json +1 -1
- package/skills/{adia-gen-review → gen-ui-review}/scripts/gen-review-coverage-audit.mjs +4 -4
- package/skills/{adia-gen-review → gen-ui-review}/scripts/gen-review-decompose.mjs +6 -6
- package/skills/{adia-gen-review → gen-ui-review}/scripts/gen-review-status.mjs +5 -5
- package/skills/{adia-gen-review → gen-ui-review}/scripts/validate-cycle-scores.mjs +5 -5
- package/skills/{adia-llm-internals → llm-client-maintenance}/SKILL.md +4 -4
- package/skills/{adia-llm-internals → llm-client-maintenance}/evals/evals.json +7 -7
- package/skills/{adia-llm-internals → llm-client-maintenance}/evals/routing-corpus.json +49 -49
- package/skills/{adia-release → package-release}/SKILL.md +16 -16
- package/skills/{adia-release → package-release}/evals/evals.json +7 -7
- package/skills/{adia-release → package-release}/evals/routing-corpus.json +45 -45
- package/skills/{adia-release → package-release}/references/changelog-discipline.md +4 -4
- package/skills/{adia-release → package-release}/references/cut-procedure.md +167 -28
- package/skills/{adia-release → package-release}/references/gates-catalog.md +4 -3
- package/skills/{adia-release → package-release}/references/independent-package-release.md +2 -2
- package/skills/{adia-release → package-release}/references/migration-guide-authoring.md +12 -3
- package/skills/{adia-release → package-release}/references/recovery-paths.md +5 -5
- package/skills/{adia-release → package-release}/scripts/bump.mjs +77 -30
- package/skills/{adia-release → package-release}/scripts/dispatch-publish.mjs +1 -1
- package/skills/{adia-release → package-release}/scripts/gate-roster.mjs +17 -6
- package/skills/{adia-release → package-release}/scripts/insert-stub.mjs +29 -7
- package/skills/{adia-release → package-release}/scripts/package-paths.mjs +51 -6
- package/skills/{adia-release → package-release}/scripts/pr-bridge.mjs +1 -1
- package/skills/{adia-release → package-release}/scripts/promote-unreleased.mjs +1 -1
- package/skills/{adia-release → package-release}/scripts/release-pack.mjs +18 -4
- package/skills/{adia-release → package-release}/scripts/tag-lockstep.mjs +2 -2
- package/skills/{adia-author → primitive-authoring}/SKILL.md +7 -7
- package/skills/{adia-author → primitive-authoring}/evals/evals.json +7 -7
- package/skills/{adia-author → primitive-authoring}/evals/routing-corpus.json +61 -61
- package/skills/{adia-author → primitive-authoring}/references/INDEX.md +2 -2
- package/skills/{adia-author → primitive-authoring}/references/authoring-cycle.md +1 -1
- package/skills/{adia-author → primitive-authoring}/references/code-style.md +5 -5
- package/skills/{adia-author → primitive-authoring}/references/common-gotchas.md +1 -1
- package/skills/{adia-author → primitive-authoring}/references/llm-bridge.md +7 -7
- package/skills/{adia-author → primitive-authoring}/references/module-promotion.md +3 -3
- package/skills/{adia-author → primitive-authoring}/references/shell-patterns.md +2 -2
- package/skills/{adia-author → primitive-authoring}/references/trait-pages.md +1 -1
- package/skills/{adia-author → primitive-authoring}/scripts/build-canonical-pattern-index.mjs +1 -1
- package/skills/{adia-deploy → site-deployment}/SKILL.md +4 -4
- package/skills/{adia-deploy → site-deployment}/evals/evals.json +8 -8
- package/skills/{adia-deploy → site-deployment}/evals/routing-corpus.json +49 -49
- package/skills/{adia-deploy → site-deployment}/references/deploy-playbooks.md +2 -2
- package/skills/{adia-site-docs → site-docs-authoring}/SKILL.md +4 -4
- package/skills/{adia-site-docs → site-docs-authoring}/evals/evals.json +7 -7
- package/skills/{adia-site-docs → site-docs-authoring}/evals/routing-corpus.json +51 -51
- package/skills/{adia-site-docs → site-docs-authoring}/intent.md +8 -8
- package/skills/{adia-ssr → ssr-compatibility}/SKILL.md +8 -8
- package/skills/{adia-ssr → ssr-compatibility}/evals/evals.json +7 -7
- package/skills/{adia-ssr → ssr-compatibility}/evals/routing-corpus.json +43 -43
- package/skills/{adia-ssr → ssr-compatibility}/references/failure-shapes.md +1 -1
- package/skills/{adia-ssr → ssr-compatibility}/references/guard-patterns.md +1 -1
- /package/skills/{adia-a2ui → a2ui-maintenance}/references/anti-patterns.md +0 -0
- /package/skills/{adia-a2ui → a2ui-maintenance}/references/chunk-authoring.md +0 -0
- /package/skills/{adia-a2ui → a2ui-maintenance}/references/corpus-discipline.md +0 -0
- /package/skills/{adia-a2ui → a2ui-maintenance}/references/leverage-rules.md +0 -0
- /package/skills/{adia-a2ui → a2ui-maintenance}/references/strategy-engines.md +0 -0
- /package/skills/{adia-a2ui → a2ui-maintenance}/references/zettel-calibration.md +0 -0
- /package/skills/{adia-dogfood → demo-audit}/references/admin-shell-anatomy.md +0 -0
- /package/skills/{adia-dogfood → demo-audit}/references/app-shell-pitfalls.md +0 -0
- /package/skills/{adia-dogfood → demo-audit}/references/card-anatomy-sweep.md +0 -0
- /package/skills/{adia-dogfood → demo-audit}/references/html-attr-sweep.md +0 -0
- /package/skills/{adia-dogfood → demo-audit}/references/native-leak-annotations.md +0 -0
- /package/skills/{adia-gen-review → gen-ui-review}/references/rubric-cosmetic.md +0 -0
- /package/skills/{adia-gen-review → gen-ui-review}/references/rubric-decompose.md +0 -0
- /package/skills/{adia-gen-review → gen-ui-review}/references/rubric-score.md +0 -0
- /package/skills/{adia-llm-internals → llm-client-maintenance}/references/adapter-contract.md +0 -0
- /package/skills/{adia-llm-internals → llm-client-maintenance}/references/add-a-provider.md +0 -0
- /package/skills/{adia-llm-internals → llm-client-maintenance}/references/bridge-facade.md +0 -0
- /package/skills/{adia-llm-internals → llm-client-maintenance}/references/browser-proxy-boundary.md +0 -0
- /package/skills/{adia-llm-internals → llm-client-maintenance}/references/model-registry.md +0 -0
- /package/skills/{adia-llm-internals → llm-client-maintenance}/references/streaming-sse.md +0 -0
- /package/skills/{adia-release → package-release}/references/notes-authoring.md +0 -0
- /package/skills/{adia-release → package-release}/scripts/assert-monorepo-root.mjs +0 -0
- /package/skills/{adia-author → primitive-authoring}/references/anti-patterns.md +0 -0
- /package/skills/{adia-author → primitive-authoring}/references/api-contract.md +0 -0
- /package/skills/{adia-author → primitive-authoring}/references/canonical-pattern-index.md +0 -0
- /package/skills/{adia-author → primitive-authoring}/references/composite-demo-protocol.md +0 -0
- /package/skills/{adia-author → primitive-authoring}/references/css-patterns.md +0 -0
- /package/skills/{adia-author → primitive-authoring}/references/lifecycle-patterns.md +0 -0
- /package/skills/{adia-author → primitive-authoring}/references/primitive-audit.md +0 -0
- /package/skills/{adia-author → primitive-authoring}/references/token-contract.md +0 -0
- /package/skills/{adia-author → primitive-authoring}/references/worked-example.md +0 -0
- /package/skills/{adia-author → primitive-authoring}/references/yaml-contract.md +0 -0
- /package/skills/{adia-ssr → ssr-compatibility}/references/consumer-workarounds.md +0 -0
- /package/skills/{adia-ssr → ssr-compatibility}/references/status-ledger.md +0 -0
- /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": "
|
|
3
|
+
"name": "site-docs-authoring routing accuracy corpus",
|
|
4
4
|
"version": "2.1.0",
|
|
5
|
-
"purpose": "Routing-eval corpus for
|
|
5
|
+
"purpose": "Routing-eval corpus for site-docs-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": "
|
|
7
|
+
"scope": "site-docs-authoring routing \u2014 does this phrase activate site-docs-authoring?",
|
|
8
8
|
"phrases": [
|
|
9
9
|
{
|
|
10
|
-
"id": "
|
|
10
|
+
"id": "site-docs-authoring-pos-01",
|
|
11
11
|
"phrase": "review this site docs page for consistency",
|
|
12
|
-
"expected": "
|
|
12
|
+
"expected": "site-docs-authoring"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
"id": "
|
|
15
|
+
"id": "site-docs-authoring-pos-02",
|
|
16
16
|
"phrase": "does this callout look like plain text to you",
|
|
17
|
-
"expected": "
|
|
17
|
+
"expected": "site-docs-authoring"
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
-
"id": "
|
|
20
|
+
"id": "site-docs-authoring-pos-03",
|
|
21
21
|
"phrase": "why is the code background not visible on this page",
|
|
22
|
-
"expected": "
|
|
22
|
+
"expected": "site-docs-authoring"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
|
-
"id": "
|
|
25
|
+
"id": "site-docs-authoring-pos-04",
|
|
26
26
|
"phrase": "add a new pattern page under site/pages/patterns",
|
|
27
|
-
"expected": "
|
|
27
|
+
"expected": "site-docs-authoring"
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
"id": "
|
|
30
|
+
"id": "site-docs-authoring-pos-05",
|
|
31
31
|
"phrase": "author a new getting-started guide page",
|
|
32
|
-
"expected": "
|
|
32
|
+
"expected": "site-docs-authoring"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
"id": "
|
|
35
|
+
"id": "site-docs-authoring-pos-06",
|
|
36
36
|
"phrase": "write a new architecture explainer page for the docs site",
|
|
37
|
-
"expected": "
|
|
37
|
+
"expected": "site-docs-authoring"
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
"id": "
|
|
40
|
+
"id": "site-docs-authoring-pos-07",
|
|
41
41
|
"phrase": "create a reference page documenting the MCP tools",
|
|
42
|
-
"expected": "
|
|
42
|
+
"expected": "site-docs-authoring"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
"id": "
|
|
45
|
+
"id": "site-docs-authoring-pos-08",
|
|
46
46
|
"phrase": "this demo page needs a tamed static frame like the other pattern pages",
|
|
47
|
-
"expected": "
|
|
47
|
+
"expected": "site-docs-authoring"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
"id": "
|
|
50
|
+
"id": "site-docs-authoring-pos-09",
|
|
51
51
|
"phrase": "add a new admin-shell demo to this patterns page without duplicating the taming CSS",
|
|
52
|
-
"expected": "
|
|
52
|
+
"expected": "site-docs-authoring"
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
|
-
"id": "
|
|
55
|
+
"id": "site-docs-authoring-pos-10",
|
|
56
56
|
"phrase": "is this site page consistent with our authoring conventions",
|
|
57
|
-
"expected": "
|
|
57
|
+
"expected": "site-docs-authoring"
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
|
-
"id": "
|
|
60
|
+
"id": "site-docs-authoring-pos-11",
|
|
61
61
|
"phrase": "audit site/pages/guides for the same callout bug we found elsewhere",
|
|
62
|
-
"expected": "
|
|
62
|
+
"expected": "site-docs-authoring"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
"id": "
|
|
65
|
+
"id": "site-docs-authoring-pos-12",
|
|
66
66
|
"phrase": "this warning box on the docs page has no background at all",
|
|
67
|
-
"expected": "
|
|
67
|
+
"expected": "site-docs-authoring"
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
|
-
"id": "
|
|
70
|
+
"id": "site-docs-authoring-pos-13",
|
|
71
71
|
"phrase": "what's the shared skeleton every site docs page should follow",
|
|
72
|
-
"expected": "
|
|
72
|
+
"expected": "site-docs-authoring"
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
|
-
"id": "
|
|
75
|
+
"id": "site-docs-authoring-pos-14",
|
|
76
76
|
"phrase": "what token should a new chip-like surface use to stay readable against the page background",
|
|
77
|
-
"expected": "
|
|
77
|
+
"expected": "site-docs-authoring"
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
|
-
"id": "
|
|
80
|
+
"id": "site-docs-authoring-pos-15",
|
|
81
81
|
"phrase": "check the patterns pages for any other unstyled data attributes like data-alert",
|
|
82
|
-
"expected": "
|
|
82
|
+
"expected": "site-docs-authoring"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
|
-
"id": "
|
|
85
|
+
"id": "site-docs-authoring-pos-16",
|
|
86
86
|
"phrase": "scaffold a new getting-started/theming-dark-mode.html page",
|
|
87
|
-
"expected": "
|
|
87
|
+
"expected": "site-docs-authoring"
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
|
-
"id": "
|
|
90
|
+
"id": "site-docs-authoring-neg-01",
|
|
91
91
|
"phrase": "review this component's own demo gallery in its .examples.html file",
|
|
92
|
-
"expected_not": "
|
|
92
|
+
"expected_not": "site-docs-authoring"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
|
-
"id": "
|
|
95
|
+
"id": "site-docs-authoring-neg-02",
|
|
96
96
|
"phrase": "fix this gen-ui training exemplar page under site/pages/examples",
|
|
97
|
-
"expected_not": "
|
|
97
|
+
"expected_not": "site-docs-authoring"
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
|
-
"id": "
|
|
100
|
+
"id": "site-docs-authoring-neg-03",
|
|
101
101
|
"phrase": "tune the zettel retrieval threshold for the chunk corpus",
|
|
102
|
-
"expected_not": "
|
|
102
|
+
"expected_not": "site-docs-authoring"
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
|
-
"id": "
|
|
105
|
+
"id": "site-docs-authoring-neg-04",
|
|
106
106
|
"phrase": "add a new prop to the button-ui primitive",
|
|
107
|
-
"expected_not": "
|
|
107
|
+
"expected_not": "site-docs-authoring"
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
|
-
"id": "
|
|
110
|
+
"id": "site-docs-authoring-neg-05",
|
|
111
111
|
"phrase": "cut the next npm release for the 9 @adia-ai packages",
|
|
112
|
-
"expected_not": "
|
|
112
|
+
"expected_not": "site-docs-authoring"
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
|
-
"id": "
|
|
115
|
+
"id": "site-docs-authoring-neg-06",
|
|
116
116
|
"phrase": "deploy the docs site to ui-kit.exe.xyz",
|
|
117
|
-
"expected_not": "
|
|
117
|
+
"expected_not": "site-docs-authoring"
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
|
-
"id": "
|
|
120
|
+
"id": "site-docs-authoring-neg-07",
|
|
121
121
|
"phrase": "fix this gen-ui training exemplar page",
|
|
122
|
-
"expected_not": "
|
|
122
|
+
"expected_not": "site-docs-authoring"
|
|
123
123
|
},
|
|
124
124
|
{
|
|
125
|
-
"id": "
|
|
125
|
+
"id": "site-docs-authoring-neg-08",
|
|
126
126
|
"phrase": "add a demo to the patterns page for card-ui",
|
|
127
|
-
"expected_not": "
|
|
127
|
+
"expected_not": "site-docs-authoring"
|
|
128
128
|
}
|
|
129
129
|
],
|
|
130
130
|
"_measured_historical": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# intent —
|
|
1
|
+
# intent — site-docs-authoring
|
|
2
2
|
status: shipped
|
|
3
3
|
species: procedural
|
|
4
4
|
dials: { disable-model-invocation: false, user-invocable: true }
|
|
@@ -23,8 +23,8 @@ should:
|
|
|
23
23
|
- "author a new page under site/pages/getting-started"
|
|
24
24
|
- "is this site page consistent with our conventions"
|
|
25
25
|
should_not:
|
|
26
|
-
- "review this component demo gallery" (packages/web-components/components/*/*.examples.html —
|
|
27
|
-
- "fix this gen-ui training exemplar page" (site/pages/examples/**, site/pages/gen-ui/** — composition-and-examples.md's no-style-block rule +
|
|
26
|
+
- "review this component demo gallery" (packages/web-components/components/*/*.examples.html — primitive-authoring)
|
|
27
|
+
- "fix this gen-ui training exemplar page" (site/pages/examples/**, site/pages/gen-ui/** — composition-and-examples.md's no-style-block rule + a2ui-maintenance)
|
|
28
28
|
|
|
29
29
|
## delta
|
|
30
30
|
Without this skill, Claude (or a human author) reaches for whatever
|
|
@@ -48,9 +48,9 @@ block, because nothing routes them to `alert-ui` or `.demo-frame`
|
|
|
48
48
|
before they start typing.
|
|
49
49
|
|
|
50
50
|
## fences
|
|
51
|
-
- NOT for `packages/web-components/components/*/*.examples.html` component demo pages (
|
|
52
|
-
- NOT for `site/pages/examples/**`, `site/pages/gen-ui/**`, `packages/a2ui/corpus/exemplars/**` — pure primitive-composition training-harvest surfaces with their own no-style-block rule (`composition-and-examples.md`,
|
|
53
|
-
- NOT for the A2UI generation pipeline itself, chunk corpus, or MCP tools (
|
|
51
|
+
- NOT for `packages/web-components/components/*/*.examples.html` component demo pages (primitive-authoring)
|
|
52
|
+
- NOT for `site/pages/examples/**`, `site/pages/gen-ui/**`, `packages/a2ui/corpus/exemplars/**` — pure primitive-composition training-harvest surfaces with their own no-style-block rule (`composition-and-examples.md`, a2ui-maintenance)
|
|
53
|
+
- NOT for the A2UI generation pipeline itself, chunk corpus, or MCP tools (a2ui-maintenance)
|
|
54
54
|
|
|
55
55
|
## assertions
|
|
56
56
|
1. A new callout block the skill produces uses `<alert-ui variant="...">` with a `[slot="content"]` wrapper for rich text — never a bare `data-*` attribute with no matching CSS.
|
|
@@ -61,10 +61,10 @@ before they start typing.
|
|
|
61
61
|
## gates
|
|
62
62
|
P0 route: PASS — 2026-07-14 — knowledge/procedure needed on demand (author or review a site/pages doc), not mechanically checkable (hook), not always-true-every-turn (entry file), no tool-wall/parallelism need (agent). Skill.
|
|
63
63
|
P1 intent: PASS — 2026-07-14 — slots filled from the approved plan + this session's research; operator confirmed the plan's Phase 4 scope (doc + dedicated skill) via AskUserQuestion before forging began.
|
|
64
|
-
P2 evals: PASS — 2026-07-14 — see evals/routing-corpus.json (trigger cases, matching this repo's
|
|
64
|
+
P2 evals: PASS — 2026-07-14 — see evals/routing-corpus.json (trigger cases, matching this repo's primitive-authoring sibling's own eval-file convention) and assertions above (behavioral). No literal fresh-session baseline captured (this is a same-session, plan-driven forge, not an interactive intent interview) — the delta section above records the concrete "without this skill" failure mode from direct evidence (the 3 defect classes this session found and fixed) in place of a baseline transcript.
|
|
65
65
|
P3 draft: PASS — 2026-07-14 — SKILL.md + evals/routing-corpus.json exist; both dials explicit; body 61 lines, well under the 500-line budget.
|
|
66
66
|
P4 language: PASS — 2026-07-14 — self-audited against the 5 instantiation checks: task-shape rows commit to concrete actions (not descriptions); ~3 hard-gate ceiling held (never restate demo-frame properties, never a bare data-* callout, don't reach for a raw ramp step without color-verify); numeric anchors present (>=3:1, 34-page, 4 rules); contracts (task-shape table) precede the verify-steps tail; the labeled good/bad alert-ui pair lives in the referenced convention doc rather than duplicated here (reference, never restate).
|
|
67
|
-
P5 validate: PASS — 2026-07-14 — skill_lint.py clean; skill-auditor FLOOR audit verdict PASS (report at evals/audit-report.md), 3 minor non-blocking findings, all fixed same-change (phantom fence trimmed to reference composition-and-examples.md by name rather than specific paths; 2 negative imperatives demoted to positive form; intent.md's routing-corpus.json citation corrected). No fence-reciprocity step run against
|
|
67
|
+
P5 validate: PASS — 2026-07-14 — skill_lint.py clean; skill-auditor FLOOR audit verdict PASS (report at evals/audit-report.md), 3 minor non-blocking findings, all fixed same-change (phantom fence trimmed to reference composition-and-examples.md by name rather than specific paths; 2 negative imperatives demoted to positive form; intent.md's routing-corpus.json citation corrected). No fence-reciprocity step run against primitive-authoring's own evals — primitive-authoring's corpus already covers "primitive authoring" as should_route_to_author:true, which is the correct answer for those phrases; no reciprocal edit needed there.
|
|
68
68
|
|
|
69
69
|
## rulings
|
|
70
70
|
- Accepted with note: no literal fresh-session baseline transcript (P2) — this forge ran from an already-approved plan's research rather than a live interview; the delta section's direct evidence substitutes. Not re-litigated.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: ssr-compatibility
|
|
3
3
|
description: >-
|
|
4
4
|
Answers why an AdiaUI component crashes, drops content, or renders wrong
|
|
5
5
|
under SSR (linkedom/Astro consumers) — the four known failure shapes,
|
|
@@ -10,13 +10,13 @@ description: >-
|
|
|
10
10
|
nested children when server-rendered, whether it's safe to call
|
|
11
11
|
getBoundingClientRect() synchronously in connectedCallback, or whether a
|
|
12
12
|
browser-API shim/workaround can finally be deleted after a fix ships.
|
|
13
|
-
ANSWERS only. NOT for implementing a fix (
|
|
14
|
-
host/hydration wiring (
|
|
13
|
+
ANSWERS only. NOT for implementing a fix (primitive-authoring) or consumer
|
|
14
|
+
host/hydration wiring (host-wiring, adia-ui-factory plugin).
|
|
15
15
|
disable-model-invocation: false
|
|
16
16
|
user-invocable: false
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
#
|
|
19
|
+
# ssr-compatibility — does it work under SSR, and why not if it doesn't
|
|
20
20
|
|
|
21
21
|
Two real consumers (adiav2's `admin-portal-fe` and `factory-dashboard`) server-render
|
|
22
22
|
AdiaUI's light-DOM components via Astro 5 + `custom-elements-ssr`, which runs on
|
|
@@ -78,20 +78,20 @@ carries the reasoning for why it looks the way it does — the no-op `ElementInt
|
|
|
78
78
|
shim exists because leaving the field `undefined` would relocate a crash, not remove
|
|
79
79
|
it; deletion-based testing exists because this repo has no `linkedom` devDependency.
|
|
80
80
|
If a new case doesn't fit an existing pattern's reasoning, that's a signal to design a
|
|
81
|
-
new pattern. Route it through `
|
|
81
|
+
new pattern. Route it through `primitive-authoring` — don't force-fit the nearest existing
|
|
82
82
|
shape.
|
|
83
83
|
|
|
84
84
|
## Boundaries
|
|
85
85
|
|
|
86
86
|
- **Implementing any fix — new or matching an existing pattern.** Route to
|
|
87
|
-
`
|
|
87
|
+
`primitive-authoring`. This pack orients and cites; it never edits
|
|
88
88
|
`packages/web-components/core/` or any component source.
|
|
89
89
|
- **Consumer-side SSR/hydration host wiring** (an app's own Astro/Next config, which
|
|
90
90
|
rendering mode to pick, how to structure the hydration boundary). Route to
|
|
91
|
-
`
|
|
91
|
+
`host-wiring` (adia-ui-factory plugin) — this pack answers whether the FRAMEWORK's own
|
|
92
92
|
components are SSR-safe, not how a consumer app should be structured around them.
|
|
93
93
|
- **A2UI runtime/generation-pipeline SSR concerns** (if any surface later). Route to
|
|
94
|
-
`
|
|
94
|
+
`a2ui-maintenance` — this pack is scoped to `UIElement`'s own lifecycle and the
|
|
95
95
|
component/trait/module layer, not the generative pipeline.
|
|
96
96
|
- **Not a general web-components-SSR tutorial.** Every claim here is cited to this
|
|
97
97
|
specific framework's actual code, issues, and PRs — general SSR/custom-elements
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"skill": "
|
|
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.
|
|
2
|
+
"skill": "ssr-compatibility",
|
|
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. ssr-compatibility is user-invocable:false but disable-model-invocation:false, so it remains model-invocable and is in G7's scope.",
|
|
4
4
|
"cases": [
|
|
5
5
|
{ "id": "t01", "prompt": "Why does text-ui render empty when we server-render it with Astro?", "expect": "trigger" },
|
|
6
6
|
{ "id": "t02", "prompt": "Our SSR pass crashes because attachInternals isn't a function under linkedom", "expect": "trigger" },
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
{ "id": "t06", "prompt": "document.adoptedStyleSheets is undefined and our component library crashes on import under SSR", "expect": "trigger" },
|
|
11
11
|
{ "id": "t07", "prompt": "What's the actual root cause of the SSR content-loss bug — container CEs losing their nested children?", "expect": "trigger" },
|
|
12
12
|
{ "id": "t08", "prompt": "Can our app finally delete the 110-line browser-API SSR shim now that 0.8.5 is out?", "expect": "trigger" },
|
|
13
|
-
{ "id": "n01", "prompt": "Add hydration-aware stamping so connectedCallback stops overwriting existing children", "expect": "no-trigger", "owner": "
|
|
14
|
-
{ "id": "n02", "prompt": "Set up Astro's rendering mode and hydration boundaries for our admin app", "expect": "no-trigger", "owner": "
|
|
13
|
+
{ "id": "n01", "prompt": "Add hydration-aware stamping so connectedCallback stops overwriting existing children", "expect": "no-trigger", "owner": "primitive-authoring" },
|
|
14
|
+
{ "id": "n02", "prompt": "Set up Astro's rendering mode and hydration boundaries for our admin app", "expect": "no-trigger", "owner": "host-wiring" },
|
|
15
15
|
{ "id": "n03", "prompt": "Explain how custom element hydration works in general, independent of any specific framework", "expect": "no-trigger" },
|
|
16
|
-
{ "id": "n04", "prompt": "Wire up the a2ui generation pipeline to run inside a server-rendered page", "expect": "no-trigger", "owner": "
|
|
17
|
-
{ "id": "n05", "prompt": "Add a new primitive to the component catalog", "expect": "no-trigger", "owner": "
|
|
18
|
-
{ "id": "n06", "prompt": "Deploy the latest build to ui-kit.exe.xyz", "expect": "no-trigger", "owner": "
|
|
16
|
+
{ "id": "n04", "prompt": "Wire up the a2ui generation pipeline to run inside a server-rendered page", "expect": "no-trigger", "owner": "a2ui-maintenance" },
|
|
17
|
+
{ "id": "n05", "prompt": "Add a new primitive to the component catalog", "expect": "no-trigger", "owner": "primitive-authoring" },
|
|
18
|
+
{ "id": "n06", "prompt": "Deploy the latest build to ui-kit.exe.xyz", "expect": "no-trigger", "owner": "site-deployment" }
|
|
19
19
|
]
|
|
20
20
|
}
|
|
@@ -1,110 +1,110 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"name": "
|
|
3
|
+
"name": "ssr-compatibility routing accuracy corpus",
|
|
4
4
|
"version": "2.1.0",
|
|
5
|
-
"purpose": "Routing-eval corpus for
|
|
5
|
+
"purpose": "Routing-eval corpus for ssr-compatibility. 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": "
|
|
7
|
+
"scope": "ssr-compatibility routing \u2014 does this phrase activate ssr-compatibility?",
|
|
8
8
|
"phrases": [
|
|
9
9
|
{
|
|
10
|
-
"id": "
|
|
10
|
+
"id": "ssr-compatibility-pos-01",
|
|
11
11
|
"phrase": "why does text-ui render empty when we server-render it with Astro",
|
|
12
|
-
"expected": "
|
|
12
|
+
"expected": "ssr-compatibility"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
"id": "
|
|
15
|
+
"id": "ssr-compatibility-pos-02",
|
|
16
16
|
"phrase": "our SSR pass crashes on attachInternals not being a function",
|
|
17
|
-
"expected": "
|
|
17
|
+
"expected": "ssr-compatibility"
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
-
"id": "
|
|
20
|
+
"id": "ssr-compatibility-pos-03",
|
|
21
21
|
"phrase": "does select-ui work under linkedom",
|
|
22
|
-
"expected": "
|
|
22
|
+
"expected": "ssr-compatibility"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
|
-
"id": "
|
|
25
|
+
"id": "ssr-compatibility-pos-04",
|
|
26
26
|
"phrase": "admin-sidebar snaps collapsed on every server-rendered page load",
|
|
27
|
-
"expected": "
|
|
27
|
+
"expected": "ssr-compatibility"
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
"id": "
|
|
30
|
+
"id": "ssr-compatibility-pos-05",
|
|
31
31
|
"phrase": "is gh#284 fixed yet, can we drop the attribute-only SSR registration restriction",
|
|
32
|
-
"expected": "
|
|
32
|
+
"expected": "ssr-compatibility"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
"id": "
|
|
35
|
+
"id": "ssr-compatibility-pos-06",
|
|
36
36
|
"phrase": "how do we test that a new ResizeObserver guard actually works without installing linkedom",
|
|
37
|
-
"expected": "
|
|
37
|
+
"expected": "ssr-compatibility"
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
"id": "
|
|
40
|
+
"id": "ssr-compatibility-pos-07",
|
|
41
41
|
"phrase": "new ResizeObserver() throws under our DOM-shim SSR environment",
|
|
42
|
-
"expected": "
|
|
42
|
+
"expected": "ssr-compatibility"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
"id": "
|
|
45
|
+
"id": "ssr-compatibility-pos-08",
|
|
46
46
|
"phrase": "table-ui and chart-ui always render empty in our server-rendered HTML even though the data is set",
|
|
47
|
-
"expected": "
|
|
47
|
+
"expected": "ssr-compatibility"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
"id": "
|
|
50
|
+
"id": "ssr-compatibility-pos-09",
|
|
51
51
|
"phrase": "what's the actual root cause of the SSR content-loss bug, container CEs losing their nested children",
|
|
52
|
-
"expected": "
|
|
52
|
+
"expected": "ssr-compatibility"
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
|
-
"id": "
|
|
55
|
+
"id": "ssr-compatibility-pos-10",
|
|
56
56
|
"phrase": "can our app finally delete the 110-line browser-API shim now that 0.8.5 is out",
|
|
57
|
-
"expected": "
|
|
57
|
+
"expected": "ssr-compatibility"
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
|
-
"id": "
|
|
60
|
+
"id": "ssr-compatibility-pos-11",
|
|
61
61
|
"phrase": "is it safe to call getBoundingClientRect() synchronously in connectedCallback",
|
|
62
|
-
"expected": "
|
|
62
|
+
"expected": "ssr-compatibility"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
"id": "
|
|
65
|
+
"id": "ssr-compatibility-pos-12",
|
|
66
66
|
"phrase": "document.adoptedStyleSheets is undefined and our component library crashes on import",
|
|
67
|
-
"expected": "
|
|
67
|
+
"expected": "ssr-compatibility"
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
|
-
"id": "
|
|
70
|
+
"id": "ssr-compatibility-neg-01",
|
|
71
71
|
"phrase": "add hydration-aware stamping so connectedCallback stops overwriting existing children",
|
|
72
|
-
"expected_not": "
|
|
72
|
+
"expected_not": "ssr-compatibility"
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
|
-
"id": "
|
|
75
|
+
"id": "ssr-compatibility-neg-02",
|
|
76
76
|
"phrase": "set up Astro's rendering mode and hydration boundaries for our admin app",
|
|
77
|
-
"expected_not": "
|
|
77
|
+
"expected_not": "ssr-compatibility"
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
|
-
"id": "
|
|
80
|
+
"id": "ssr-compatibility-neg-03",
|
|
81
81
|
"phrase": "explain how custom element hydration works in general, independent of any specific framework",
|
|
82
|
-
"expected_not": "
|
|
82
|
+
"expected_not": "ssr-compatibility"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
|
-
"id": "
|
|
85
|
+
"id": "ssr-compatibility-neg-04",
|
|
86
86
|
"phrase": "the icon registry comes back empty because of a workspace-hoisting import.meta.glob path bug",
|
|
87
|
-
"expected_not": "
|
|
87
|
+
"expected_not": "ssr-compatibility"
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
|
-
"id": "
|
|
90
|
+
"id": "ssr-compatibility-neg-05",
|
|
91
91
|
"phrase": "wire up the a2ui generation pipeline to run inside a server-rendered page",
|
|
92
|
-
"expected_not": "
|
|
92
|
+
"expected_not": "ssr-compatibility"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
|
-
"id": "
|
|
95
|
+
"id": "ssr-compatibility-neg-06",
|
|
96
96
|
"phrase": "add a new primitive to the component catalog",
|
|
97
|
-
"expected_not": "
|
|
97
|
+
"expected_not": "ssr-compatibility"
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
|
-
"id": "
|
|
100
|
+
"id": "ssr-compatibility-neg-07",
|
|
101
101
|
"phrase": "compose the billing settings screen from the catalog",
|
|
102
|
-
"expected_not": "
|
|
102
|
+
"expected_not": "ssr-compatibility"
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
|
-
"id": "
|
|
105
|
+
"id": "ssr-compatibility-neg-08",
|
|
106
106
|
"phrase": "deploy the latest build to ui-kit.exe.xyz",
|
|
107
|
-
"expected": "
|
|
107
|
+
"expected": "site-deployment"
|
|
108
108
|
}
|
|
109
109
|
],
|
|
110
110
|
"_measured_historical": {
|
|
@@ -69,7 +69,7 @@ instances. Shipped a forward-looking STATIC AUDIT instead:
|
|
|
69
69
|
component pairing a non-null `static template` with a yaml `slots.default` entry
|
|
70
70
|
(the container shape), and (advisory) a non-null template paired with a body-text
|
|
71
71
|
usage example (the projected-text shape, no mechanical yaml signal to check). Wired
|
|
72
|
-
into `
|
|
72
|
+
into `primitive-authoring`'s structural-gate sequence. This is an operator ruling (not a
|
|
73
73
|
unilateral call) — see gh#284's comment thread for the full reasoning and the
|
|
74
74
|
empirical survey it's based on.
|
|
75
75
|
|
|
@@ -100,7 +100,7 @@ pattern) — NOT by inventing a component-local stamp-skip flag or a marker
|
|
|
100
100
|
attribute; either of those drifts from the established convention and isn't
|
|
101
101
|
covered by this audit's "safe" classification. If a genuinely new component NEEDS
|
|
102
102
|
both a non-null template AND real consumer children (unlike anything shipped
|
|
103
|
-
today), route through `
|
|
103
|
+
today), route through `primitive-authoring` before authoring it — that's a real design
|
|
104
104
|
question, not a mechanical fix.
|
|
105
105
|
|
|
106
106
|
## §2b · Reflected properties not initialized from pre-existing attributes on upgrade (gh#284's REAL fix, PR #309)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/skills/{adia-llm-internals → llm-client-maintenance}/references/adapter-contract.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/skills/{adia-llm-internals → llm-client-maintenance}/references/browser-proxy-boundary.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|