@adia-ai/adia-ui-forge 0.1.3 → 0.8.0
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 +3 -6
- package/CHANGELOG.md +27 -34
- package/README.md +35 -40
- package/agents/a2ui-engineer.md +22 -53
- package/agents/component-author.md +29 -0
- package/agents/framework-verifier.md +26 -0
- package/agents/release-engineer.md +21 -81
- package/agents/routing-corpus.json +293 -64
- package/bin/demo-postwrite-pattern-gate +94 -0
- package/bin/forge-lint +17 -2
- package/bin/sidecar-prewrite-guard +104 -0
- package/commands/deploy.md +9 -0
- package/commands/dogfood.md +10 -0
- package/commands/gen-review.md +9 -0
- package/commands/release.md +10 -0
- package/hooks/hooks.json +15 -0
- package/package.json +3 -6
- package/references/contracts/a2ui-mcp-surface.md +35 -0
- package/references/contracts/migration-guide-format.md +34 -0
- package/references/shared/content-trust.md +19 -74
- package/skills/adia-a2ui/SKILL.md +99 -0
- package/skills/{adia-ui-a2ui → adia-a2ui}/evals/routing-corpus.json +10 -10
- package/skills/adia-a2ui/references/anti-patterns.md +27 -0
- package/skills/adia-a2ui/references/chunk-authoring.md +71 -0
- package/skills/adia-a2ui/references/corpus-discipline.md +68 -0
- package/skills/adia-a2ui/references/eval-diagnostics.md +86 -0
- package/skills/adia-a2ui/references/format-extension-decisions.md +66 -0
- package/skills/adia-a2ui/references/leverage-rules.md +52 -0
- package/skills/adia-a2ui/references/mcp-pipeline-ops.md +83 -0
- package/skills/adia-a2ui/references/mcp-tool-reference.md +59 -0
- package/skills/adia-a2ui/references/pipeline-overview.md +115 -0
- package/skills/adia-a2ui/references/semantic-fail-lifting.md +74 -0
- package/skills/adia-a2ui/references/strategy-engines.md +109 -0
- package/skills/adia-a2ui/references/zettel-calibration.md +104 -0
- package/skills/adia-author/SKILL.md +112 -0
- package/skills/adia-author/evals/routing-corpus.json +222 -0
- package/skills/{adia-ui-authoring → adia-author}/references/anti-patterns.md +33 -4
- package/skills/{adia-ui-authoring → adia-author}/references/authoring-cycle.md +9 -11
- package/skills/adia-author/references/canonical-pattern-index.md +243 -0
- package/skills/{adia-ui-authoring → adia-author}/references/code-style.md +19 -21
- package/skills/adia-author/references/common-gotchas.md +129 -0
- package/skills/adia-author/references/composite-demo-protocol.md +271 -0
- package/skills/{adia-ui-authoring → adia-author}/references/css-patterns.md +19 -6
- package/skills/{adia-ui-authoring → adia-author}/references/lifecycle-patterns.md +1 -0
- package/skills/{adia-ui-authoring → adia-author}/references/llm-bridge.md +3 -5
- package/skills/{adia-ui-authoring → adia-author}/references/module-promotion.md +20 -38
- package/skills/{adia-ui-authoring → adia-author}/references/primitive-audit.md +2 -4
- package/skills/{adia-ui-authoring → adia-author}/references/shell-patterns.md +12 -18
- package/skills/{adia-ui-authoring → adia-author}/references/token-contract.md +5 -7
- package/skills/{adia-ui-authoring → adia-author}/references/worked-example.md +3 -3
- package/skills/{adia-ui-authoring → adia-author}/references/yaml-contract.md +3 -3
- package/skills/{adia-ui-authoring → adia-author}/scripts/build-canonical-pattern-index.mjs +3 -3
- package/skills/adia-deploy/SKILL.md +128 -0
- package/skills/{adia-ui-ops → adia-deploy}/references/deploy-playbooks.md +47 -30
- package/skills/adia-dogfood/SKILL.md +124 -0
- package/skills/adia-dogfood/references/admin-shell-anatomy.md +77 -0
- package/skills/adia-dogfood/references/app-shell-pitfalls.md +66 -0
- package/skills/adia-dogfood/references/card-anatomy-sweep.md +66 -0
- package/skills/adia-dogfood/references/html-attr-sweep.md +63 -0
- package/skills/adia-dogfood/references/native-leak-annotations.md +73 -0
- package/skills/adia-dogfood/references/visual-probe-triage.md +80 -0
- package/skills/{adia-ui-dogfood → adia-dogfood}/scripts/analyze.mjs +30 -14
- package/skills/adia-gen-review/SKILL.md +127 -0
- package/skills/adia-gen-review/references/corpus-html-patterns.md +279 -0
- package/skills/adia-gen-review/references/loop-protocol.md +216 -0
- package/skills/adia-gen-review/references/rubric-cosmetic.md +100 -0
- package/skills/adia-gen-review/references/rubric-decompose.md +101 -0
- package/skills/adia-gen-review/references/rubric-score.md +214 -0
- package/skills/{adia-ui-gen-review → adia-gen-review}/references/scores.schema.json +2 -2
- package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-coverage-audit.mjs +4 -4
- package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-decompose.mjs +10 -6
- package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-status.mjs +5 -5
- package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/validate-cycle-scores.mjs +5 -5
- package/skills/adia-llm-internals/SKILL.md +77 -0
- package/skills/{adia-ui-llm → adia-llm-internals}/references/adapter-contract.md +4 -2
- package/skills/{adia-ui-llm → adia-llm-internals}/references/add-a-provider.md +4 -5
- package/skills/{adia-ui-llm → adia-llm-internals}/references/bridge-facade.md +10 -3
- package/skills/{adia-ui-llm → adia-llm-internals}/references/browser-proxy-boundary.md +1 -1
- package/skills/{adia-ui-llm → adia-llm-internals}/references/model-registry.md +5 -3
- package/skills/{adia-ui-llm → adia-llm-internals}/references/streaming-sse.md +2 -2
- package/skills/adia-release/SKILL.md +72 -0
- package/skills/adia-release/references/changelog-discipline.md +119 -0
- package/skills/adia-release/references/cut-procedure.md +247 -0
- package/skills/adia-release/references/gates-catalog.md +222 -0
- package/skills/adia-release/references/independent-package-release.md +52 -0
- package/skills/adia-release/references/migration-guide-authoring.md +86 -0
- package/skills/adia-release/references/notes-authoring.md +90 -0
- package/skills/adia-release/references/recovery-paths.md +106 -0
- package/skills/{adia-ui-release → adia-release}/scripts/bump.mjs +27 -2
- package/skills/{adia-ui-release → adia-release}/scripts/dispatch-publish.mjs +4 -1
- package/skills/{adia-ui-release → adia-release}/scripts/insert-stub.mjs +1 -1
- package/skills/{adia-ui-release → adia-release}/scripts/package-paths.mjs +6 -0
- package/skills/{adia-ui-release → adia-release}/scripts/promote-unreleased.mjs +1 -1
- package/skills/{adia-ui-release → adia-release}/scripts/release-pack.mjs +13 -21
- package/skills/{adia-ui-release → adia-release}/scripts/tag-lockstep.mjs +5 -1
- package/skills/adia-site-docs/SKILL.md +68 -0
- package/skills/adia-site-docs/evals/audit-report.md +30 -0
- package/skills/adia-site-docs/evals/routing-corpus.json +176 -0
- package/skills/adia-site-docs/intent.md +72 -0
- package/agents/README.md +0 -209
- package/agents/author.md +0 -56
- package/agents/repo-steward.md +0 -56
- package/agents/spec-architect.md +0 -53
- package/agents/tech-lead.md +0 -57
- package/agents/verifier.md +0 -55
- package/bin/lib/audit-axes.mjs +0 -555
- package/bin/lib/dry-run-irreversible.mjs +0 -236
- package/bin/lib/run-skill-evals.mjs +0 -487
- package/bin/lib/teach-router.mjs +0 -250
- package/commands/adia-forge-a2ui.md +0 -10
- package/commands/adia-forge-author.md +0 -10
- package/commands/adia-forge-dogfood.md +0 -8
- package/commands/adia-forge-llm.md +0 -8
- package/commands/adia-forge-orient.md +0 -10
- package/commands/adia-forge-release.md +0 -8
- package/commands/adia-forge-review.md +0 -10
- package/references/shared/pev-rationale.md +0 -64
- package/references/shared/skill-conventions.md +0 -133
- package/skills/adia-ui-a2ui/CHANGELOG.md +0 -32
- package/skills/adia-ui-a2ui/SKILL.md +0 -243
- package/skills/adia-ui-a2ui/evals/adversarial-corpus.json +0 -75
- package/skills/adia-ui-a2ui/evals/teach-routing-cases.json +0 -100
- package/skills/adia-ui-a2ui/references/anti-patterns.md +0 -24
- package/skills/adia-ui-a2ui/references/chunk-authoring.md +0 -88
- package/skills/adia-ui-a2ui/references/corpus-discipline.md +0 -56
- package/skills/adia-ui-a2ui/references/eval-diagnostics.md +0 -127
- package/skills/adia-ui-a2ui/references/fragment-graph.md +0 -91
- package/skills/adia-ui-a2ui/references/mcp-pipeline-ops.md +0 -106
- package/skills/adia-ui-a2ui/references/mcp-tool-reference.md +0 -398
- package/skills/adia-ui-a2ui/references/pipeline-overview.md +0 -175
- package/skills/adia-ui-a2ui/references/semantic-fail-lifting.md +0 -120
- package/skills/adia-ui-a2ui/references/strategy-engines.md +0 -111
- package/skills/adia-ui-a2ui/references/teach-protocol.md +0 -220
- package/skills/adia-ui-a2ui/references/zettel-calibration.md +0 -93
- package/skills/adia-ui-a2ui/scripts/audit-a2ui-roster.mjs +0 -96
- package/skills/adia-ui-a2ui/scripts/teach-route.mjs +0 -157
- package/skills/adia-ui-a2ui/skill.json +0 -38
- package/skills/adia-ui-authoring/CHANGELOG.md +0 -32
- package/skills/adia-ui-authoring/SKILL.md +0 -256
- package/skills/adia-ui-authoring/assets/case-studies/admin-shell-decomposition.md +0 -101
- package/skills/adia-ui-authoring/assets/case-studies/maxtokens-32768-discovery.md +0 -109
- package/skills/adia-ui-authoring/assets/case-studies/theme-panel-promotion.md +0 -113
- package/skills/adia-ui-authoring/evals/adversarial-design-plan-gates.json +0 -138
- package/skills/adia-ui-authoring/evals/routing-corpus.json +0 -245
- package/skills/adia-ui-authoring/references/canonical-pattern-index.md +0 -179
- package/skills/adia-ui-authoring/references/common-gotchas.md +0 -93
- package/skills/adia-ui-authoring/references/composite-demo-protocol.md +0 -1084
- package/skills/adia-ui-authoring/references/teach-protocol.md +0 -428
- package/skills/adia-ui-authoring/scripts/audit-authoring-roster.mjs +0 -148
- package/skills/adia-ui-authoring/skill.json +0 -45
- package/skills/adia-ui-dogfood/CHANGELOG.md +0 -17
- package/skills/adia-ui-dogfood/README.md +0 -62
- package/skills/adia-ui-dogfood/SKILL.md +0 -866
- package/skills/adia-ui-dogfood/skill.json +0 -40
- package/skills/adia-ui-forge/SKILL.md +0 -88
- package/skills/adia-ui-forge/evals/routing-corpus.json +0 -30
- package/skills/adia-ui-gen-review/CHANGELOG.md +0 -108
- package/skills/adia-ui-gen-review/SKILL.md +0 -266
- package/skills/adia-ui-gen-review/references/loop-protocol.md +0 -712
- package/skills/adia-ui-gen-review/references/rubric-cosmetic.md +0 -144
- package/skills/adia-ui-gen-review/references/rubric-decompose.md +0 -117
- package/skills/adia-ui-gen-review/references/rubric-score.md +0 -249
- package/skills/adia-ui-gen-review/references/teach-protocol.md +0 -214
- package/skills/adia-ui-gen-review/skill.json +0 -23
- package/skills/adia-ui-llm/CHANGELOG.md +0 -25
- package/skills/adia-ui-llm/SKILL.md +0 -165
- package/skills/adia-ui-llm/evals/adversarial-corpus.json +0 -75
- package/skills/adia-ui-llm/evals/routing-corpus.json +0 -30
- package/skills/adia-ui-llm/evals/teach-routing-cases.json +0 -73
- package/skills/adia-ui-llm/references/teach-protocol.md +0 -78
- package/skills/adia-ui-llm/scripts/audit-llm-roster.mjs +0 -93
- package/skills/adia-ui-llm/scripts/teach-route.mjs +0 -119
- package/skills/adia-ui-llm/skill.json +0 -33
- package/skills/adia-ui-ops/CHANGELOG.md +0 -291
- package/skills/adia-ui-ops/SKILL.md +0 -401
- package/skills/adia-ui-ops/references/INDEX.md +0 -158
- package/skills/adia-ui-ops/references/audit-cadence.md +0 -263
- package/skills/adia-ui-ops/references/audit-patterns/archive-link-sweep.md +0 -96
- package/skills/adia-ui-ops/references/audit-patterns/audit-history-ledger.md +0 -162
- package/skills/adia-ui-ops/references/audit-patterns/browser-bundle-node-imports.md +0 -154
- package/skills/adia-ui-ops/references/audit-patterns/changelog-unreleased-bloat.md +0 -75
- package/skills/adia-ui-ops/references/audit-patterns/coverage-gaps.md +0 -187
- package/skills/adia-ui-ops/references/audit-patterns/entry-file-coverage.md +0 -122
- package/skills/adia-ui-ops/references/audit-patterns/format-hygiene.md +0 -217
- package/skills/adia-ui-ops/references/audit-patterns/lockstep-versioning.md +0 -113
- package/skills/adia-ui-ops/references/audit-patterns/memory-fragmentation.md +0 -180
- package/skills/adia-ui-ops/references/audit-patterns/orphan-detection.md +0 -202
- package/skills/adia-ui-ops/references/audit-patterns/pointer-validation.md +0 -180
- package/skills/adia-ui-ops/references/audit-patterns/redundancy-detection.md +0 -210
- package/skills/adia-ui-ops/references/audit-patterns/spec-dating-sweep.md +0 -91
- package/skills/adia-ui-ops/references/audit-patterns/stale-content.md +0 -182
- package/skills/adia-ui-ops/references/audit-patterns/staleness-tooling.md +0 -156
- package/skills/adia-ui-ops/references/audit-patterns/token-waste-detection.md +0 -196
- package/skills/adia-ui-ops/references/doc-types/adr-pattern.md +0 -210
- package/skills/adia-ui-ops/references/doc-types/architecture-md.md +0 -190
- package/skills/adia-ui-ops/references/doc-types/changelog.md +0 -183
- package/skills/adia-ui-ops/references/doc-types/decisions-log.md +0 -146
- package/skills/adia-ui-ops/references/doc-types/plan-roadmap.md +0 -182
- package/skills/adia-ui-ops/references/doc-types/postmortem-pattern.md +0 -206
- package/skills/adia-ui-ops/references/genres/prose-and-writing.md +0 -149
- package/skills/adia-ui-ops/references/guidance/context-budget.md +0 -137
- package/skills/adia-ui-ops/references/guidance/llm-doc-writing.md +0 -116
- package/skills/adia-ui-ops/references/guidance/reliability-dial.md +0 -186
- package/skills/adia-ui-ops/references/recipes/adr-introduction.md +0 -211
- package/skills/adia-ui-ops/references/recipes/audit-existing-repo.md +0 -234
- package/skills/adia-ui-ops/references/recipes/cold-start-harvest.md +0 -263
- package/skills/adia-ui-ops/references/recipes/concurrent-learnings-merge.md +0 -158
- package/skills/adia-ui-ops/references/recipes/continuous-learning-loop.md +0 -169
- package/skills/adia-ui-ops/references/recipes/external-reference-verification.md +0 -158
- package/skills/adia-ui-ops/references/recipes/findings-index-readout.md +0 -126
- package/skills/adia-ui-ops/references/recipes/greenfield-setup.md +0 -252
- package/skills/adia-ui-ops/references/recipes/harvest-repo-brain.md +0 -169
- package/skills/adia-ui-ops/references/recipes/import-repo-brain-harvest.md +0 -153
- package/skills/adia-ui-ops/references/recipes/memory-organization.md +0 -182
- package/skills/adia-ui-ops/references/recipes/recommend-then-validate.md +0 -199
- package/skills/adia-ui-ops/references/recipes/self-healing-hooks.md +0 -366
- package/skills/adia-ui-ops/references/recipes/skill-stewardship-loop.md +0 -113
- package/skills/adia-ui-ops/references/standards/agents-md-spec.md +0 -138
- package/skills/adia-ui-ops/references/standards/claude-md-convention.md +0 -123
- package/skills/adia-ui-ops/references/standards/cross-tool-matrix.md +0 -85
- package/skills/adia-ui-ops/references/standards/readme-conventions.md +0 -232
- package/skills/adia-ui-ops/references/teach-protocol.md +0 -215
- package/skills/adia-ui-ops/scripts/audit-ops-roster.mjs +0 -104
- package/skills/adia-ui-ops/skill.json +0 -65
- package/skills/adia-ui-release/CHANGELOG.md +0 -66
- package/skills/adia-ui-release/SKILL.md +0 -323
- package/skills/adia-ui-release/assets/case-studies/2026-05-20-batch-push-v0.6.14-v0.6.15.md +0 -144
- package/skills/adia-ui-release/assets/case-studies/2026-05-20-corpus-drift-remediation-v0.6.15.md +0 -155
- package/skills/adia-ui-release/assets/case-studies/2026-05-20-version-skip-correction-v0.6.12.md +0 -114
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-author-from-scratch-v0.6.18.md +0 -139
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-feedback37-retraction-v0.6.21.md +0 -124
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-fn1-enrichment-pass-v0.6.19.md +0 -125
- package/skills/adia-ui-release/assets/case-studies/2026-05-21-stale-test-detection-v0.6.20.md +0 -142
- package/skills/adia-ui-release/assets/case-studies/2026-05-23-freshness-gate-recovery-v0.6.32.md +0 -97
- package/skills/adia-ui-release/assets/case-studies/2026-05-26-catalog-drift-recurring-v0.6.40.md +0 -147
- package/skills/adia-ui-release/assets/templates/stub-changelog.template.md +0 -22
- package/skills/adia-ui-release/evals/evals.json +0 -164
- package/skills/adia-ui-release/references/changelog-discipline.md +0 -250
- package/skills/adia-ui-release/references/cycle-happy-path.md +0 -520
- package/skills/adia-ui-release/references/exe-deploy.md +0 -149
- package/skills/adia-ui-release/references/gates-catalog.md +0 -778
- package/skills/adia-ui-release/references/independent-package-release.md +0 -129
- package/skills/adia-ui-release/references/ledger-discipline.md +0 -232
- package/skills/adia-ui-release/references/migration-guide-authoring.md +0 -174
- package/skills/adia-ui-release/references/multi-agent-baseline.md +0 -207
- package/skills/adia-ui-release/references/notes-authoring.md +0 -212
- package/skills/adia-ui-release/references/recovery-paths.md +0 -262
- package/skills/adia-ui-release/references/rollup-notes.md +0 -208
- package/skills/adia-ui-release/references/teach-protocol.md +0 -468
- package/skills/adia-ui-release/scripts/audit-gate-roster.mjs +0 -196
- package/skills/adia-ui-release/scripts/make-ledger.mjs +0 -200
- package/skills/adia-ui-release/skill.json +0 -77
- package/skills/dogfood-sweep/CHANGELOG.md +0 -37
- package/skills/dogfood-sweep/README.md +0 -105
- package/skills/dogfood-sweep/SKILL.md +0 -1000
- package/skills/dogfood-sweep/analyze.mjs +0 -600
- package/skills/dogfood-sweep/skill.json +0 -31
- /package/skills/{adia-ui-authoring → adia-author}/references/api-contract.md +0 -0
- /package/skills/{adia-ui-release → adia-release}/scripts/assert-monorepo-root.mjs +0 -0
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// --previous-version 0.6.21 \
|
|
12
12
|
// --packages llm,a2ui/compose,a2ui/mcp,a2ui/retrieval,a2ui/runtime,a2ui/validator
|
|
13
13
|
//
|
|
14
|
-
//
|
|
14
|
+
// Part of the adia-release skill. Replaces the inline stub-
|
|
15
15
|
// insertion pattern used across v0.6.18 / v0.6.19 / v0.6.20 / v0.6.21
|
|
16
16
|
// cycles.
|
|
17
17
|
|
|
@@ -35,6 +35,12 @@ export function resolvePackageDir(repo, pkg) {
|
|
|
35
35
|
const nested = path.join('a2ui', m[1]);
|
|
36
36
|
if (fs.existsSync(path.join(repo, 'packages', nested))) return nested;
|
|
37
37
|
}
|
|
38
|
+
// Plugins live under packages/plugins/<name> but carry the flat name form
|
|
39
|
+
// (adia-ui-forge) in the release tooling — same name-vs-path split as a2ui.
|
|
40
|
+
if (/^adia-ui-/.test(pkg)) {
|
|
41
|
+
const nested = path.join('plugins', pkg);
|
|
42
|
+
if (fs.existsSync(path.join(repo, 'packages', nested))) return nested;
|
|
43
|
+
}
|
|
38
44
|
return pkg; // fall through with the original arg so the not-found error names what was asked for
|
|
39
45
|
}
|
|
40
46
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// node promote-unreleased.mjs --version 0.6.22 --date 2026-05-22 \
|
|
12
12
|
// --packages web-components,web-modules --dry
|
|
13
13
|
//
|
|
14
|
-
//
|
|
14
|
+
// Part of the adia-release skill. Replaces the inline heading-swap
|
|
15
15
|
// pattern used across v0.6.18 / v0.6.19 / v0.6.20 / v0.6.21 cycles.
|
|
16
16
|
//
|
|
17
17
|
// Exits:
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// release-pack.mjs — full-cycle orchestrator for an AdiaUI lockstep release.
|
|
3
3
|
//
|
|
4
|
-
// Chains the
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
// SKILL.md §Posture.
|
|
4
|
+
// Chains the 5 CLI helpers (bump · promote-unreleased · insert-stub ·
|
|
5
|
+
// tag-lockstep · dispatch-publish) plus the non-helper steps (lockfile ·
|
|
6
|
+
// pre-flight gates · git commit · F-N1 · push · GH releases · site
|
|
7
|
+
// deploy) into one walked sequence with 3 operator checkpoints (before
|
|
8
|
+
// tag, before push, before publish) per SKILL.md operator checkpoints.
|
|
10
9
|
//
|
|
11
10
|
// MODES:
|
|
12
11
|
// --mode cut (Mode 1 — peer pre-staged [Unreleased] or pure stub)
|
|
@@ -33,8 +32,8 @@
|
|
|
33
32
|
// --skip-gates : (DEBUG ONLY) skip pre-flight (don't ship anything!)
|
|
34
33
|
// --skip-site : skip the EXE deploy step (rare; for offline cycles)
|
|
35
34
|
//
|
|
36
|
-
//
|
|
37
|
-
// references/
|
|
35
|
+
// Part of the adia-release skill. Mechanizes the cut procedure from
|
|
36
|
+
// references/cut-procedure.md while preserving operator judgment at
|
|
38
37
|
// the 3 mutating-checkpoint boundaries.
|
|
39
38
|
|
|
40
39
|
import { execSync } from 'node:child_process';
|
|
@@ -274,7 +273,7 @@ function step7Fn1(args) {
|
|
|
274
273
|
// THE BATCH-PUSH SKIP (bit the v0.7.14 cut): `git push origin <10 tags>` in one
|
|
275
274
|
// invocation fires the push-on-tag `create` event ONCE for the whole ref-set,
|
|
276
275
|
// and GitHub Actions routinely drops it — ZERO publish-on-tag workflows trigger.
|
|
277
|
-
// (
|
|
276
|
+
// (recovery-paths.md §Scenario 7 — the batch-tag-push publish-skip.)
|
|
278
277
|
// Pushing each per-package tag separately gives the per-package publish-<pkg>.yml
|
|
279
278
|
// `on: push: tags:` trigger its own create event. The umbrella tag is pushed
|
|
280
279
|
// last (it triggers nothing — convention only).
|
|
@@ -341,15 +340,9 @@ async function step10GhAndSite(args) {
|
|
|
341
340
|
}
|
|
342
341
|
sh('npm run build:site', args);
|
|
343
342
|
sh(`rsync -az --delete dist/ ${args.host}:/srv/adia-ui/dist/`, args);
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
// ── Step 11 — Ledger ─────────────────────────────────────────────
|
|
348
|
-
function step11Ledger(args) {
|
|
349
|
-
console.log('\n=== Step 11 — Audit-history ledger ===');
|
|
350
|
-
const cmd = `node ${SCRIPT_DIR}/make-ledger.mjs --version ${args.version} --date ${args.date} --summary "<TODO: paste from commit message>" --note "Shipped via release-pack.mjs mode=${args.mode}"`;
|
|
351
|
-
sh(cmd, args);
|
|
352
|
-
console.log('\n Edit the generated ledger to fill in scope/verification details, then commit + push.');
|
|
343
|
+
// Verify a deployed CONTENT FILE, never an SPA route — the docs site
|
|
344
|
+
// returns HTTP 200 + a blank shell for ANY unmatched route (v0.7.4 trap).
|
|
345
|
+
sh(`curl -s -o /dev/null -w "EXE host.css: HTTP %{http_code}\\n" https://${args.host}/packages/web-components/styles/host.css`, args);
|
|
353
346
|
}
|
|
354
347
|
|
|
355
348
|
// ── Main ─────────────────────────────────────────────────────────
|
|
@@ -357,7 +350,7 @@ async function main() {
|
|
|
357
350
|
const args = parseArgs(process.argv.slice(2));
|
|
358
351
|
// Fail-fast guard: refuse to git/npm/gh/curl against a non-monorepo directory.
|
|
359
352
|
assertMonorepoRoot(REPO);
|
|
360
|
-
console.log(`adia-
|
|
353
|
+
console.log(`adia-release release-pack — v${args.version} (${args.mode})${args.dry ? ' [DRY]' : ''}`);
|
|
361
354
|
step1ReBaseline(args);
|
|
362
355
|
step3PreFlight(args);
|
|
363
356
|
step4PromoteAndBump(args);
|
|
@@ -367,9 +360,8 @@ async function main() {
|
|
|
367
360
|
await step8Push(args);
|
|
368
361
|
await step9Publish(args);
|
|
369
362
|
await step10GhAndSite(args);
|
|
370
|
-
step11Ledger(args);
|
|
371
363
|
rl.close();
|
|
372
|
-
console.log('\n✓ release-pack complete.
|
|
364
|
+
console.log('\n✓ release-pack complete. Verify against the npm registry + GH releases, then author the release notes.');
|
|
373
365
|
}
|
|
374
366
|
|
|
375
367
|
main().catch((e) => {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// node tag-lockstep.mjs --version 0.6.22 --delete # delete existing tags
|
|
9
9
|
// node tag-lockstep.mjs --version 0.6.22 --dry # print commands without running
|
|
10
10
|
//
|
|
11
|
-
//
|
|
11
|
+
// Part of the adia-release skill. Mechanizes the tag loop used
|
|
12
12
|
// every cycle.
|
|
13
13
|
|
|
14
14
|
import { execSync } from 'node:child_process';
|
|
@@ -25,6 +25,10 @@ const PER_PACKAGE_NAMES = [
|
|
|
25
25
|
'a2ui-mcp',
|
|
26
26
|
'a2ui-retrieval',
|
|
27
27
|
'a2ui-validator',
|
|
28
|
+
// Plugins joined the lockstep 2026-07-15 (check-lockstep.mjs POLICY note);
|
|
29
|
+
// their `adia-ui-*-v*` tags trigger publish-adia-ui-{factory,forge}.yml.
|
|
30
|
+
'adia-ui-factory',
|
|
31
|
+
'adia-ui-forge',
|
|
28
32
|
];
|
|
29
33
|
|
|
30
34
|
function parseArgs(argv) {
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: adia-site-docs
|
|
3
|
+
description: >-
|
|
4
|
+
Review or author pages under site/pages/{architecture,getting-started,
|
|
5
|
+
guides,patterns,reference}/ — the 34-page docs site. Use when asked to add
|
|
6
|
+
or edit a getting-started/architecture/guides/patterns/reference page,
|
|
7
|
+
review a site docs page for consistency, fix a callout that reads as plain
|
|
8
|
+
text, or explain why an inline-code chip or a demo gallery looks broken.
|
|
9
|
+
NOT for a component's own .examples.html demo (adia-author) or any
|
|
10
|
+
pure-primitive-composition training-harvest page (governed by
|
|
11
|
+
composition-and-examples.md's no-style-block rule; owner: adia-a2ui).
|
|
12
|
+
disable-model-invocation: false
|
|
13
|
+
user-invocable: true
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# adia-site-docs
|
|
17
|
+
|
|
18
|
+
Every page under `site/pages/{architecture,getting-started,guides,patterns,
|
|
19
|
+
reference}/` shares one skeleton: `<header><h1>` + a deck `<p>`, then numbered
|
|
20
|
+
`<section data-section data-property="...">` blocks, each opening
|
|
21
|
+
`<h2 variant="section">` with an optional `<p data-note>` subtitle. Two
|
|
22
|
+
archetypes ride it — narrative/explainer (architecture, getting-started,
|
|
23
|
+
guides: prose + `<code-ui>` + tables, no live demos) and reference/gallery
|
|
24
|
+
(patterns, reference: the same skeleton plus `<preview-ui>` demo rows and a
|
|
25
|
+
near-universal closing "Guidance for agents" callout).
|
|
26
|
+
|
|
27
|
+
Full decomposition, the 4 concrete rules, and the training-harvest-surface
|
|
28
|
+
boundary this skill does NOT cover: read
|
|
29
|
+
[`../../../../../.claude/docs/conventions/site-pages-authoring.md`](../../../../../.claude/docs/conventions/site-pages-authoring.md)
|
|
30
|
+
in full before authoring or reviewing — it is the source of record; this
|
|
31
|
+
skill routes to it and enforces it, it does not restate it.
|
|
32
|
+
|
|
33
|
+
## Task shape → action
|
|
34
|
+
|
|
35
|
+
| Task shape | Do |
|
|
36
|
+
| --- | --- |
|
|
37
|
+
| New page in an owned category | Read the convention doc's template section; copy the shared skeleton from a sibling page in the same category (narrative archetype vs. reference/gallery archetype). |
|
|
38
|
+
| Callout / "meta content" block | `<alert-ui variant="warning\|info\|...">` with `<div slot="content">` (never `<span>` — the transpiler only treats `p`/`div`/`ul`/`ol` as prose; a `<span>` silently reorders mixed inline content on regen) for rich text — never a bare `data-*` attribute. A whole multi-heading section aimed at a different reader (not a short callout) is NOT `alert-ui`'s job either (wrong shape) — currently there's no working distinguishing treatment for this case beyond the heading text itself; see the convention doc's rule 2 for what's been tried and why it doesn't render. |
|
|
39
|
+
| Tamed admin-shell demo | Add `class="demo-frame"` to the shell instance + a page-local `<style>` block setting only `--demo-frame-height` (and any genuinely page-specific extra). That's `site/site.css`'s `.demo-frame` utility already covering `position`/`border`/`overflow`/`.demo-body` padding. |
|
|
40
|
+
| A surface needs to read as "its own distinct object" against the page background (a chip, a pill) | Reuse `--a-canvas-well-strong` (`packages/web-components/styles/colors/semantics/core.css`) — verified ≥3:1 (WCAG 2.2 SC 1.4.11) in both schemes. `--a-canvas-well` alone is for a subtly-sunken panel; a new candidate token always runs through `color:color-verify` first. |
|
|
41
|
+
| "Is this page consistent?" / review request | Check the page against the convention doc's rules 1–4 by name; a finding names the specific rule violated, not just "this looks off." |
|
|
42
|
+
| Anything touching a real UI primitive not already listed above | Audit `packages/web-components/components/` before inventing markup (this repo's standing rule) — a fake `data-*`/`class` convention with no CSS is exactly the defect class this skill exists to prevent. |
|
|
43
|
+
|
|
44
|
+
## Verify after any change
|
|
45
|
+
|
|
46
|
+
- `npm run check:links` — intra-repo links across the touched pages.
|
|
47
|
+
- `node scripts/build/site-a2ui.mjs --page <route>` for every page whose
|
|
48
|
+
**markup** changed — regenerates the compiled A2UI artifact the
|
|
49
|
+
docs-transpiler produces from this source; a CSS-only fix needs no regen.
|
|
50
|
+
- `color:color-verify` for any new or changed token used for text or
|
|
51
|
+
UI-component contrast — prove the ratio, don't estimate it.
|
|
52
|
+
- `npm run check:lightningcss-build` after any CSS change (`site/site.css`
|
|
53
|
+
or a component's own `.css`).
|
|
54
|
+
- **Visually verify any `alert-ui`/rich-slotted-content change in a
|
|
55
|
+
browser after regenerating** — a `valid:true` transpiler result and a
|
|
56
|
+
correct raw-HTML source do not prove the rendered order is correct;
|
|
57
|
+
the compiled `site-a2ui/pages/*.json` artifact is what's served, and
|
|
58
|
+
a wrong container tag (`<span>` instead of `<div>`) silently reorders
|
|
59
|
+
content while still passing schema validation. This is not optional
|
|
60
|
+
for this one content shape.
|
|
61
|
+
|
|
62
|
+
A check that cannot run (missing script, no network for a build step) is a
|
|
63
|
+
named blocker in the report — flag it and stop; never mark the page done on
|
|
64
|
+
an assumed pass.
|
|
65
|
+
|
|
66
|
+
Done when the touched page(s) pass the checks above and, for a reviewed
|
|
67
|
+
page, every finding cites the specific rule in `site-pages-authoring.md` it
|
|
68
|
+
violates.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# skill-review — adia-site-docs
|
|
2
|
+
|
|
3
|
+
Skill: packages/plugins/adia-ui-forge/skills/adia-site-docs/SKILL.md · Standards: skill-authoring-standards · Lint: clean
|
|
4
|
+
Verdict: PASS (no blocking finding)
|
|
5
|
+
|
|
6
|
+
Lint verbatim: `skill-postwrite-invocation-lint · clean · .../adia-site-docs/SKILL.md`
|
|
7
|
+
|
|
8
|
+
| ID | Verdict | Severity | Evidence (file:line) | Fix |
|
|
9
|
+
|----|---------|----------|----------------------|-----|
|
|
10
|
+
| R1 | PASS | — | SKILL.md:40 ("Never restate position/border/overflow…"), :41 (`--a-canvas-well-strong` verified ≥3:1), :43 (audit primitives before inventing markup) — each survives deletion; removing any re-admits a concrete defect class. | — |
|
|
11
|
+
| R2 | PASS | — | Desc SKILL.md:4-8 front-loads verbatim user phrasings ("add or edit a … page", "review a site docs page", "fix a callout that reads as plain text"); fences use the parseable `NOT for X (owner)` form :9-12. Corpus routing (evals/routing-corpus.json) covers 16 should-fire + 6 adversarial. | — |
|
|
12
|
+
| R3 | PASS w/ note | minor | Species=procedural (intent.md:3); dials explicit and agree (SKILL.md:13-14); name head `adia-site-docs` is a domain-noun, not the generic zero-derivation verb the standard prescribes for procedural — but it matches the whole plugin's `adia-<domain>` grammar (sibling adia-author is identically formed). Consistent within the estate; flagged only for the record. | Keep — estate naming convention governs; no change. |
|
|
13
|
+
| R4 | PASS w/ note | minor | Load-bearing rows instantiate concrete actions (SKILL.md:38-43). Negative imperatives run to ~4 ("do NOT invent" :38, "never a bare data-*" :39, "Never restate" :40, "don't reach for a raw ramp step without color-verify" :41) — at/over the ≤3 hard-gate guideline. | Optional: demote the two style-choice negatives (:38, :41) to positive form; reserve NEVER for :39/:40 catastrophic invariants. |
|
|
14
|
+
| R5 | PASS | — | Deliberately routes to `.claude/docs/conventions/site-pages-authoring.md` (SKILL.md:28-32) rather than copying rules 1-4; convention doc confirmed present with matching `### 1..4` headings. Drift pair avoided by design — the strongest dimension. | — |
|
|
15
|
+
| R6 | PASS | — | Task-shape contract table up front (SKILL.md:34-43); verify steps + stopping predicate at tail (:45-58); body 59 lines (well under 500 / 5,000-token head); reference one level deep. | — |
|
|
16
|
+
| R7 | PASS w/ gap | minor | Output contract present (review finding "cites the specific rule … it violates" :57-58); stopping predicate present ("Done when …" :56). No *named failure branches* (e.g. "if `check:links` cannot run → report blocker, do not mark done"). | Add one failure branch to the Verify section for a check that cannot run. |
|
|
17
|
+
| R8 | PASS | — | Numeric anchors on load-bearing dims: "34-page" (:5,20), "≥3:1 (WCAG 2.2 SC 1.4.11)" (:41), "rules 1-4" (:42,57). No vague quantifiers on load-bearing lines. | — |
|
|
18
|
+
|
|
19
|
+
## Additional evidence (non-scored hygiene)
|
|
20
|
+
|
|
21
|
+
- **Phantom fence paths** (minor): description fences `site/pages/examples/**` and `site/pages/gen-ui/**` (SKILL.md:11); neither directory currently exists under `site/pages/` (only architecture, getting-started, guides, patterns, reference). The fence spends description budget on surfaces that are not yet present. Keep if these are planned training-harvest surfaces (intent.md:52 treats them as governed by composition-and-examples.md); otherwise trim to reclaim characters. Not blocking — the fence is still correct if/when those surfaces land, and adversarial-02 tests it.
|
|
22
|
+
- **intent.md citation drift** (minor, not in payload): intent.md:64 cites `evals/evals.json`, but the shipped corpus is `evals/routing-corpus.json`. intent.md is a forge artifact, not skill payload, so it does not affect triggering — but repair the citation in the same edit to keep the record honest.
|
|
23
|
+
|
|
24
|
+
## Top 3
|
|
25
|
+
|
|
26
|
+
1. (minor) R7 — add one named failure branch to the Verify section (a check that cannot run → report blocker, do not mark done); procedural bodies owe an explicit failure branch, currently absent (SKILL.md:45-58).
|
|
27
|
+
2. (minor) R4 — negative-imperative count sits at ~4; demote the two style-choice negatives (:38 section shape, :41 ramp step) to positive phrasing, reserving hard gates for the two real invariants (:39 fabricated data-*, :40 restated demo-frame CSS).
|
|
28
|
+
3. (minor) Phantom fence — reconcile `site/pages/examples/**` and `site/pages/gen-ui/**` (SKILL.md:11): confirm they are planned surfaces or trim the fence; and fix the `evals.json` → `routing-corpus.json` citation in intent.md:64.
|
|
29
|
+
|
|
30
|
+
No blocking or major findings. The skill's reference-don't-restate discipline (R5) and measured contrast anchor (R8) are its strongest features.
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"name": "adia-site-docs routing accuracy corpus",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"purpose": "Routing-eval corpus for adia-site-docs (adia-forge plugin). Each phrase declares whether adia-site-docs 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-site-docs routing — does this phrase activate adia-site-docs?",
|
|
9
|
+
|
|
10
|
+
"minimums_per_spec": {
|
|
11
|
+
"trigger_phrases": 16,
|
|
12
|
+
"adversarial_phrases": 6,
|
|
13
|
+
"task_shapes_covered": "new-page, review-page, callout-fix, demo-frame-consistency, contrast-token, sibling-boundary",
|
|
14
|
+
"adversarial_fraction": "27%"
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
"phrases": [
|
|
18
|
+
{
|
|
19
|
+
"id": "site-docs-review-01",
|
|
20
|
+
"phrase": "review this site docs page for consistency",
|
|
21
|
+
"should_route_to_site_docs": true,
|
|
22
|
+
"expected_shape": "review-page",
|
|
23
|
+
"rationale": "Canonical review-a-page task shape."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "site-docs-review-02",
|
|
27
|
+
"phrase": "does this callout look like plain text to you",
|
|
28
|
+
"should_route_to_site_docs": true,
|
|
29
|
+
"expected_shape": "callout-fix",
|
|
30
|
+
"rationale": "Symptom description matching Defect 2 (fabricated data-alert)."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "site-docs-review-03",
|
|
34
|
+
"phrase": "why is the code background not visible on this page",
|
|
35
|
+
"should_route_to_site_docs": true,
|
|
36
|
+
"expected_shape": "contrast-token",
|
|
37
|
+
"rationale": "Symptom description matching Defect 1 (inline-code contrast)."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "site-docs-new-page-01",
|
|
41
|
+
"phrase": "add a new pattern page under site/pages/patterns",
|
|
42
|
+
"should_route_to_site_docs": true,
|
|
43
|
+
"expected_shape": "new-page",
|
|
44
|
+
"rationale": "Explicit site/pages/patterns path mention."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "site-docs-new-page-02",
|
|
48
|
+
"phrase": "author a new getting-started guide page",
|
|
49
|
+
"should_route_to_site_docs": true,
|
|
50
|
+
"expected_shape": "new-page",
|
|
51
|
+
"rationale": "getting-started/ is one of this skill's 5 owned categories."
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "site-docs-new-page-03",
|
|
55
|
+
"phrase": "write a new architecture explainer page for the docs site",
|
|
56
|
+
"should_route_to_site_docs": true,
|
|
57
|
+
"expected_shape": "new-page",
|
|
58
|
+
"rationale": "architecture/ is one of this skill's 5 owned categories."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "site-docs-new-page-04",
|
|
62
|
+
"phrase": "create a reference page documenting the MCP tools",
|
|
63
|
+
"should_route_to_site_docs": true,
|
|
64
|
+
"expected_shape": "new-page",
|
|
65
|
+
"rationale": "reference/ is one of this skill's 5 owned categories."
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "site-docs-demo-frame-01",
|
|
69
|
+
"phrase": "this demo page needs a tamed static frame like the other pattern pages",
|
|
70
|
+
"should_route_to_site_docs": true,
|
|
71
|
+
"expected_shape": "demo-frame-consistency",
|
|
72
|
+
"rationale": "Matches the .demo-frame consolidation rule."
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "site-docs-demo-frame-02",
|
|
76
|
+
"phrase": "add a new admin-shell demo to this patterns page without duplicating the taming CSS",
|
|
77
|
+
"should_route_to_site_docs": true,
|
|
78
|
+
"expected_shape": "demo-frame-consistency",
|
|
79
|
+
"rationale": "Direct match on rule 3 (reuse .demo-frame)."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "site-docs-review-04",
|
|
83
|
+
"phrase": "is this site page consistent with our authoring conventions",
|
|
84
|
+
"should_route_to_site_docs": true,
|
|
85
|
+
"expected_shape": "review-page",
|
|
86
|
+
"rationale": "Direct convention-compliance ask."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"id": "site-docs-review-05",
|
|
90
|
+
"phrase": "audit site/pages/guides for the same callout bug we found elsewhere",
|
|
91
|
+
"should_route_to_site_docs": true,
|
|
92
|
+
"expected_shape": "review-page",
|
|
93
|
+
"rationale": "Explicit guides/ path + defect-class reference."
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "site-docs-callout-01",
|
|
97
|
+
"phrase": "this warning box on the docs page has no background at all",
|
|
98
|
+
"should_route_to_site_docs": true,
|
|
99
|
+
"expected_shape": "callout-fix",
|
|
100
|
+
"rationale": "Symptom description matching the fabricated data-alert defect."
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "site-docs-new-page-05",
|
|
104
|
+
"phrase": "what's the shared skeleton every site docs page should follow",
|
|
105
|
+
"should_route_to_site_docs": true,
|
|
106
|
+
"expected_shape": "new-page",
|
|
107
|
+
"rationale": "Direct ask about the template decomposition this skill carries."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "site-docs-contrast-01",
|
|
111
|
+
"phrase": "what token should a new chip-like surface use to stay readable against the page background",
|
|
112
|
+
"should_route_to_site_docs": true,
|
|
113
|
+
"expected_shape": "contrast-token",
|
|
114
|
+
"rationale": "Direct match on rule 1 (--a-canvas-well-strong)."
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "site-docs-review-06",
|
|
118
|
+
"phrase": "check the patterns pages for any other unstyled data attributes like data-alert",
|
|
119
|
+
"should_route_to_site_docs": true,
|
|
120
|
+
"expected_shape": "review-page",
|
|
121
|
+
"rationale": "Direct defect-class sweep request."
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"id": "site-docs-new-page-06",
|
|
125
|
+
"phrase": "scaffold a new getting-started/theming-dark-mode.html page",
|
|
126
|
+
"should_route_to_site_docs": true,
|
|
127
|
+
"expected_shape": "new-page",
|
|
128
|
+
"rationale": "Explicit new-file-under-owned-category shape."
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
{
|
|
132
|
+
"id": "site-docs-adversarial-01",
|
|
133
|
+
"phrase": "review this component's own demo gallery in its .examples.html file",
|
|
134
|
+
"should_route_to_site_docs": false,
|
|
135
|
+
"expected_shape": "sibling-boundary",
|
|
136
|
+
"rationale": "packages/web-components/components/*/*.examples.html is adia-author's remit, not this skill's."
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"id": "site-docs-adversarial-02",
|
|
140
|
+
"phrase": "fix this gen-ui training exemplar page under site/pages/examples",
|
|
141
|
+
"should_route_to_site_docs": false,
|
|
142
|
+
"expected_shape": "sibling-boundary",
|
|
143
|
+
"rationale": "site/pages/examples/** is the pure-primitive-composition training-harvest surface governed by composition-and-examples.md + adia-a2ui, explicitly fenced out."
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "site-docs-adversarial-03",
|
|
147
|
+
"phrase": "tune the zettel retrieval threshold for the chunk corpus",
|
|
148
|
+
"should_route_to_site_docs": false,
|
|
149
|
+
"expected_shape": "sibling-boundary",
|
|
150
|
+
"rationale": "A2UI pipeline internals belong to adia-a2ui, unrelated to site/pages authoring."
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "site-docs-adversarial-04",
|
|
154
|
+
"phrase": "add a new prop to the button-ui primitive",
|
|
155
|
+
"should_route_to_site_docs": false,
|
|
156
|
+
"expected_shape": "sibling-boundary",
|
|
157
|
+
"rationale": "Primitive authoring is adia-author's remit."
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"id": "site-docs-adversarial-05",
|
|
161
|
+
"phrase": "cut the next npm release for the 9 @adia-ai packages",
|
|
162
|
+
"should_route_to_site_docs": false,
|
|
163
|
+
"expected_shape": "sibling-boundary",
|
|
164
|
+
"rationale": "Release engineering is adia-release's remit, unrelated to docs-page authoring."
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": "site-docs-adversarial-06",
|
|
168
|
+
"phrase": "deploy the docs site to ui-kit.exe.xyz",
|
|
169
|
+
"should_route_to_site_docs": false,
|
|
170
|
+
"expected_shape": "sibling-boundary",
|
|
171
|
+
"rationale": "Deploy operations are adia-deploy's remit; this skill authors content, it doesn't ship it."
|
|
172
|
+
}
|
|
173
|
+
],
|
|
174
|
+
|
|
175
|
+
"evaluator_notes": "Adversarial phrases 1-2 specifically test the two hardest-to-distinguish fences (component .examples.html vs site/pages/patterns/*.html; site/pages/examples/** vs site/pages/{architecture,getting-started,guides,patterns,reference}/**) — both surfaces are literally *.html under similar-looking paths, so the description must lean on the explicit path lists, not just 'site pages' as a phrase."
|
|
176
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# intent — adia-site-docs
|
|
2
|
+
status: shipped
|
|
3
|
+
species: procedural
|
|
4
|
+
dials: { disable-model-invocation: false, user-invocable: true }
|
|
5
|
+
freedom: medium
|
|
6
|
+
type: capability-uplift
|
|
7
|
+
|
|
8
|
+
Note: this intent record was filled directly from an already-approved
|
|
9
|
+
plan (`.claude/plans/enchanted-singing-globe.md`, "Site docs review +
|
|
10
|
+
authoring method") and this session's own research (3 parallel Explore
|
|
11
|
+
agents surveying `site/pages/`'s structure, a color-contrast root-cause
|
|
12
|
+
investigation, and a review of existing tooling) rather than a live
|
|
13
|
+
turn-by-turn interview — the operator confirmed the plan, including
|
|
14
|
+
"doc + a dedicated skill" as the Phase 4 method depth, before this
|
|
15
|
+
skill was forged. Slots below are answered from that record, not
|
|
16
|
+
fabricated dialogue.
|
|
17
|
+
|
|
18
|
+
## trigger
|
|
19
|
+
should:
|
|
20
|
+
- "review this site docs page"
|
|
21
|
+
- "add a new pattern page under site/pages/patterns"
|
|
22
|
+
- "why does this callout look like plain text"
|
|
23
|
+
- "author a new page under site/pages/getting-started"
|
|
24
|
+
- "is this site page consistent with our conventions"
|
|
25
|
+
should_not:
|
|
26
|
+
- "review this component demo gallery" (packages/web-components/components/*/*.examples.html — adia-author)
|
|
27
|
+
- "fix this gen-ui training exemplar page" (site/pages/examples/**, site/pages/gen-ui/** — composition-and-examples.md's no-style-block rule + adia-a2ui)
|
|
28
|
+
|
|
29
|
+
## delta
|
|
30
|
+
Without this skill, Claude (or a human author) reaches for whatever
|
|
31
|
+
looks locally plausible on a `site/pages/*.html` page and repeats the
|
|
32
|
+
defect classes this session found and fixed: a fabricated `data-*`
|
|
33
|
+
attribute standing in for a real primitive (16 of 34 pages had
|
|
34
|
+
`data-alert="warning|info"` with ZERO matching CSS anywhere — dead
|
|
35
|
+
markup that silently renders as plain paragraphs), a hand-rolled
|
|
36
|
+
`<style>` block duplicating an existing shared utility (4 pages
|
|
37
|
+
independently reinvented the same "tame this admin-shell demo" CSS),
|
|
38
|
+
and a background token picked for its "feels dark and subtle" name
|
|
39
|
+
rather than its actual measured contrast (inline `<code>` used
|
|
40
|
+
`--a-canvas-well`, verified via `color:color-verify` at ~1.1:1 against
|
|
41
|
+
the page background — WCAG 2.2 SC 1.4.11 wants ≥3:1). All three are
|
|
42
|
+
now fixed at the shared-CSS/token level (cascades to all 34 pages),
|
|
43
|
+
but a NEW page authored without this skill's guidance would
|
|
44
|
+
re-introduce the same classes on page 35. Deleted after a month: the
|
|
45
|
+
next contributor re-invents a `data-tip`/`data-caution` variant of the
|
|
46
|
+
same dead-attribute bug, or a 5th hand-rolled demo-taming `<style>`
|
|
47
|
+
block, because nothing routes them to `alert-ui` or `.demo-frame`
|
|
48
|
+
before they start typing.
|
|
49
|
+
|
|
50
|
+
## fences
|
|
51
|
+
- NOT for `packages/web-components/components/*/*.examples.html` component demo pages (adia-author)
|
|
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`, adia-a2ui)
|
|
53
|
+
- NOT for the A2UI generation pipeline itself, chunk corpus, or MCP tools (adia-a2ui)
|
|
54
|
+
|
|
55
|
+
## assertions
|
|
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.
|
|
57
|
+
2. A new tamed-demo page the skill produces adds `class="demo-frame"` plus only a page-local `--demo-frame-height` override — it does not restate `position`/`border`/`overflow`/`.demo-body` padding.
|
|
58
|
+
3. When asked to review an existing page, the skill's output names the specific rule from `site-pages-authoring.md` a defect violates (not just "this looks off").
|
|
59
|
+
4. The skill's own description correctly declines to fire on a component `.examples.html` demo or a `site/pages/examples/**` training page (see `should_not` above) and instead names the owning sibling skill.
|
|
60
|
+
|
|
61
|
+
## gates
|
|
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
|
+
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 adia-author 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
|
+
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
|
+
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 adia-author's own evals — adia-author'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
|
+
|
|
69
|
+
## rulings
|
|
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.
|
|
71
|
+
- Accepted with note: convention doc lives at `.claude/docs/conventions/site-pages-authoring.md`, not inside this skill's own `references/` — deliberate, to avoid a drift pair with the doc that's also linked from `document-routing.md`.
|
|
72
|
+
- Post-ship correction (same session, before task close): the skill's own Rule-2 example used `<span slot="content">` — a real bug, not just a style choice. `scripts/build/lib/docs-transpiler.mjs`'s `PROSE_CONTAINERS` only recognizes `p`/`div`/`ul`/`ol`; `<span>` fell to a different decomposition path that silently reordered mixed inline content (a leading `<strong>` rendered AFTER the surrounding text, bold dropped) once the compiled `site-a2ui/pages/*.json` regenerated — invisible to schema validation (`valid:true`) and to a raw-HTML read, only caught by a live-browser check. Fixed in SKILL.md, the convention doc, and all 16 already-migrated `site/pages/*.html` files (`<span>` → `<div>`). Added "visually verify" as a non-optional Verify step for this content shape.
|