@adia-ai/adia-ui-factory 0.8.6 → 0.8.8
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/.mcp.json +1 -1
- package/CHANGELOG.md +35 -0
- package/README.md +24 -8
- package/agents/{app-architect.md → app-planner.md} +5 -5
- package/agents/{consumer-verifier.md → consumer-reviewer.md} +16 -8
- package/agents/routing-corpus.json +37 -37
- package/agents/{screen-composer.md → screen-builder.md} +5 -5
- package/bin/adia-info +57 -4
- package/commands/adia-verify.md +2 -2
- package/package.json +1 -1
- package/references/agentic-ux-patterns.md +64 -0
- package/references/composed-surface-rubric.md +74 -0
- package/references/contracts/a2ui-mcp-surface.md +1 -1
- package/references/shell-admin.md +24 -0
- package/references/shell-editor.md +19 -1
- package/skills/adia-audit/SKILL.md +103 -0
- package/skills/adia-audit/evals/routing-corpus.json +42 -0
- package/skills/adia-audit/references/correction-loop.md +119 -0
- package/skills/adia-audit/references/defensible-feedback.md +57 -0
- package/skills/adia-audit/references/gap-classes.md +109 -0
- package/skills/adia-audit/references/rubric.md +18 -0
- package/skills/adia-audit/references/triage-model.md +75 -0
- package/skills/adia-compose/SKILL.md +3 -0
- package/skills/adia-compose/references/composition-traps.md +5 -0
- package/skills/adia-compose/references/meta-surfaces.md +36 -0
- package/skills/adia-compose/references/spec-to-ui-reasoning.md +57 -1
- package/skills/adia-data/SKILL.md +11 -0
- package/skills/adia-genui/SKILL.md +13 -1
- package/skills/adia-host/SKILL.md +33 -0
- package/skills/adia-orient/SKILL.md +3 -2
- package/skills/adia-patterns/SKILL.md +71 -0
- package/skills/adia-patterns/evals/routing-corpus.json +166 -0
- package/skills/adia-patterns/references/annotations.yaml +991 -0
- package/skills/adia-patterns/references/pattern-index.md +507 -0
- package/skills/adia-verify/SKILL.md +1 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"name": "adia-patterns routing accuracy corpus",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"purpose": "Routing-eval corpus for adia-patterns (adia-ui-factory plugin). Each phrase declares whether adia-patterns SHOULD be the routing target. Scored by the estate's TF-IDF routing-eval runner against the skill's description (heuristic token overlap).",
|
|
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
|
+
"license": "internal",
|
|
8
|
+
"scope": "adia-patterns routing — does this phrase activate adia-patterns?",
|
|
9
|
+
|
|
10
|
+
"minimums_per_spec": {
|
|
11
|
+
"trigger_phrases": 14,
|
|
12
|
+
"adversarial_phrases": 6,
|
|
13
|
+
"task_shapes_covered": "find-pattern, find-template, pre-compose-check, flow-screen-lookup, inventory-question, reuse-existing",
|
|
14
|
+
"adversarial_fraction": "30%"
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
"phrases": [
|
|
18
|
+
{
|
|
19
|
+
"id": "patterns-find-01",
|
|
20
|
+
"phrase": "is there an existing pattern for a kanban board?",
|
|
21
|
+
"should_route_to_patterns": true,
|
|
22
|
+
"expected_shape": "find-pattern",
|
|
23
|
+
"rationale": "The exact 'is there an existing pattern for X' trigger phrase named in the description, asked against a named pattern (kanban-board is in the 45-pattern index)."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "patterns-find-02",
|
|
27
|
+
"phrase": "do we already have a pre-assembled surface for an audit log?",
|
|
28
|
+
"should_route_to_patterns": true,
|
|
29
|
+
"expected_shape": "find-pattern",
|
|
30
|
+
"rationale": "'pre-assembled surface' is the description's own framing for a pattern; audit-log is a named entry in the index."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "patterns-find-03",
|
|
34
|
+
"phrase": "what patterns exist for permissions and role management?",
|
|
35
|
+
"should_route_to_patterns": true,
|
|
36
|
+
"expected_shape": "inventory-question",
|
|
37
|
+
"rationale": "A category-scoped inventory ask ('what patterns exist for X') against the permissions-access category, not a request to build anything yet."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "patterns-find-04",
|
|
41
|
+
"phrase": "find me a template for a billing settings page",
|
|
42
|
+
"should_route_to_patterns": true,
|
|
43
|
+
"expected_shape": "find-template",
|
|
44
|
+
"rationale": "Names 'template' directly against the settings-page category the index covers (Billing sub-page)."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "patterns-find-05",
|
|
48
|
+
"phrase": "is there a ready-made sign-in with MFA screen I can start from?",
|
|
49
|
+
"should_route_to_patterns": true,
|
|
50
|
+
"expected_shape": "flow-screen-lookup",
|
|
51
|
+
"rationale": "A specific auth-flow screen lookup ('ready-made... start from') matching the auth-flow template category (MFA screen)."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "patterns-find-06",
|
|
55
|
+
"phrase": "start from an existing pattern instead of building this from scratch",
|
|
56
|
+
"should_route_to_patterns": true,
|
|
57
|
+
"expected_shape": "reuse-existing",
|
|
58
|
+
"rationale": "The description's core reuse-before-compose framing, stated generically with no pattern named yet — still adia-patterns' job to find the candidate."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "patterns-find-07",
|
|
62
|
+
"phrase": "which template screens cover onboarding checklists?",
|
|
63
|
+
"should_route_to_patterns": true,
|
|
64
|
+
"expected_shape": "inventory-question",
|
|
65
|
+
"rationale": "Category-scoped inventory ask against the onboarding-flow template category."
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "patterns-find-08",
|
|
69
|
+
"phrase": "before I compose this dashboard, check if a pattern already covers it",
|
|
70
|
+
"should_route_to_patterns": true,
|
|
71
|
+
"expected_shape": "pre-compose-check",
|
|
72
|
+
"rationale": "The literal 'use BEFORE composing any screen from primitives' trigger condition named in the description, against the dashboard template category."
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "patterns-find-09",
|
|
76
|
+
"phrase": "reuse one of our pre-assembled registration flow screens",
|
|
77
|
+
"should_route_to_patterns": true,
|
|
78
|
+
"expected_shape": "reuse-existing",
|
|
79
|
+
"rationale": "Explicit reuse ask naming 'pre-assembled' and the registration-flow template category."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "patterns-find-10",
|
|
83
|
+
"phrase": "does the catalog have an assembled chart-in-card surface?",
|
|
84
|
+
"should_route_to_patterns": true,
|
|
85
|
+
"expected_shape": "find-pattern",
|
|
86
|
+
"rationale": "Names a specific pattern (chart-in-card) in the data-viz category with the 'assembled surface' framing."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"id": "patterns-find-11",
|
|
90
|
+
"phrase": "list the existing agent tool-call and agent memory patterns",
|
|
91
|
+
"should_route_to_patterns": true,
|
|
92
|
+
"expected_shape": "inventory-question",
|
|
93
|
+
"rationale": "A listing ask against two named agent-ops category entries (agent-tool-call, agent-memory)."
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "patterns-find-12",
|
|
97
|
+
"phrase": "what's in the pattern and template index?",
|
|
98
|
+
"should_route_to_patterns": true,
|
|
99
|
+
"expected_shape": "inventory-question",
|
|
100
|
+
"rationale": "Names the index itself directly — the skill's own artifact."
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "patterns-find-13",
|
|
104
|
+
"phrase": "match this mockup against our existing patterns before building",
|
|
105
|
+
"should_route_to_patterns": true,
|
|
106
|
+
"expected_shape": "pre-compose-check",
|
|
107
|
+
"rationale": "A pre-compose reuse check triggered by a mockup input, before any primitive is chosen."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "patterns-find-14",
|
|
111
|
+
"phrase": "is there a pre-built forgot-password / reset flow to copy?",
|
|
112
|
+
"should_route_to_patterns": true,
|
|
113
|
+
"expected_shape": "flow-screen-lookup",
|
|
114
|
+
"rationale": "Names a specific auth-flow template screen (Forgot Password / Reset Password) with a copy-source ask."
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "patterns-adv-01",
|
|
118
|
+
"phrase": "compose a brand-new screen from catalog primitives",
|
|
119
|
+
"should_route_to_patterns": false,
|
|
120
|
+
"expected_alternative": "adia-compose",
|
|
121
|
+
"rationale": "Adversarial — explicitly a fresh composition with no reuse framing; the description's own NOT-fence points this at adia-compose."
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"id": "patterns-adv-02",
|
|
125
|
+
"phrase": "give me a sidebar plus topbar admin shell layout",
|
|
126
|
+
"should_route_to_patterns": false,
|
|
127
|
+
"expected_alternative": "adia-shells",
|
|
128
|
+
"rationale": "Adversarial — page-chrome selection is adia-shells' fence, not a pre-assembled content pattern, even though 'admin' vocabulary overlaps the index's shell-chrome category."
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"id": "patterns-adv-03",
|
|
132
|
+
"phrase": "author a new pattern page for the framework docs",
|
|
133
|
+
"should_route_to_patterns": false,
|
|
134
|
+
"expected_alternative": "adia-author (adia-ui-forge)",
|
|
135
|
+
"rationale": "Adversarial — authoring a NEW pattern in the monorepo is forge-side framework work, not factory-side index lookup, despite the shared word 'pattern'."
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "patterns-adv-04",
|
|
139
|
+
"phrase": "tune the gen-ui chunk corpus retrieval for search_patterns",
|
|
140
|
+
"should_route_to_patterns": false,
|
|
141
|
+
"expected_alternative": "adia-a2ui (adia-ui-forge)",
|
|
142
|
+
"rationale": "Adversarial — a different corpus (the a2ui chunk corpus + its search_patterns MCP tool) that this skill's own SKILL.md explicitly distinguishes itself from."
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"id": "patterns-adv-05",
|
|
146
|
+
"phrase": "wire the SSR host for this composed screen",
|
|
147
|
+
"should_route_to_patterns": false,
|
|
148
|
+
"expected_alternative": "adia-host",
|
|
149
|
+
"rationale": "Adversarial — host/SSR wiring is explicitly carved out to adia-host; no index lookup is implied."
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"id": "patterns-adv-06",
|
|
153
|
+
"phrase": "generate UI at runtime from a user prompt in the app",
|
|
154
|
+
"should_route_to_patterns": false,
|
|
155
|
+
"expected_alternative": "adia-genui",
|
|
156
|
+
"rationale": "Adversarial — runtime generative UI is adia-genui's territory; the index is a build-time reuse aid, not a runtime generation surface."
|
|
157
|
+
}
|
|
158
|
+
],
|
|
159
|
+
|
|
160
|
+
"evaluator_notes": {
|
|
161
|
+
"current_state": "20 cases (14 trigger + 6 adversarial). 6 task shapes across the 14 trigger cases: find-pattern (3), find-template (1), inventory-question (4), flow-screen-lookup (2), pre-compose-check (2), reuse-existing (2).",
|
|
162
|
+
"promotion_criteria": "Promote to a CI gate (warn → hard-fail) when F1 >= 0.85 on this corpus across 3+ consecutive runs without description edits.",
|
|
163
|
+
"review_cadence": "Re-run on every adia-patterns description edit. Add 1-2 new cases per checkpoint reflecting newly-observed routing failure modes.",
|
|
164
|
+
"known_limitations": "The a2ui-corpus fence (patterns-adv-04) and the adia-author fence (patterns-adv-03) both share the literal word 'pattern' with this skill's name — the heuristic TF-IDF scorer may not separate them as cleanly as an LLM router would."
|
|
165
|
+
}
|
|
166
|
+
}
|