@adia-ai/adia-ui-forge 0.8.45 → 0.8.46
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 +8 -0
- package/agents/demo-audit-agent.corpus.json +4 -4
- package/agents/demo-audit-agent.md +3 -1
- package/agents/gen-ui-review-agent.corpus.json +4 -4
- package/agents/gen-ui-review-agent.md +5 -3
- package/package.json +1 -1
- package/skills/primitive-authoring/references/authoring-cycle.md +17 -0
- package/skills/primitive-authoring/references/svg-authoring.md +31 -31
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adia-ui-kit-forge",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.46",
|
|
4
4
|
"description": "Maintain the adia-ui (@adia-ai) framework itself \u2014 author primitives and shells, run the A2UI generation pipeline and its corpus, review gen-UI quality, sweep QA, cut releases, deploy. The maintainer counterpart to adia-ui-kit-factory (the consumer/app-author plugin).",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kim",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog — adia-ui-kit-forge
|
|
2
2
|
|
|
3
|
+
## [0.8.46] — 2026-08-22
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Maintenance
|
|
7
|
+
- **`.claude-plugin/plugin.json` version bump** — moves in lockstep with package.json (the `/plugin update` cache key).
|
|
8
|
+
- **`agents/` touched in this release window** (4 file(s), e.g. `agents/demo-audit-agent.corpus.json`) — carried by the entries above.
|
|
9
|
+
- **`skills/` touched in this release window** (2 file(s), e.g. `references/authoring-cycle.md`) — carried by the entries above.
|
|
10
|
+
|
|
3
11
|
## [0.8.45] — 2026-08-20
|
|
4
12
|
|
|
5
13
|
### Changed
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
"update the dogfood findings tracker after fixing the leaks"
|
|
26
26
|
],
|
|
27
27
|
"_measured": {
|
|
28
|
-
"as_of": "2026-08-
|
|
28
|
+
"as_of": "2026-08-21",
|
|
29
29
|
"scorer": "routing_eval.py (nonoun-plugins/forge)",
|
|
30
|
-
"note": "measured-clear vs 0.70 floor (routing_eval.py, lexical-overlap legibility aid); split from framework-reviewer per gh#1733/PR #1747",
|
|
31
|
-
"precision": 0
|
|
30
|
+
"note": "measured-clear vs 0.70 floor (routing_eval.py, lexical-overlap legibility aid); NOT-fence tightened gh#1819 — the two 2026-08-20 precision holes (\"fix the native-primitive leaks the sweep found\", \"which npm script runs the visual probe\") no longer stolen; split from framework-reviewer per gh#1733/PR #1747",
|
|
31
|
+
"precision": 1.0,
|
|
32
32
|
"recall": 0.9,
|
|
33
|
-
"f1": 0.
|
|
33
|
+
"f1": 0.947
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -9,7 +9,9 @@ description: |
|
|
|
9
9
|
Reports findings only — applying a repair is a separate, later dispatch
|
|
10
10
|
(generator ≠ critic).
|
|
11
11
|
NOT for A2UI-engine gallery output scoring (gen-ui-review-agent); NOT for
|
|
12
|
-
applying a fix
|
|
12
|
+
applying a fix or patching what a sweep already found
|
|
13
|
+
(primitive-authoring-agent); NOT for looking up which npm script or
|
|
14
|
+
command a probe needs (see the skill docs) — this seat only reports.
|
|
13
15
|
tools: Read, Grep, Glob, Bash
|
|
14
16
|
skills:
|
|
15
17
|
- demo-audit
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"visual probe the components in light and dark"
|
|
21
21
|
],
|
|
22
22
|
"_measured": {
|
|
23
|
-
"as_of": "2026-08-
|
|
23
|
+
"as_of": "2026-08-21",
|
|
24
24
|
"scorer": "routing_eval.py (nonoun-plugins/forge)",
|
|
25
|
-
"note": "measured-clear vs 0.70 floor (routing_eval.py, lexical-overlap legibility aid); split from framework-reviewer per gh#1733/PR #1747",
|
|
26
|
-
"precision": 0
|
|
25
|
+
"note": "measured-clear vs 0.70 floor (routing_eval.py, lexical-overlap legibility aid); NOT-fence tightened gh#1819 — the two 2026-08-20 precision holes (\"explain the gen-review exit gate thresholds\", \"apply the corpus fixes for the failing prompts\") no longer stolen; split from framework-reviewer per gh#1733/PR #1747",
|
|
26
|
+
"precision": 1.0,
|
|
27
27
|
"recall": 1.0,
|
|
28
|
-
"f1": 0
|
|
28
|
+
"f1": 1.0
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -7,10 +7,12 @@ description: |
|
|
|
7
7
|
score the gallery before a merge or cut, or whenever someone asks "score
|
|
8
8
|
the gen-ui gallery outputs", "review gen-ui outputs", "is the gallery
|
|
9
9
|
clean".
|
|
10
|
-
Reports findings only —
|
|
11
|
-
|
|
10
|
+
Reports findings only — a repair lands as a separate, later dispatch
|
|
11
|
+
(generator ≠ critic).
|
|
12
12
|
NOT for demo/app-shell dogfood sweeps (demo-audit-agent); NOT for applying
|
|
13
|
-
a corpus fix (a2ui-maintenance-agent)
|
|
13
|
+
a corpus or pipeline fix (a2ui-maintenance-agent); NOT for explaining what
|
|
14
|
+
the exit gate thresholds mean — this seat scores against them, it does
|
|
15
|
+
not explain them.
|
|
14
16
|
tools: Read, Grep, Glob, Bash
|
|
15
17
|
skills:
|
|
16
18
|
- gen-ui-review
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adia-ai/adia-ui-forge",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.46",
|
|
4
4
|
"description": "Maintain the adia-ui (@adia-ai) framework itself \u2014 author primitives and shells, run the A2UI generation pipeline and its corpus, review gen-UI quality, sweep QA, cut releases, deploy. The maintainer counterpart to adia-factory (the consumer/app-author plugin).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"adia-ui",
|
|
@@ -210,6 +210,23 @@ not just one — `theme-provider.min.js` (a JS bundle) inlines the co-emitted
|
|
|
210
210
|
bundle if only `build:bundle-css` runs (bit the v0.8.13 theme-panel work
|
|
211
211
|
twice).
|
|
212
212
|
|
|
213
|
+
**Rebuild JS bundles from an `npm ci` scratch checkout, never a pnpm-bootstrapped worktree.**
|
|
214
|
+
`node scripts/dev/bootstrap-worktree.mjs`'s pnpm install produces `dist/*.min.js` output
|
|
215
|
+
~30% larger than CI's npm-ci install (a lockfile/hoisting difference, not a code difference)
|
|
216
|
+
— running `build:bundle-js` in such a worktree commits drift instead of fixing it, and a
|
|
217
|
+
local `check:js-bundles-fresh` run there will falsely pass against its own inflated bundle.
|
|
218
|
+
When a PR built in a pnpm worktree needs a JS-bundle rebuild: commit the CSS-side changes
|
|
219
|
+
first if any (`build:bundle-css` has no install-shape risk — LightningCSS's bundling is
|
|
220
|
+
deterministic from source — so the branch's committed `dist/web-components.sheet.js` is
|
|
221
|
+
trustworthy going into the next step, satisfying the CSS-before-JS ordering above), then
|
|
222
|
+
`git worktree add <scratch-path> <branch>`, `npm ci` there (real npm-shaped install), run
|
|
223
|
+
`build:bundle-js`, copy only the changed `dist/*.min.js` file(s) back into the working
|
|
224
|
+
worktree, commit there with an explicit pathspec, then remove the scratch worktree. This
|
|
225
|
+
is the correction to gh#1825's own PR body, which deferred the rebuild to "CI's
|
|
226
|
+
derived-artifact pipeline" — wrong per ADR-0069 (`dist/` is Class C, committed and
|
|
227
|
+
PR-blocking, never derive-resync'd); the scratch-checkout procedure above is what actually
|
|
228
|
+
landed the fix, 2026-08-21.
|
|
229
|
+
|
|
213
230
|
**Never `@import` a remote URL from any file `build:bundle-css` bundles.**
|
|
214
231
|
LightningCSS's `bundleAsync` (the engine behind it) resolves every `@import`
|
|
215
232
|
as a local filesystem path, remote `http(s)` URLs included — a CSS-level
|
|
@@ -81,45 +81,45 @@ clips at `overflow: hidden` with a rounded `border-radius` (`card.css`, top
|
|
|
81
81
|
of file), and `[bleed]` zeroes the section's own margin/padding
|
|
82
82
|
(`card.css:342` onward) — so a chart's axis-label overhang, or gridlines
|
|
83
83
|
extending to the plot edge, lands flush against that rounded corner and
|
|
84
|
-
clips silently. This was gh#1095's
|
|
85
|
-
chart's Y-axis labels clipped under a bled card's corner.
|
|
86
|
-
|
|
87
|
-
**
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
renderer that never emits axis
|
|
106
|
-
(`chart.class.js`'s sparkline
|
|
107
|
-
|
|
108
|
-
type
|
|
109
|
-
bleed; short of that, the safety inset applies and the chart renders inset
|
|
110
|
-
like a normal card section — expected, not a bug.
|
|
84
|
+
clips silently. This was gh#1095's original incident (PR #1105): a
|
|
85
|
+
bar/line chart's Y-axis labels clipped under a bled card's corner.
|
|
86
|
+
|
|
87
|
+
**gh#1095's own mechanical fix — a `:has()`-based auto-restore of the
|
|
88
|
+
card's inset — was itself unratified and removed (gh#1801, operator ruling
|
|
89
|
+
2026-08-20)**: it silently defeated an author's own `[bleed]` the moment a
|
|
90
|
+
chart drew any guide/value text or paired a `<chart-legend-ui>`, which
|
|
91
|
+
collided with the card-chart design language's overlay-chip labels
|
|
92
|
+
(rendered INSET within the plot box on purpose, but still enough to trip
|
|
93
|
+
the old guard's `:not([no-grid])`/`:not([no-values])` test). `[bleed]` is
|
|
94
|
+
now unconditionally author-controlled — card.css never re-inserts an inset
|
|
95
|
+
the author explicitly zeroed.
|
|
96
|
+
|
|
97
|
+
**The clipping hazard itself is real and unchanged** — only the mitigation
|
|
98
|
+
moved from mechanical CSS to documented author responsibility. card.yaml's
|
|
99
|
+
`bleed` prop docs and `chart-in-card.examples.html` both carry the
|
|
100
|
+
resulting rule: a full-bleed chart-ui with visible guide/value text, or one
|
|
101
|
+
paired with a `<chart-legend-ui>`, must keep that text clear of the card's
|
|
102
|
+
rounded-corner clip — e.g. by rendering it as an overlay chip INSET within
|
|
103
|
+
the plot area (never hanging outside it, and never relying on card margin
|
|
104
|
+
for clearance) — or by putting the legend in its own non-bled section.
|
|
105
|
+
`#renderSparkline()` is still the only renderer that never emits axis
|
|
106
|
+
ticks, gridlines, value text, or a legend (`chart.class.js`'s sparkline
|
|
107
|
+
branch), so it's still the one type where a bare `[bleed]` needs no such
|
|
108
|
+
care; every other type is the author's call now, not a stylesheet fail-safe.
|
|
111
109
|
|
|
112
110
|
**The generalized rule for any new SVG primitive placed inside a bleed
|
|
113
111
|
section**: an SVG whose content can extend past its own nominal box
|
|
114
112
|
(`overflow: visible`, or geometry computed with negative padding) needs
|
|
115
|
-
either a "bare marks" mode (no overhanging content) that's safe to bleed,
|
|
116
|
-
a
|
|
117
|
-
|
|
113
|
+
either a "bare marks" mode (no overhanging content) that's safe to bleed,
|
|
114
|
+
or a documented author-responsibility note at the point of use (the
|
|
115
|
+
`bleed`-prop docs, the pattern's own examples) naming the clipping hazard
|
|
116
|
+
and its mitigation — never a mechanical CSS guard that silently overrides
|
|
117
|
+
an author's own explicit attribute (gh#1801's own lesson). Don't assume
|
|
118
118
|
`overflow: hidden` on the ancestor container will clip cleanly — SVG content
|
|
119
119
|
drawn PAST an ancestor's padding box (not its own) clips at whatever
|
|
120
120
|
ancestor in the chain actually sets `overflow: hidden`, which for
|
|
121
121
|
`card-ui` is the rounded-corner boundary itself, producing the specific
|
|
122
|
-
silently-clipped-under-a-curve look #1095 reported.
|
|
122
|
+
silently-clipped-under-a-curve look #1095 originally reported.
|
|
123
123
|
|
|
124
124
|
## 5. CSS custom properties don't resolve inside raw SVG attribute strings — only inside actual CSS declarations
|
|
125
125
|
|