@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.
Files changed (259) hide show
  1. package/.claude-plugin/plugin.json +3 -6
  2. package/CHANGELOG.md +27 -34
  3. package/README.md +35 -40
  4. package/agents/a2ui-engineer.md +22 -53
  5. package/agents/component-author.md +29 -0
  6. package/agents/framework-verifier.md +26 -0
  7. package/agents/release-engineer.md +21 -81
  8. package/agents/routing-corpus.json +293 -64
  9. package/bin/demo-postwrite-pattern-gate +94 -0
  10. package/bin/forge-lint +17 -2
  11. package/bin/sidecar-prewrite-guard +104 -0
  12. package/commands/deploy.md +9 -0
  13. package/commands/dogfood.md +10 -0
  14. package/commands/gen-review.md +9 -0
  15. package/commands/release.md +10 -0
  16. package/hooks/hooks.json +15 -0
  17. package/package.json +3 -6
  18. package/references/contracts/a2ui-mcp-surface.md +35 -0
  19. package/references/contracts/migration-guide-format.md +34 -0
  20. package/references/shared/content-trust.md +19 -74
  21. package/skills/adia-a2ui/SKILL.md +99 -0
  22. package/skills/{adia-ui-a2ui → adia-a2ui}/evals/routing-corpus.json +10 -10
  23. package/skills/adia-a2ui/references/anti-patterns.md +27 -0
  24. package/skills/adia-a2ui/references/chunk-authoring.md +71 -0
  25. package/skills/adia-a2ui/references/corpus-discipline.md +68 -0
  26. package/skills/adia-a2ui/references/eval-diagnostics.md +86 -0
  27. package/skills/adia-a2ui/references/format-extension-decisions.md +66 -0
  28. package/skills/adia-a2ui/references/leverage-rules.md +52 -0
  29. package/skills/adia-a2ui/references/mcp-pipeline-ops.md +83 -0
  30. package/skills/adia-a2ui/references/mcp-tool-reference.md +59 -0
  31. package/skills/adia-a2ui/references/pipeline-overview.md +115 -0
  32. package/skills/adia-a2ui/references/semantic-fail-lifting.md +74 -0
  33. package/skills/adia-a2ui/references/strategy-engines.md +109 -0
  34. package/skills/adia-a2ui/references/zettel-calibration.md +104 -0
  35. package/skills/adia-author/SKILL.md +112 -0
  36. package/skills/adia-author/evals/routing-corpus.json +222 -0
  37. package/skills/{adia-ui-authoring → adia-author}/references/anti-patterns.md +33 -4
  38. package/skills/{adia-ui-authoring → adia-author}/references/authoring-cycle.md +9 -11
  39. package/skills/adia-author/references/canonical-pattern-index.md +243 -0
  40. package/skills/{adia-ui-authoring → adia-author}/references/code-style.md +19 -21
  41. package/skills/adia-author/references/common-gotchas.md +129 -0
  42. package/skills/adia-author/references/composite-demo-protocol.md +271 -0
  43. package/skills/{adia-ui-authoring → adia-author}/references/css-patterns.md +19 -6
  44. package/skills/{adia-ui-authoring → adia-author}/references/lifecycle-patterns.md +1 -0
  45. package/skills/{adia-ui-authoring → adia-author}/references/llm-bridge.md +3 -5
  46. package/skills/{adia-ui-authoring → adia-author}/references/module-promotion.md +20 -38
  47. package/skills/{adia-ui-authoring → adia-author}/references/primitive-audit.md +2 -4
  48. package/skills/{adia-ui-authoring → adia-author}/references/shell-patterns.md +12 -18
  49. package/skills/{adia-ui-authoring → adia-author}/references/token-contract.md +5 -7
  50. package/skills/{adia-ui-authoring → adia-author}/references/worked-example.md +3 -3
  51. package/skills/{adia-ui-authoring → adia-author}/references/yaml-contract.md +3 -3
  52. package/skills/{adia-ui-authoring → adia-author}/scripts/build-canonical-pattern-index.mjs +3 -3
  53. package/skills/adia-deploy/SKILL.md +128 -0
  54. package/skills/{adia-ui-ops → adia-deploy}/references/deploy-playbooks.md +47 -30
  55. package/skills/adia-dogfood/SKILL.md +124 -0
  56. package/skills/adia-dogfood/references/admin-shell-anatomy.md +77 -0
  57. package/skills/adia-dogfood/references/app-shell-pitfalls.md +66 -0
  58. package/skills/adia-dogfood/references/card-anatomy-sweep.md +66 -0
  59. package/skills/adia-dogfood/references/html-attr-sweep.md +63 -0
  60. package/skills/adia-dogfood/references/native-leak-annotations.md +73 -0
  61. package/skills/adia-dogfood/references/visual-probe-triage.md +80 -0
  62. package/skills/{adia-ui-dogfood → adia-dogfood}/scripts/analyze.mjs +30 -14
  63. package/skills/adia-gen-review/SKILL.md +127 -0
  64. package/skills/adia-gen-review/references/corpus-html-patterns.md +279 -0
  65. package/skills/adia-gen-review/references/loop-protocol.md +216 -0
  66. package/skills/adia-gen-review/references/rubric-cosmetic.md +100 -0
  67. package/skills/adia-gen-review/references/rubric-decompose.md +101 -0
  68. package/skills/adia-gen-review/references/rubric-score.md +214 -0
  69. package/skills/{adia-ui-gen-review → adia-gen-review}/references/scores.schema.json +2 -2
  70. package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-coverage-audit.mjs +4 -4
  71. package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-decompose.mjs +10 -6
  72. package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/gen-review-status.mjs +5 -5
  73. package/skills/{adia-ui-gen-review → adia-gen-review}/scripts/validate-cycle-scores.mjs +5 -5
  74. package/skills/adia-llm-internals/SKILL.md +77 -0
  75. package/skills/{adia-ui-llm → adia-llm-internals}/references/adapter-contract.md +4 -2
  76. package/skills/{adia-ui-llm → adia-llm-internals}/references/add-a-provider.md +4 -5
  77. package/skills/{adia-ui-llm → adia-llm-internals}/references/bridge-facade.md +10 -3
  78. package/skills/{adia-ui-llm → adia-llm-internals}/references/browser-proxy-boundary.md +1 -1
  79. package/skills/{adia-ui-llm → adia-llm-internals}/references/model-registry.md +5 -3
  80. package/skills/{adia-ui-llm → adia-llm-internals}/references/streaming-sse.md +2 -2
  81. package/skills/adia-release/SKILL.md +72 -0
  82. package/skills/adia-release/references/changelog-discipline.md +119 -0
  83. package/skills/adia-release/references/cut-procedure.md +247 -0
  84. package/skills/adia-release/references/gates-catalog.md +222 -0
  85. package/skills/adia-release/references/independent-package-release.md +52 -0
  86. package/skills/adia-release/references/migration-guide-authoring.md +86 -0
  87. package/skills/adia-release/references/notes-authoring.md +90 -0
  88. package/skills/adia-release/references/recovery-paths.md +106 -0
  89. package/skills/{adia-ui-release → adia-release}/scripts/bump.mjs +27 -2
  90. package/skills/{adia-ui-release → adia-release}/scripts/dispatch-publish.mjs +4 -1
  91. package/skills/{adia-ui-release → adia-release}/scripts/insert-stub.mjs +1 -1
  92. package/skills/{adia-ui-release → adia-release}/scripts/package-paths.mjs +6 -0
  93. package/skills/{adia-ui-release → adia-release}/scripts/promote-unreleased.mjs +1 -1
  94. package/skills/{adia-ui-release → adia-release}/scripts/release-pack.mjs +13 -21
  95. package/skills/{adia-ui-release → adia-release}/scripts/tag-lockstep.mjs +5 -1
  96. package/skills/adia-site-docs/SKILL.md +68 -0
  97. package/skills/adia-site-docs/evals/audit-report.md +30 -0
  98. package/skills/adia-site-docs/evals/routing-corpus.json +176 -0
  99. package/skills/adia-site-docs/intent.md +72 -0
  100. package/agents/README.md +0 -209
  101. package/agents/author.md +0 -56
  102. package/agents/repo-steward.md +0 -56
  103. package/agents/spec-architect.md +0 -53
  104. package/agents/tech-lead.md +0 -57
  105. package/agents/verifier.md +0 -55
  106. package/bin/lib/audit-axes.mjs +0 -555
  107. package/bin/lib/dry-run-irreversible.mjs +0 -236
  108. package/bin/lib/run-skill-evals.mjs +0 -487
  109. package/bin/lib/teach-router.mjs +0 -250
  110. package/commands/adia-forge-a2ui.md +0 -10
  111. package/commands/adia-forge-author.md +0 -10
  112. package/commands/adia-forge-dogfood.md +0 -8
  113. package/commands/adia-forge-llm.md +0 -8
  114. package/commands/adia-forge-orient.md +0 -10
  115. package/commands/adia-forge-release.md +0 -8
  116. package/commands/adia-forge-review.md +0 -10
  117. package/references/shared/pev-rationale.md +0 -64
  118. package/references/shared/skill-conventions.md +0 -133
  119. package/skills/adia-ui-a2ui/CHANGELOG.md +0 -32
  120. package/skills/adia-ui-a2ui/SKILL.md +0 -243
  121. package/skills/adia-ui-a2ui/evals/adversarial-corpus.json +0 -75
  122. package/skills/adia-ui-a2ui/evals/teach-routing-cases.json +0 -100
  123. package/skills/adia-ui-a2ui/references/anti-patterns.md +0 -24
  124. package/skills/adia-ui-a2ui/references/chunk-authoring.md +0 -88
  125. package/skills/adia-ui-a2ui/references/corpus-discipline.md +0 -56
  126. package/skills/adia-ui-a2ui/references/eval-diagnostics.md +0 -127
  127. package/skills/adia-ui-a2ui/references/fragment-graph.md +0 -91
  128. package/skills/adia-ui-a2ui/references/mcp-pipeline-ops.md +0 -106
  129. package/skills/adia-ui-a2ui/references/mcp-tool-reference.md +0 -398
  130. package/skills/adia-ui-a2ui/references/pipeline-overview.md +0 -175
  131. package/skills/adia-ui-a2ui/references/semantic-fail-lifting.md +0 -120
  132. package/skills/adia-ui-a2ui/references/strategy-engines.md +0 -111
  133. package/skills/adia-ui-a2ui/references/teach-protocol.md +0 -220
  134. package/skills/adia-ui-a2ui/references/zettel-calibration.md +0 -93
  135. package/skills/adia-ui-a2ui/scripts/audit-a2ui-roster.mjs +0 -96
  136. package/skills/adia-ui-a2ui/scripts/teach-route.mjs +0 -157
  137. package/skills/adia-ui-a2ui/skill.json +0 -38
  138. package/skills/adia-ui-authoring/CHANGELOG.md +0 -32
  139. package/skills/adia-ui-authoring/SKILL.md +0 -256
  140. package/skills/adia-ui-authoring/assets/case-studies/admin-shell-decomposition.md +0 -101
  141. package/skills/adia-ui-authoring/assets/case-studies/maxtokens-32768-discovery.md +0 -109
  142. package/skills/adia-ui-authoring/assets/case-studies/theme-panel-promotion.md +0 -113
  143. package/skills/adia-ui-authoring/evals/adversarial-design-plan-gates.json +0 -138
  144. package/skills/adia-ui-authoring/evals/routing-corpus.json +0 -245
  145. package/skills/adia-ui-authoring/references/canonical-pattern-index.md +0 -179
  146. package/skills/adia-ui-authoring/references/common-gotchas.md +0 -93
  147. package/skills/adia-ui-authoring/references/composite-demo-protocol.md +0 -1084
  148. package/skills/adia-ui-authoring/references/teach-protocol.md +0 -428
  149. package/skills/adia-ui-authoring/scripts/audit-authoring-roster.mjs +0 -148
  150. package/skills/adia-ui-authoring/skill.json +0 -45
  151. package/skills/adia-ui-dogfood/CHANGELOG.md +0 -17
  152. package/skills/adia-ui-dogfood/README.md +0 -62
  153. package/skills/adia-ui-dogfood/SKILL.md +0 -866
  154. package/skills/adia-ui-dogfood/skill.json +0 -40
  155. package/skills/adia-ui-forge/SKILL.md +0 -88
  156. package/skills/adia-ui-forge/evals/routing-corpus.json +0 -30
  157. package/skills/adia-ui-gen-review/CHANGELOG.md +0 -108
  158. package/skills/adia-ui-gen-review/SKILL.md +0 -266
  159. package/skills/adia-ui-gen-review/references/loop-protocol.md +0 -712
  160. package/skills/adia-ui-gen-review/references/rubric-cosmetic.md +0 -144
  161. package/skills/adia-ui-gen-review/references/rubric-decompose.md +0 -117
  162. package/skills/adia-ui-gen-review/references/rubric-score.md +0 -249
  163. package/skills/adia-ui-gen-review/references/teach-protocol.md +0 -214
  164. package/skills/adia-ui-gen-review/skill.json +0 -23
  165. package/skills/adia-ui-llm/CHANGELOG.md +0 -25
  166. package/skills/adia-ui-llm/SKILL.md +0 -165
  167. package/skills/adia-ui-llm/evals/adversarial-corpus.json +0 -75
  168. package/skills/adia-ui-llm/evals/routing-corpus.json +0 -30
  169. package/skills/adia-ui-llm/evals/teach-routing-cases.json +0 -73
  170. package/skills/adia-ui-llm/references/teach-protocol.md +0 -78
  171. package/skills/adia-ui-llm/scripts/audit-llm-roster.mjs +0 -93
  172. package/skills/adia-ui-llm/scripts/teach-route.mjs +0 -119
  173. package/skills/adia-ui-llm/skill.json +0 -33
  174. package/skills/adia-ui-ops/CHANGELOG.md +0 -291
  175. package/skills/adia-ui-ops/SKILL.md +0 -401
  176. package/skills/adia-ui-ops/references/INDEX.md +0 -158
  177. package/skills/adia-ui-ops/references/audit-cadence.md +0 -263
  178. package/skills/adia-ui-ops/references/audit-patterns/archive-link-sweep.md +0 -96
  179. package/skills/adia-ui-ops/references/audit-patterns/audit-history-ledger.md +0 -162
  180. package/skills/adia-ui-ops/references/audit-patterns/browser-bundle-node-imports.md +0 -154
  181. package/skills/adia-ui-ops/references/audit-patterns/changelog-unreleased-bloat.md +0 -75
  182. package/skills/adia-ui-ops/references/audit-patterns/coverage-gaps.md +0 -187
  183. package/skills/adia-ui-ops/references/audit-patterns/entry-file-coverage.md +0 -122
  184. package/skills/adia-ui-ops/references/audit-patterns/format-hygiene.md +0 -217
  185. package/skills/adia-ui-ops/references/audit-patterns/lockstep-versioning.md +0 -113
  186. package/skills/adia-ui-ops/references/audit-patterns/memory-fragmentation.md +0 -180
  187. package/skills/adia-ui-ops/references/audit-patterns/orphan-detection.md +0 -202
  188. package/skills/adia-ui-ops/references/audit-patterns/pointer-validation.md +0 -180
  189. package/skills/adia-ui-ops/references/audit-patterns/redundancy-detection.md +0 -210
  190. package/skills/adia-ui-ops/references/audit-patterns/spec-dating-sweep.md +0 -91
  191. package/skills/adia-ui-ops/references/audit-patterns/stale-content.md +0 -182
  192. package/skills/adia-ui-ops/references/audit-patterns/staleness-tooling.md +0 -156
  193. package/skills/adia-ui-ops/references/audit-patterns/token-waste-detection.md +0 -196
  194. package/skills/adia-ui-ops/references/doc-types/adr-pattern.md +0 -210
  195. package/skills/adia-ui-ops/references/doc-types/architecture-md.md +0 -190
  196. package/skills/adia-ui-ops/references/doc-types/changelog.md +0 -183
  197. package/skills/adia-ui-ops/references/doc-types/decisions-log.md +0 -146
  198. package/skills/adia-ui-ops/references/doc-types/plan-roadmap.md +0 -182
  199. package/skills/adia-ui-ops/references/doc-types/postmortem-pattern.md +0 -206
  200. package/skills/adia-ui-ops/references/genres/prose-and-writing.md +0 -149
  201. package/skills/adia-ui-ops/references/guidance/context-budget.md +0 -137
  202. package/skills/adia-ui-ops/references/guidance/llm-doc-writing.md +0 -116
  203. package/skills/adia-ui-ops/references/guidance/reliability-dial.md +0 -186
  204. package/skills/adia-ui-ops/references/recipes/adr-introduction.md +0 -211
  205. package/skills/adia-ui-ops/references/recipes/audit-existing-repo.md +0 -234
  206. package/skills/adia-ui-ops/references/recipes/cold-start-harvest.md +0 -263
  207. package/skills/adia-ui-ops/references/recipes/concurrent-learnings-merge.md +0 -158
  208. package/skills/adia-ui-ops/references/recipes/continuous-learning-loop.md +0 -169
  209. package/skills/adia-ui-ops/references/recipes/external-reference-verification.md +0 -158
  210. package/skills/adia-ui-ops/references/recipes/findings-index-readout.md +0 -126
  211. package/skills/adia-ui-ops/references/recipes/greenfield-setup.md +0 -252
  212. package/skills/adia-ui-ops/references/recipes/harvest-repo-brain.md +0 -169
  213. package/skills/adia-ui-ops/references/recipes/import-repo-brain-harvest.md +0 -153
  214. package/skills/adia-ui-ops/references/recipes/memory-organization.md +0 -182
  215. package/skills/adia-ui-ops/references/recipes/recommend-then-validate.md +0 -199
  216. package/skills/adia-ui-ops/references/recipes/self-healing-hooks.md +0 -366
  217. package/skills/adia-ui-ops/references/recipes/skill-stewardship-loop.md +0 -113
  218. package/skills/adia-ui-ops/references/standards/agents-md-spec.md +0 -138
  219. package/skills/adia-ui-ops/references/standards/claude-md-convention.md +0 -123
  220. package/skills/adia-ui-ops/references/standards/cross-tool-matrix.md +0 -85
  221. package/skills/adia-ui-ops/references/standards/readme-conventions.md +0 -232
  222. package/skills/adia-ui-ops/references/teach-protocol.md +0 -215
  223. package/skills/adia-ui-ops/scripts/audit-ops-roster.mjs +0 -104
  224. package/skills/adia-ui-ops/skill.json +0 -65
  225. package/skills/adia-ui-release/CHANGELOG.md +0 -66
  226. package/skills/adia-ui-release/SKILL.md +0 -323
  227. package/skills/adia-ui-release/assets/case-studies/2026-05-20-batch-push-v0.6.14-v0.6.15.md +0 -144
  228. package/skills/adia-ui-release/assets/case-studies/2026-05-20-corpus-drift-remediation-v0.6.15.md +0 -155
  229. package/skills/adia-ui-release/assets/case-studies/2026-05-20-version-skip-correction-v0.6.12.md +0 -114
  230. package/skills/adia-ui-release/assets/case-studies/2026-05-21-author-from-scratch-v0.6.18.md +0 -139
  231. package/skills/adia-ui-release/assets/case-studies/2026-05-21-feedback37-retraction-v0.6.21.md +0 -124
  232. package/skills/adia-ui-release/assets/case-studies/2026-05-21-fn1-enrichment-pass-v0.6.19.md +0 -125
  233. package/skills/adia-ui-release/assets/case-studies/2026-05-21-stale-test-detection-v0.6.20.md +0 -142
  234. package/skills/adia-ui-release/assets/case-studies/2026-05-23-freshness-gate-recovery-v0.6.32.md +0 -97
  235. package/skills/adia-ui-release/assets/case-studies/2026-05-26-catalog-drift-recurring-v0.6.40.md +0 -147
  236. package/skills/adia-ui-release/assets/templates/stub-changelog.template.md +0 -22
  237. package/skills/adia-ui-release/evals/evals.json +0 -164
  238. package/skills/adia-ui-release/references/changelog-discipline.md +0 -250
  239. package/skills/adia-ui-release/references/cycle-happy-path.md +0 -520
  240. package/skills/adia-ui-release/references/exe-deploy.md +0 -149
  241. package/skills/adia-ui-release/references/gates-catalog.md +0 -778
  242. package/skills/adia-ui-release/references/independent-package-release.md +0 -129
  243. package/skills/adia-ui-release/references/ledger-discipline.md +0 -232
  244. package/skills/adia-ui-release/references/migration-guide-authoring.md +0 -174
  245. package/skills/adia-ui-release/references/multi-agent-baseline.md +0 -207
  246. package/skills/adia-ui-release/references/notes-authoring.md +0 -212
  247. package/skills/adia-ui-release/references/recovery-paths.md +0 -262
  248. package/skills/adia-ui-release/references/rollup-notes.md +0 -208
  249. package/skills/adia-ui-release/references/teach-protocol.md +0 -468
  250. package/skills/adia-ui-release/scripts/audit-gate-roster.mjs +0 -196
  251. package/skills/adia-ui-release/scripts/make-ledger.mjs +0 -200
  252. package/skills/adia-ui-release/skill.json +0 -77
  253. package/skills/dogfood-sweep/CHANGELOG.md +0 -37
  254. package/skills/dogfood-sweep/README.md +0 -105
  255. package/skills/dogfood-sweep/SKILL.md +0 -1000
  256. package/skills/dogfood-sweep/analyze.mjs +0 -600
  257. package/skills/dogfood-sweep/skill.json +0 -31
  258. /package/skills/{adia-ui-authoring → adia-author}/references/api-contract.md +0 -0
  259. /package/skills/{adia-ui-release → adia-release}/scripts/assert-monorepo-root.mjs +0 -0
