@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.
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +53 -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 +10 -9
- 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/anti-patterns.md +2 -2
- package/skills/{adia-a2ui → a2ui-maintenance}/references/chunk-authoring.md +2 -2
- package/skills/{adia-a2ui → a2ui-maintenance}/references/eval-diagnostics.md +3 -3
- package/skills/{adia-a2ui → a2ui-maintenance}/references/format-extension-decisions.md +2 -2
- package/skills/{adia-a2ui → a2ui-maintenance}/references/mcp-pipeline-ops.md +5 -5
- package/skills/{adia-a2ui → a2ui-maintenance}/references/mcp-tool-reference.md +5 -4
- package/skills/{adia-a2ui → a2ui-maintenance}/references/pipeline-overview.md +18 -18
- package/skills/{adia-a2ui → a2ui-maintenance}/references/semantic-fail-lifting.md +2 -2
- package/skills/{adia-a2ui → a2ui-maintenance}/references/strategy-engines.md +2 -2
- package/skills/{adia-a2ui → a2ui-maintenance}/references/zettel-calibration.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 +4 -4
- 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 +7 -7
- 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-llm-internals → llm-client-maintenance}/references/adapter-contract.md +3 -3
- package/skills/{adia-llm-internals → llm-client-maintenance}/references/add-a-provider.md +5 -5
- package/skills/{adia-llm-internals → llm-client-maintenance}/references/bridge-facade.md +2 -2
- package/skills/{adia-llm-internals → llm-client-maintenance}/references/browser-proxy-boundary.md +2 -2
- package/skills/{adia-llm-internals → llm-client-maintenance}/references/model-registry.md +2 -2
- package/skills/{adia-llm-internals → llm-client-maintenance}/references/streaming-sse.md +2 -2
- 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 +84 -30
- package/skills/{adia-release → package-release}/references/gates-catalog.md +7 -6
- 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 +87 -37
- 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 +30 -8
- package/skills/{adia-release → package-release}/scripts/package-paths.mjs +47 -18
- 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 +29 -8
- 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 +17 -17
- package/skills/{adia-author → primitive-authoring}/references/module-promotion.md +5 -5
- 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 +6 -6
- 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 +10 -10
- 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/corpus-discipline.md +0 -0
- /package/skills/{adia-a2ui → a2ui-maintenance}/references/leverage-rules.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-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": "a2ui-maintenance routing accuracy corpus",
|
|
4
4
|
"version": "2.1.0",
|
|
5
|
-
"purpose": "Routing-eval corpus for
|
|
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": "
|
|
7
|
+
"scope": "a2ui-maintenance routing \u2014 does this phrase activate a2ui-maintenance?",
|
|
8
8
|
"phrases": [
|
|
9
9
|
{
|
|
10
|
-
"id": "
|
|
10
|
+
"id": "a2ui-maintenance-pos-01",
|
|
11
11
|
"phrase": "validate this A2UI document",
|
|
12
|
-
"expected": "
|
|
12
|
+
"expected": "a2ui-maintenance"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
"id": "
|
|
15
|
+
"id": "a2ui-maintenance-pos-02",
|
|
16
16
|
"phrase": "harvest a chunk from this HTML demo",
|
|
17
|
-
"expected": "
|
|
17
|
+
"expected": "a2ui-maintenance"
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
-
"id": "
|
|
20
|
+
"id": "a2ui-maintenance-pos-03",
|
|
21
21
|
"phrase": "zettel coverage dropped after the last change",
|
|
22
|
-
"expected": "
|
|
22
|
+
"expected": "a2ui-maintenance"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
|
-
"id": "
|
|
25
|
+
"id": "a2ui-maintenance-pos-04",
|
|
26
26
|
"phrase": "should this repeated subtree become its own chunk",
|
|
27
|
-
"expected": "
|
|
27
|
+
"expected": "a2ui-maintenance"
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
"id": "
|
|
30
|
+
"id": "a2ui-maintenance-pos-05",
|
|
31
31
|
"phrase": "tune the STRONG_MATCH threshold",
|
|
32
|
-
"expected": "
|
|
32
|
+
"expected": "a2ui-maintenance"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
"id": "
|
|
35
|
+
"id": "a2ui-maintenance-pos-06",
|
|
36
36
|
"phrase": "run check_anti_patterns on this rendered HTML",
|
|
37
|
-
"expected": "
|
|
37
|
+
"expected": "a2ui-maintenance"
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
"id": "
|
|
40
|
+
"id": "a2ui-maintenance-pos-07",
|
|
41
41
|
"phrase": "refine composition with an OAuth row",
|
|
42
|
-
"expected": "
|
|
42
|
+
"expected": "a2ui-maintenance"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
"id": "
|
|
45
|
+
"id": "a2ui-maintenance-pos-08",
|
|
46
46
|
"phrase": "MRR dropped in the chunk retrieval eval",
|
|
47
|
-
"expected": "
|
|
47
|
+
"expected": "a2ui-maintenance"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
"id": "
|
|
50
|
+
"id": "a2ui-maintenance-pos-09",
|
|
51
51
|
"phrase": "add an MCP tool to the a2ui server",
|
|
52
|
-
"expected": "
|
|
52
|
+
"expected": "a2ui-maintenance"
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
|
-
"id": "
|
|
55
|
+
"id": "a2ui-maintenance-pos-10",
|
|
56
56
|
"phrase": "audit the training data corpus for drift",
|
|
57
|
-
"expected": "
|
|
57
|
+
"expected": "a2ui-maintenance"
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
|
-
"id": "
|
|
60
|
+
"id": "a2ui-maintenance-pos-11",
|
|
61
61
|
"phrase": "diagnose this eval gap and regression",
|
|
62
|
-
"expected": "
|
|
62
|
+
"expected": "a2ui-maintenance"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
"id": "
|
|
65
|
+
"id": "a2ui-maintenance-pos-12",
|
|
66
66
|
"phrase": "run the MCP pipeline: generate_ui then validate_schema",
|
|
67
|
-
"expected": "
|
|
67
|
+
"expected": "a2ui-maintenance"
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
|
-
"id": "
|
|
70
|
+
"id": "a2ui-maintenance-pos-13",
|
|
71
71
|
"phrase": "lift a semantic fail under sixty",
|
|
72
|
-
"expected": "
|
|
72
|
+
"expected": "a2ui-maintenance"
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
|
-
"id": "
|
|
75
|
+
"id": "a2ui-maintenance-pos-14",
|
|
76
76
|
"phrase": "why did the composer emit composition-match instead of composition-synthesized",
|
|
77
|
-
"expected": "
|
|
77
|
+
"expected": "a2ui-maintenance"
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
|
-
"id": "
|
|
80
|
+
"id": "a2ui-maintenance-neg-01",
|
|
81
81
|
"phrase": "build a settings page from existing primitives",
|
|
82
|
-
"expected_not": "
|
|
82
|
+
"expected_not": "a2ui-maintenance"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
|
-
"id": "
|
|
85
|
+
"id": "a2ui-maintenance-neg-02",
|
|
86
86
|
"phrase": "add a slot to button-ui and update its yaml contract",
|
|
87
|
-
"expected_not": "
|
|
87
|
+
"expected_not": "a2ui-maintenance"
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
|
-
"id": "
|
|
90
|
+
"id": "a2ui-maintenance-neg-03",
|
|
91
91
|
"phrase": "cut a release and bump the version tag",
|
|
92
|
-
"expected_not": "
|
|
92
|
+
"expected_not": "a2ui-maintenance"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
|
-
"id": "
|
|
95
|
+
"id": "a2ui-maintenance-neg-04",
|
|
96
96
|
"phrase": "score the generated UI quality in apps/genui",
|
|
97
|
-
"expected_not": "
|
|
97
|
+
"expected_not": "a2ui-maintenance"
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
|
-
"id": "
|
|
100
|
+
"id": "a2ui-maintenance-neg-05",
|
|
101
101
|
"phrase": "run a broad visual QA sweep across site and playgrounds",
|
|
102
|
-
"expected_not": "
|
|
102
|
+
"expected_not": "a2ui-maintenance"
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
|
-
"id": "
|
|
105
|
+
"id": "a2ui-maintenance-neg-06",
|
|
106
106
|
"phrase": "fix the @adia-ai/llm SSE adapter",
|
|
107
|
-
"expected_not": "
|
|
107
|
+
"expected_not": "a2ui-maintenance"
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
|
-
"id": "
|
|
110
|
+
"id": "a2ui-maintenance-neg-07",
|
|
111
111
|
"phrase": "explain how React state management works",
|
|
112
|
-
"expected_not": "
|
|
112
|
+
"expected_not": "a2ui-maintenance"
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
|
-
"id": "
|
|
115
|
+
"id": "a2ui-maintenance-neg-08",
|
|
116
116
|
"phrase": "compose a settings screen from catalog primitives",
|
|
117
|
-
"expected_not": "
|
|
117
|
+
"expected_not": "a2ui-maintenance"
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
|
-
"id": "
|
|
120
|
+
"id": "a2ui-maintenance-neg-09",
|
|
121
121
|
"phrase": "mount gen-root and wire data resolvers for end users at runtime",
|
|
122
|
-
"expected_not": "
|
|
122
|
+
"expected_not": "a2ui-maintenance"
|
|
123
123
|
},
|
|
124
124
|
{
|
|
125
|
-
"id": "
|
|
125
|
+
"id": "a2ui-maintenance-neg-10",
|
|
126
126
|
"phrase": "edit the getting-started docs page on the site",
|
|
127
|
-
"expected_not": "
|
|
127
|
+
"expected_not": "a2ui-maintenance"
|
|
128
128
|
}
|
|
129
129
|
],
|
|
130
130
|
"_measured_historical": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Anti-pattern catalogue — the 8 checks + tuning discipline
|
|
2
2
|
|
|
3
|
-
`check_anti_patterns` (rule source: `packages/a2ui/retrieval/anti-patterns.js`)
|
|
3
|
+
`check_anti_patterns` (rule source: `packages/gen-ui/a2ui/retrieval/anti-patterns.js`)
|
|
4
4
|
runs eight checks against rendered HTML:
|
|
5
5
|
|
|
6
6
|
- `noBareDivs` — use a layout component (`col-ui`, `row-ui`, `grid-ui`, `stack-ui`).
|
|
@@ -21,7 +21,7 @@ runs eight checks against rendered HTML:
|
|
|
21
21
|
finding or feedback against it is noise. Check the output shape first.
|
|
22
22
|
- **Don't commit intermediate JSON.** Scratch files go under the session
|
|
23
23
|
scratchpad or `.gitignore`d paths; the corpus is harvester-generated into
|
|
24
|
-
`packages/a2ui/corpus/chunks/` via `npm run harvest:chunks`.
|
|
24
|
+
`packages/gen-ui/a2ui/corpus/chunks/` via `npm run harvest:chunks`.
|
|
25
25
|
- **One rule at a time**, and after any rule/threshold change re-run
|
|
26
26
|
`npm run mcp:smoke` plus a spot-check over known-clean corpus HTML to
|
|
27
27
|
measure the false-positive delta before landing.
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
The corpus is **one-format and harvester-driven**. Hand-authored pattern /
|
|
4
4
|
composition JSON dirs (`compose/patterns/`, `compose/{fragments,compositions}/`,
|
|
5
5
|
`corpus/patterns/`) were retired; the only retrieval substrate is
|
|
6
|
-
`packages/a2ui/corpus/chunks/` (394 chunks + `_index.json`), produced by
|
|
6
|
+
`packages/gen-ui/a2ui/corpus/chunks/` (394 chunks + `_index.json`), produced by
|
|
7
7
|
`npm run harvest:chunks`. In-tree SoT for this workflow:
|
|
8
|
-
`packages/a2ui/corpus/data-flow.md`.
|
|
8
|
+
`packages/gen-ui/a2ui/corpus/data-flow.md`.
|
|
9
9
|
|
|
10
10
|
## The authoring loop
|
|
11
11
|
|
|
@@ -46,7 +46,7 @@ fluctuate).
|
|
|
46
46
|
## Phase 2 — fixes per bucket
|
|
47
47
|
|
|
48
48
|
- **A. Holdout alignment** — map each intent's `expected_chunk` to the actual
|
|
49
|
-
top-1; update `packages/a2ui/corpus/evals/holdout-compose-from-chunks.jsonl`.
|
|
49
|
+
top-1; update `packages/gen-ui/a2ui/corpus/evals/holdout-compose-from-chunks.jsonl`.
|
|
50
50
|
- **E. Measurement traps** — PascalCase→kebab (`AgentTrace` → `agent-trace`,
|
|
51
51
|
not `agenttrace`); substring false positives (`pane` vs `panel`,
|
|
52
52
|
`textarea-ui` contains `text-ui` — word boundaries); case sensitivity (`/i`).
|
|
@@ -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/
|
|
65
|
+
- **D. Broken render** — `packages/gen-ui/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/
|
|
82
|
+
`packages/gen-ui/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/
|
|
18
|
+
`packages/gen-ui/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 `
|
|
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`
|
|
@@ -23,7 +23,7 @@ node scripts/mcp-call.cjs check_anti_patterns '{"html":"<paste-rendered-html>"}'
|
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
`validate_schema` is fast and deterministic — batch it over
|
|
26
|
-
`packages/a2ui/corpus/chunks/*.json` templates to surface corpus drift without
|
|
26
|
+
`packages/gen-ui/a2ui/corpus/chunks/*.json` templates to surface corpus drift without
|
|
27
27
|
re-running the generator.
|
|
28
28
|
|
|
29
29
|
## Compose from the chunk corpus
|
|
@@ -70,16 +70,16 @@ 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/
|
|
73
|
+
`packages/gen-ui/mcp/TOOLS.md` (the `gen-ui` section).
|
|
74
74
|
|
|
75
75
|
## Feedback loop
|
|
76
76
|
|
|
77
77
|
Score runs with `submit_feedback` keyed on the `executionId` from
|
|
78
78
|
`generate_ui`. The analyzer
|
|
79
|
-
(`packages/a2ui/retrieval/feedback/feedback-analyzer.js`) aggregates
|
|
79
|
+
(`packages/gen-ui/a2ui/retrieval/feedback/feedback-analyzer.js`) aggregates
|
|
80
80
|
`corpus/feedback/*.jsonl` into per-intent trends, promotion candidates
|
|
81
81
|
(≥95 score + ≥4 rating across 3+ runs → `npm run feedback:promote`), and the
|
|
82
|
-
gap registry (`packages/a2ui/corpus/gaps/registry.json`).
|
|
82
|
+
gap registry (`packages/gen-ui/a2ui/corpus/gaps/registry.json`).
|
|
83
83
|
`npm run feedback:report` surfaces the current state.
|
|
84
84
|
|
|
85
85
|
### Human signal (gh#668)
|
|
@@ -87,7 +87,7 @@ gap registry (`packages/a2ui/corpus/gaps/registry.json`).
|
|
|
87
87
|
Every score in the store except a rating is self-graded — the validator marking
|
|
88
88
|
its own homework. Human thumbs are the only outside signal, and they arrive two
|
|
89
89
|
ways, both through the SAME function
|
|
90
|
-
(`packages/a2ui/retrieval/feedback/submit-feedback.js`) into the same JSONL:
|
|
90
|
+
(`packages/gen-ui/a2ui/retrieval/feedback/submit-feedback.js`) into the same JSONL:
|
|
91
91
|
|
|
92
92
|
- `submit_feedback` (MCP), and
|
|
93
93
|
- `POST /api/feedback` from a rendered surface — today the gen-UI gallery's
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# MCP tool reference — the a2ui server's tool surface
|
|
2
2
|
|
|
3
|
-
**Schema SoT is `packages/
|
|
4
|
-
`server.js` — read it for input/output shapes; never
|
|
5
|
-
(they drift).** Tools register in
|
|
6
|
-
`packages/
|
|
3
|
+
**Schema SoT is `packages/gen-ui/mcp/TOOLS.md` (the `gen-ui` section — 31 tools),
|
|
4
|
+
generated alongside `server.js` — read it for input/output shapes; never
|
|
5
|
+
restate schemas here (they drift).** Tools register in
|
|
6
|
+
`packages/gen-ui/mcp/gen-ui/server.js` +
|
|
7
|
+
`packages/gen-ui/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,38 +13,38 @@ lifecycle), `.claude/docs/specs/package-architecture.md` (package relations).
|
|
|
13
13
|
|
|
14
14
|
| File | Role |
|
|
15
15
|
| --- | --- |
|
|
16
|
-
| `packages/
|
|
17
|
-
| `packages/
|
|
18
|
-
| `packages/
|
|
19
|
-
| `packages/
|
|
20
|
-
| `packages/
|
|
21
|
-
| `packages/
|
|
22
|
-
| `packages/
|
|
16
|
+
| `packages/gen-ui/engine/compose/core/generator.js` | `generate_ui` orchestrator — instant / pro / thinking / stream modes; multi-turn via `executionId` |
|
|
17
|
+
| `packages/gen-ui/engine/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/engine/compose/strategies/zettel/` | Zettel + chunk-zettel engines — see [strategy-engines](strategy-engines.md) for the per-file map |
|
|
19
|
+
| `packages/gen-ui/engine/compose/strategies/free-form-composer/` | Free-form engine (`index.js`, `system-prompt.js`, `transpile.js`) |
|
|
20
|
+
| `packages/gen-ui/engine/compose/strategies/_shared/chunk-loader.js` | Shared chunk loading for engines |
|
|
21
|
+
| `packages/gen-ui/engine/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/engine/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
|
-
| `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/
|
|
28
|
+
| `packages/gen-ui/a2ui/corpus/scripts/chunk-library.js` | Chunk catalog API — `getChunk()`, `searchChunks()` (keyword), `searchChunksAsync()` (keyword + cosine), `listChunksByKind()`, `lookupChunksByPrimary()`. Reads `corpus/chunks/` + `_index.json` |
|
|
29
|
+
| `packages/gen-ui/engine/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/
|
|
32
|
-
| `packages/
|
|
33
|
-
| `packages/
|
|
34
|
-
| `packages/
|
|
35
|
-
| `packages/
|
|
31
|
+
| `packages/gen-ui/engine/retrieval/intent/intent-categorizer.js` | Free-text intent → UI-category taxonomy |
|
|
32
|
+
| `packages/gen-ui/engine/retrieval/feedback/feedback-analyzer.js` | Aggregates JSONL feedback (`corpus/feedback/*.jsonl`); promotion + gap candidates |
|
|
33
|
+
| `packages/gen-ui/engine/retrieval/feedback/gap-registry.js` | Persistent gap tracking → `packages/gen-ui/a2ui/corpus/gaps/registry.json` |
|
|
34
|
+
| `packages/gen-ui/engine/retrieval/anti-patterns.js` | The `check_anti_patterns` rule source |
|
|
35
|
+
| `packages/gen-ui/engine/compose/core/reference.js` | Thin wrappers over retrieval exports (`searchBlocks`, `searchBlocksSemantic`, …) |
|
|
36
36
|
|
|
37
37
|
### LLM bridge + MCP
|
|
38
38
|
|
|
39
39
|
| File | Role |
|
|
40
40
|
| --- | --- |
|
|
41
|
-
| `packages/llm/llm-bridge.js` | `createAdapter()` — real LLM or stub fallback |
|
|
41
|
+
| `packages/llm/core/llm-bridge.js` | `createAdapter()` — real LLM or stub fallback |
|
|
42
42
|
| `scripts/load-env.mjs` | Shared .env loader for Node scripts |
|
|
43
|
-
| `packages/
|
|
43
|
+
| `packages/gen-ui/mcp/gen-ui/server.js` + `packages/gen-ui/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
|
|
|
47
|
-
1. **Relative imports in `packages/llm/*.js`** — never `@llm/` Vite aliases;
|
|
47
|
+
1. **Relative imports in `packages/llm/core/*.js`** — never `@llm/` Vite aliases;
|
|
48
48
|
they don't resolve in Node and break published consumers.
|
|
49
49
|
2. **`load-env.mjs` before any a2ui import in Node** — without it,
|
|
50
50
|
`createAdapter()` silently returns `StubLLMAdapter` (canned 6-component
|
|
@@ -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/
|
|
63
|
+
`packages/gen-ui/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/
|
|
7
|
+
## The judge's three axes (`packages/gen-ui/engine/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/
|
|
67
|
+
node packages/gen-ui/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,6 +1,6 @@
|
|
|
1
1
|
# Strategy engines — zettel file map, strategy labels, issue telemetry
|
|
2
2
|
|
|
3
|
-
## File map (`packages/a2ui/compose/strategies/zettel/`, verified 2026-07)
|
|
3
|
+
## File map (`packages/gen-ui/a2ui/compose/strategies/zettel/`, verified 2026-07)
|
|
4
4
|
|
|
5
5
|
```text
|
|
6
6
|
generator-adapter.js ← zettel entry: retrieval → strong-match / chunk-synthesis bridge / atoms
|
|
@@ -67,7 +67,7 @@ issues / PR descriptions. Type taxonomy: `bug` / `training-gap` /
|
|
|
67
67
|
|
|
68
68
|
Every LLM-calling engine outside this directory (`generate-pro`,
|
|
69
69
|
`generate-thinking`) routes its final candidate through the shared
|
|
70
|
-
`packages/a2ui/compose/shared/validate-and-repair.js` — full schema +
|
|
70
|
+
`packages/gen-ui/a2ui/compose/shared/validate-and-repair.js` — full schema +
|
|
71
71
|
Ajv catalog + anti-pattern conformance, orthogonal to whatever narrower
|
|
72
72
|
check the engine already runs. `chunk-zettel` (`chunk-synthesizer.js`'s
|
|
73
73
|
`composeFromIntent`) does NOT get this: its result is a raw HTML
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
**Calibration history is the substrate.** Each tweak left a trail; the same
|
|
4
4
|
value may have been tried and rejected before. Recover any decision's context
|
|
5
|
-
with `git log -S <CONSTANT> -- packages/a2ui` and the linked PR description.
|
|
5
|
+
with `git log -S <CONSTANT> -- packages/gen-ui/a2ui` and the linked PR description.
|
|
6
6
|
**Don't change any constant without running `npm run eval:diff` first.** Each
|
|
7
7
|
is calibrated against the held-out intent set or production telemetry.
|
|
8
8
|
|
|
9
9
|
## `STRONG_MATCH_THRESHOLD = 40`
|
|
10
10
|
|
|
11
|
-
- **File**: `packages/a2ui/compose/strategies/zettel/generator-adapter.js` (`grep -n STRONG_MATCH_THRESHOLD`)
|
|
11
|
+
- **File**: `packages/gen-ui/a2ui/compose/strategies/zettel/generator-adapter.js` (`grep -n STRONG_MATCH_THRESHOLD`)
|
|
12
12
|
- **Raised**: 22 → 40 post-incident.
|
|
13
13
|
- **Reason**: at 22, login-form / signup-form played verbatim too often →
|
|
14
14
|
repetitive output. At 40, only near-perfect retrievals (chart-dashboard=48,
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
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 (
|
|
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
|
-
#
|
|
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/
|
|
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 `
|
|
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 `
|
|
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
|
|
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
|
|
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": "
|
|
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": "
|
|
14
|
-
{ "id": "n02", "prompt": "Add a new primitive component to packages/web-components", "expect": "no-trigger", "owner": "
|
|
15
|
-
{ "id": "n03", "prompt": "Cut the next release and publish the lockstep packages", "expect": "no-trigger", "owner": "
|
|
16
|
-
{ "id": "n04", "prompt": "Deploy the latest build to ui-kit.exe.xyz", "expect": "no-trigger", "owner": "
|
|
17
|
-
{ "id": "n05", "prompt": "Zettel coverage dropped on the nightly eval, find out why", "expect": "no-trigger", "owner": "
|
|
18
|
-
{ "id": "n06", "prompt": "Compose the billing settings screen from the catalog", "expect": "no-trigger", "owner": "
|
|
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
|
}
|