@@ -1,250 +0,0 @@
1
- # `changelog-discipline.md` — Keep-a-Changelog mechanics + F-N1 enrichment
2
-
3
- > Loaded by modes 1, 2 when a CHANGELOG touch is needed (Variant B author-from-scratch always; Variant A only if F-N1 enrichment warns).
4
-
5
- The AdiaUI monorepo uses [Keep a Changelog](https://keepachangelog.com/) shape per-package, with the convention that the release-cut cycle **promotes** `## [Unreleased]` content into `## [vX.Y.Z] — YYYY-MM-DD` at cut time. This file documents that mechanic + the F-N1 diff-coverage path-keyword discipline that catches when a CHANGELOG entry describes a change but doesn't use the literal path token the release trip-wire expects.
6
-
7
- ---
8
-
9
- ## §The 4 CHANGELOG shapes
10
-
11
- Across the 9 packages, every per-cycle CHANGELOG entry falls into one of these shapes:
12
-
13
- | # | Shape | When |
14
- | --- | --- | --- |
15
- | 1 | **Substantive — promoted** | Package has `[Unreleased]` content; cut renames the heading |
16
- | 2 | **Substantive — authored** | Package has source change but no `[Unreleased]` block (e.g. corpus regen reflected only by yaml→a2ui regeneration); cut writes a fresh block |
17
- | 3 | **Stub** | Package has no source change at all; cut inserts the lockstep stub |
18
- | 4 | **Cycle-aware enrichment** | Substantive entry exists but doesn't include a path keyword F-N1 wants — add the keyword inline |
19
-
20
- The §Promotion mechanic, §Authoring mechanic, and §F-N1 enrichment sections below cover each.
21
-
22
- ---
23
-
24
- ## §Promotion — `[Unreleased]` → `[vX.Y.Z] — YYYY-MM-DD`
25
-
26
- When a peer has staged work under `## [Unreleased]` and the cycle is cutting that version, the heading swap is **all** that needs to happen. The content under it (`### Added`, `### Fixed`, etc.) becomes the new version block as-is.
27
-
28
- **Pattern:**
29
-
30
- ```text
31
- ## [Unreleased]
32
-
33
- ### Added — <thing>
34
- - <bullets>
35
-
36
- ## [0.6.X-1] — 2026-05-21
37
- ```
38
-
39
- becomes
40
-
41
- ```text
42
- ## [0.6.X] — 2026-05-21
43
-
44
- ### Added — <thing>
45
- - <bullets>
46
-
47
- ## [0.6.X-1] — 2026-05-21
48
- ```
49
-
50
- The CLI helper `scripts/promote-unreleased.mjs` does this across N packages at once. Use it like:
51
-
52
- ```bash
53
- node "${CLAUDE_PLUGIN_ROOT}/skills/adia-ui-release/scripts/promote-unreleased.mjs" \
54
- --version 0.6.X \
55
- --date 2026-05-21 \
56
- --packages web-components,web-modules,a2ui/corpus
57
- ```
58
-
59
- For the manual case (using `Edit`), the exact text-edit pattern:
60
-
61
- ```diff
62
- - ## [Unreleased]
63
- + ## [0.6.X] — 2026-05-21
64
- ```
65
-
66
- That's it. Nothing else changes. The blank line after the heading + the `### Added —` lines below are preserved.
67
-
68
- ### When promotion is NOT a clean swap
69
-
70
- Three cases need extra care:
71
-
72
- 1. **The substantive package's existing `[vX.Y.Z]` block was already authored as a stub** (e.g. peer cut the release commit early with "no source changes" then continued working). **Promote by replacing** the stub block with the merged `[Unreleased]` content. The v0.6.18 case in `recovery-paths.md` § `[Unreleased]` promotion is the canonical example.
73
-
74
- 2. **There's no `[Unreleased]` heading but the package DID change** (typically corpus regen — `catalog-a2ui_0_9.json` updated to reflect a yaml change in another package). **Author a fresh `[vX.Y.Z]` block** with `### Changed` (or `### Fixed` if it's a correction) describing the regenerated artifact. See §Authoring below.
75
-
76
- 3. **`[Unreleased]` has content but it's stale / wrong** (rare — peer authored entries for a different release version, or wrote speculative entries that didn't ship). **Triage with the operator before promoting.**
77
-
78
- ---
79
-
80
- ## §Authoring — fresh `[vX.Y.Z]` from scratch
81
-
82
- For the substantive-package-changed-but-no-`[Unreleased]` case, write the block above the latest version's heading:
83
-
84
- ```markdown
85
- ## [0.6.X] — 2026-05-21
86
-
87
- ### Changed
88
- - **<short headline>.** <one-sentence summary of what changed>. <one
89
- more sentence on why, with file paths if useful>. Closes <ticket /
90
- symptom>.
91
-
92
- ### Note
93
- - The headline v0.6.X work shipped in `<other-package>`. See
94
- `<path-to-other-CHANGELOG>#0X--YYYY-MM-DD` for details.
95
-
96
- ## [0.6.X-1] — 2026-05-21
97
- ```
98
-
99
- The `### Note` cross-reference is optional but standard practice when the package's role in the cycle is to be a generated-artifact follow-on of substantive work in another package (e.g. a2ui-corpus catalog regen following web-components yaml changes).
100
-
101
- ---
102
-
103
- ## §Stubs — ride-along lockstep
104
-
105
- For the 6+ packages that are pure lockstep bumps (no source change), use the template at `assets/templates/stub-changelog.template.md`. The CLI helper `scripts/insert-stub.mjs` inserts this into all the named packages:
106
-
107
- ```bash
108
- node "${CLAUDE_PLUGIN_ROOT}/skills/adia-ui-release/scripts/insert-stub.mjs" \
109
- --version 0.6.X \
110
- --date 2026-05-21 \
111
- --substantive "<one-line summary> in @adia-ai/<pkg> and @adia-ai/<pkg2>" \
112
- --xref "packages/web-modules/CHANGELOG.md#0X--YYYY-MM-DD" \
113
- --packages llm,a2ui/compose,a2ui/mcp,a2ui/retrieval,a2ui/runtime,a2ui/validator
114
- ```
115
-
116
- The stub block is intentionally short:
117
-
118
- ```markdown
119
- ## [0.6.X] — 2026-05-21
120
-
121
- ### Maintenance
122
- - **Lockstep version bump only.** No source changes in this package; bumped to maintain the 9-package version coherence enforced by `scripts/release/check-lockstep.mjs`. Substantive v0.6.X work shipped in <SUBSTANTIVE>. See `<XREF>` for details.
123
- ```
124
-
125
- **Stale stubs are a F-N1 hazard.** A "no source changes" stub on a package that DID change (e.g. a2ui-corpus catalog regenerated but nobody updated its CHANGELOG) makes F-N1 warn for missing keywords. The fix is mode-2 authoring (§Authoring above), not stubbing.
126
-
127
- ---
128
-
129
- ## §F-N1 diff-coverage enrichment — the path-keyword discipline
130
-
131
- F-N1 (`scripts/release/check-release.mjs --all-pending`) cross-checks the git diff between consecutive package-tags against the CHANGELOG `[VERSION]` block. Its heuristic: for every directory touched in the diff, the CHANGELOG body should mention that directory's keyword.
132
-
133
- **Cosmetic warn shape:**
134
-
135
- ```text
136
- ⚠ [warn] diff 'packages/web-components/components/' touched between
137
- web-components-v0.X.Y-1 → web-components-v0.X.Y but CHANGELOG [0.X.Y]
138
- doesn't mention 'components'
139
- ```
140
-
141
- The change IS documented — the entry says "table-ui body cells truncate by default" — but the literal keyword "components" doesn't appear in the body, so the heuristic flags it.
142
-
143
- **Fix:** add the path keyword to a natural place in an existing entry. Examples:
144
-
145
- - `\`table.yaml\``→`\`components/table/table.yaml\``
146
- - `\`element.js\``→`\`core/element.js\``
147
- - `\`235 chunk JSON files\``→`\`235 JSON files under \`chunks/\``
148
-
149
- The keyword goes INSIDE the entry text, ideally inline with a file reference where the path makes the entry MORE accurate (not less). It should NOT be a sidecar parenthetical — that would read as inserted for the gate, not as natural prose.
150
-
151
- **Cycle:**
152
-
153
- 1. Tag, run F-N1, see the warn.
154
- 2. Edit the offending CHANGELOG entry.
155
- 3. `git add` the CHANGELOG; `git commit --amend --no-edit` (or `--amend` with an updated message).
156
- 4. Delete the 10 tags (the SHA moved):
157
-
158
- ```bash
159
- git tag -d v0.X.Y web-components-v0.X.Y web-modules-v0.X.Y ...
160
- ```
161
-
162
- 5. Re-tag at the new HEAD (loop over the 9 per-package + umbrella).
163
- 6. Re-run F-N1. Expect 9/9 clean.
164
-
165
- **Worth fixing?** Yes for clarity, but the cycle isn't _blocked_ by a single cosmetic warn — F-N1's own message says "review and proceed if intentional." However: do it. The user's "up to standards" directive covers this. By v0.6.21 the peer was authoring entries with full paths from the start (`d8cbbd30c`'s "uses full path so F-N1 gate matches" commit) — that's the goal.
166
-
167
- ### Real failures vs cosmetic warns
168
-
169
- A **real** F-N1 failure is "diff touched `packages/<pkg>/...` and the CHANGELOG `[VERSION]` block doesn't mention the change at all." That means the cycle missed documenting a change — author a CHANGELOG entry, don't just enrich.
170
-
171
- A **cosmetic** F-N1 warn is "the change IS documented but the regex didn't match the path keyword." That's the enrichment case above.
172
-
173
- Tell them apart by **reading the CHANGELOG entry**: does any bullet describe the touched files (by component name, by what the change does)? If yes → cosmetic → enrich. If no → real → author.
174
-
175
- ---
176
-
177
- ## §Dating — local-time vs UTC
178
-
179
- The AdiaUI repo's CHANGELOG dates are written in YYYY-MM-DD format without timezone. Today's date is what the operator considers "today" — typically local-time Pacific.
180
-
181
- The repo has historically mixed dates (v0.6.10 was 2026-05-21 due to UTC rollover at cut time; v0.6.11 came back to 2026-05-20). Don't try to enforce strict consistency retroactively — too much churn for a cosmetic alignment. **For NEW cycles**, use the local date the cycle ships in.
182
-
183
- If the operator and the runtime disagree on date (e.g. a `<system-reminder>` says today is 2026-05-21 but local clock says 2026-05-20), use the system reminder's date. It's the authoritative current date.
184
-
185
- ---
186
-
187
- ## §Markdown anchor convention
188
-
189
- GitHub auto-generates anchors from headings. The convention `[X.Y.Z] — YYYY-MM-DD` slugifies to `XYZ--YYYY-MM-DD` (brackets/dots stripped; em-dash + spaces → double hyphen).
190
-
191
- When a stub references another package's `[VERSION]` block:
192
-
193
- ```markdown
194
- See `packages/web-modules/CHANGELOG.md#0621--2026-05-21` for details.
195
- ```
196
-
197
- The anchor `#0621--2026-05-21` corresponds to `## [0.6.21] — 2026-05-21`. The `insert-stub.mjs` helper computes this automatically; for manual authoring, the formula is:
198
-
199
- - Strip `[`, `]`, `.` from the version
200
- - Replace `—` (em-dash + space) with `-` (en-hyphen)
201
- - Lowercase
202
-
203
- So `[0.6.21] — 2026-05-21` → `0621--2026-05-21` (the leading `--` comes from the em-dash being replaced by one hyphen + the space being replaced by another).
204
-
205
- ---
206
-
207
- ## §What to put in `### Added` / `### Changed` / `### Fixed` / etc
208
-
209
- Keep a Changelog defines 6 categories:
210
-
211
- - **Added** — for new features
212
- - **Changed** — for changes in existing functionality
213
- - **Deprecated** — for soon-to-be-removed features (deprecation notices; the feature still works)
214
- - **Removed** — for now-removed features (the feature is gone; was deprecated previously)
215
- - **Fixed** — for any bug fixes
216
- - **Security** — in case of vulnerabilities
217
-
218
- In the AdiaUI repo, **Added** and **Fixed** dominate. **Changed** is used for behavior changes that aren't fixes (e.g. default-value changes like the v0.6.13 `<admin-shell>` default-mode change to `"rounded borderless"`). **Removed** is rare in the 0.6.x line — v0.6.21's FEEDBACK-37 retraction was documented as `### Fixed` (spurious warn removed) rather than `### Removed` because the removal fixed a defect.
219
-
220
- Two custom AdiaUI conventions worth knowing:
221
-
222
- - **`### Maintenance`** — used for pure lockstep stubs (no source change). The Keep-a-Changelog spec doesn't have this; it's an AdiaUI extension that makes "this is just a bump" obvious to readers.
223
- - **`### Docs`** — used for documentation-only changes. Standard practice in some Keep-a-Changelog dialects.
224
-
225
- ---
226
-
227
- ## §Entry style — what makes a good bullet
228
-
229
- Across 20+ cycles, the entries that age well share these traits:
230
-
231
- 1. **Bold-prefix one-line headline** — the title-cased headline of the change. The reader sees this even when scrolling fast.
232
- 2. **Why → what → file paths** — explain the motivation (1 sentence), the mechanism (1 sentence), and the files touched (inline backtick).
233
- 3. **`Closes/Fixes <ticket>`** — when a feedback ticket is closed, name the ticket ID (FEEDBACK-NN). This is what `release-notes` cross-references later.
234
- 4. **Pre/post code block** — when the change has a consumer-facing API or markup difference, show before/after. The v0.6.13 `<admin-shell>` default-mode entry's "Opt-out matrix" code block is the canonical example.
235
- 5. **Inline file path** — `\`components/table/table.yaml\``(not just`\`table.yaml\``). F-N1 likes it; readers like it too.
236
-
237
- Avoid:
238
-
239
- - Vague verbs ("improved", "tweaked") without specifics.
240
- - Reference-by-ticket-only — always describe what the code does, not just "fixes FB-NN".
241
- - Future tense ("will support") — entries are written about shipped work.
242
-
243
- ---
244
-
245
- ## §When this reference is "done v1"
246
-
247
- - Every cycle's `[Unreleased]` → `[VERSION]` promotion completes with no operator improvisation beyond `promote-unreleased.mjs`.
248
- - F-N1 warns are categorized cosmetic vs real on first inspection with no false positives.
249
- - Stale stubs are zero in the next 3 cycles.
250
- - The path-keyword discipline holds at authoring time — no enrichment pass needed (peer adopted it by v0.6.21; this skill codifies the same).