@adia-ai/adia-ui-forge 0.1.3 → 0.8.1
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 +4 -7
- package/CHANGELOG.md +35 -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 +28 -3
- package/skills/{adia-ui-release → adia-release}/scripts/dispatch-publish.mjs +10 -7
- 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 +38 -31
- package/skills/{adia-ui-release → adia-release}/scripts/tag-lockstep.mjs +7 -3
- 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
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
# `multi-agent-baseline.md` — peer-in-flight classification + stash discipline
|
|
2
|
-
|
|
3
|
-
> Loaded by every mode when the working tree shows files you didn't author. Companion to `AGENTS.md` § "Multi-agent baseline assumption" — release-side specialization.
|
|
4
|
-
|
|
5
|
-
The AdiaUI monorepo is **always** worked on by multiple agents concurrently. At any moment a peer agent may be: writing source, drafting tickets, updating skills, regenerating corpus chunks, fixing demo shells, or running an unrelated cycle. Your context is stale at the start of every turn.
|
|
6
|
-
|
|
7
|
-
Release work is unusually sensitive to peer activity because:
|
|
8
|
-
|
|
9
|
-
- A release commit's CHANGELOG makes claims (`### Added — X`); peer files in the working tree may **contradict** those claims (the classic v0.6.20 case: peer revert of FEEDBACK-37 while the v0.6.20 CHANGELOG documented FEEDBACK-37 as added).
|
|
10
|
-
- A release tarball is built from the tag's tree; peer-in-flight uncommitted files don't ship — but the site build (working-tree driven) DOES include them. This split is silent and easy to miss.
|
|
11
|
-
- A `git add -A` on a peer-dirty tree sweeps in peer work without consent. The release commit then makes claims it doesn't authorize.
|
|
12
|
-
|
|
13
|
-
This reference encodes the four disciplines that prevent these defects.
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## §Discipline 1 — Re-baseline at every turn
|
|
18
|
-
|
|
19
|
-
Non-negotiable. The first **four** commands of every release-cycle turn:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
git -C $REPO branch --show-current # MUST equal main before cutting
|
|
23
|
-
git -C $REPO status --short
|
|
24
|
-
git -C $REPO log --oneline -8
|
|
25
|
-
git -C $REPO fetch && git -C $REPO log HEAD..origin/main --oneline
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Then read the output BEFORE running anything mutating:
|
|
29
|
-
|
|
30
|
-
- `branch --show-current` shows the checked-out branch. **It must be `main`.** Peers in this shared clone sometimes work on local feature branches (`fix/*`, `feat/*`) — the AGENTS.md session snapshot saying "Current branch: main" reflects the _prior_ session, not now. Cutting on a feature branch means `git push origin main` pushes the stale `main` ref (not your release commit) while the tags point at the feature tip → tags ahead of main. See the §Wrong-branch recovery below.
|
|
31
|
-
- `status` shows working-tree changes. Every modified or untracked file is a classification decision.
|
|
32
|
-
- `log -8` shows recent commits. Peer commits since your last turn? New work staged for the release? An unexpected revert?
|
|
33
|
-
- `fetch && log HEAD..origin/main` shows remote drift. Did someone else push?
|
|
34
|
-
|
|
35
|
-
> **§Wrong-branch recovery (v0.7.4 incident, 2026-06-02).** Cut the release on a peer's local-only `fix/font-family-floor-and-css-rollups` instead of main; caught at push (origin/main landed at a mid-window commit, tags pointed at the feature tip). Recovery was clean **because publish is `workflow_dispatch`, not tag-triggered** — npm stayed at the prior version through the whole tangle. If the feature tip's parent is an ancestor of the old main (it was: ff-able), recover with `git branch -f main <release-sha>` → `git checkout main` (no churn since main now == HEAD) → `git push origin main` to fast-forward origin/main to the release commit. Verify `origin/main == vX.Y.Z tag == HEAD` BEFORE dispatching publish. Moving tags while local is free (`tag-lockstep --delete`); moving them after a publish is not.
|
|
36
|
-
|
|
37
|
-
If anything is unexpected, **diff before deciding**:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
git -C $REPO diff <path> # working-tree changes
|
|
41
|
-
git -C $REPO show <sha> --stat # peer commits
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Never proceed past surprising state without classifying it.
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## §Discipline 2 — Classification taxonomy
|
|
49
|
-
|
|
50
|
-
Every modified or untracked file falls into one of these buckets:
|
|
51
|
-
|
|
52
|
-
| Bucket | Definition | Action |
|
|
53
|
-
| --- | --- | --- |
|
|
54
|
-
| **Mine** | You authored this in the current turn | Stage explicitly |
|
|
55
|
-
| **Peer-release-relevant** | Peer authored, part of THIS release's scope (the peer's release-prep work — Variant A) | Stage explicitly |
|
|
56
|
-
| **Peer-in-flight, release-relevant, undocumented, contradicts CHANGELOG** | Peer authored, would change the release's behavior but has no CHANGELOG entry and may contradict an existing one | **Stash** — exclude from release; flag to operator |
|
|
57
|
-
| **Peer-in-flight, future-release scope** | Peer's working-tree progress destined for a later cut (e.g. `[Unreleased]` block additions, demo-page updates not yet documented) | Leave uncommitted — not yours to commit |
|
|
58
|
-
| **Ticket-lane / skill / journal** | `.agents/team/tickets/**`, `.agents/skills/**`, `docs/journal/**` peer work | Leave uncommitted — ticket / skill / docs lane |
|
|
59
|
-
| **Generated / regenerable** | `package-lock.json` after a bump, sidecar `.a2ui.json`, `chunk-embeddings.json` after regen | Stage iff you ran the generator this turn |
|
|
60
|
-
| **Unknown** | Diff doesn't tell you intent | Ask the operator OR check the most recent commit message for clues OR check `.brain/notes/` for a peer prep note |
|
|
61
|
-
|
|
62
|
-
The decision is **per-file**, not per-directory. A peer might have modified `admin-shell.js` (release-relevant) AND `SKILL.md` (skill-lane) in the same turn — they get different verdicts.
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## §Discipline 3 — Explicit allowlist staging
|
|
67
|
-
|
|
68
|
-
**Never** `git add -A` or `git add .` on a peer-dirty tree. The staging area is opaque without inspection; a peer may have left files staged from a prior partial workflow.
|
|
69
|
-
|
|
70
|
-
The defensive pattern:
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
# 1. Reset the staging area defensively.
|
|
74
|
-
git -C $REPO reset HEAD >/dev/null 2>&1
|
|
75
|
-
|
|
76
|
-
# 2. Stage the explicit allowlist by name.
|
|
77
|
-
git -C $REPO add \
|
|
78
|
-
package-lock.json \
|
|
79
|
-
packages/web-components/package.json \
|
|
80
|
-
packages/web-components/CHANGELOG.md \
|
|
81
|
-
packages/web-modules/package.json \
|
|
82
|
-
packages/web-modules/CHANGELOG.md \
|
|
83
|
-
packages/llm/package.json \
|
|
84
|
-
packages/llm/CHANGELOG.md \
|
|
85
|
-
packages/a2ui/compose/package.json \
|
|
86
|
-
packages/a2ui/compose/CHANGELOG.md \
|
|
87
|
-
packages/a2ui/corpus/package.json \
|
|
88
|
-
packages/a2ui/corpus/CHANGELOG.md \
|
|
89
|
-
packages/a2ui/mcp/package.json \
|
|
90
|
-
packages/a2ui/mcp/CHANGELOG.md \
|
|
91
|
-
packages/a2ui/retrieval/package.json \
|
|
92
|
-
packages/a2ui/retrieval/CHANGELOG.md \
|
|
93
|
-
packages/a2ui/runtime/package.json \
|
|
94
|
-
packages/a2ui/runtime/CHANGELOG.md \
|
|
95
|
-
packages/a2ui/validator/package.json \
|
|
96
|
-
packages/a2ui/validator/CHANGELOG.md
|
|
97
|
-
|
|
98
|
-
# 3. Verify staged count matches the allowlist.
|
|
99
|
-
git -C $REPO diff --cached --stat | tail -3
|
|
100
|
-
# Expected: "19 files changed" for a pure-stub release; more if you
|
|
101
|
-
# also staged source files (test updates, etc.)
|
|
102
|
-
|
|
103
|
-
# 4. Confirm peer-in-flight files are NOT in the staged set.
|
|
104
|
-
git -C $REPO diff --cached --name-only | sort
|
|
105
|
-
# Eyeball — no surprises.
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
The memory `feedback_git_commit_targeted` records this rule as a "4th incident" — peer renames absorbed silently 4 times before the `git reset HEAD` defensive prefix became standard.
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## §Discipline 4 — Stash workflow for strays
|
|
113
|
-
|
|
114
|
-
A stray = a peer-in-flight file that is:
|
|
115
|
-
|
|
116
|
-
1. Uncommitted,
|
|
117
|
-
2. Undocumented (no CHANGELOG entry covers it, no commit message explains it),
|
|
118
|
-
3. Would change behavior visible to consumers, AND
|
|
119
|
-
4. Contradicts an existing release-relevant artifact.
|
|
120
|
-
|
|
121
|
-
The canonical example: `admin-shell.tokens.css` `--page-content-header-bg` changed from `--a-canvas-1` to `--a-canvas-0` uncommitted, with the inline comment still describing `canvas-1`. Sat across v0.6.17/0.6.18/0.6.19 cycles. Resolved when the operator confirmed "keep canvas-0" in the v0.6.19→v0.6.20 boundary.
|
|
122
|
-
|
|
123
|
-
The stash workflow:
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
# 1. Stash the stray file(s) by name. Include a clear message so the
|
|
127
|
-
# next operator (or you next turn) understands why.
|
|
128
|
-
git -C $REPO stash push <path1> <path2> \
|
|
129
|
-
-m "vX.Y.Z-cycle: <stray reason> — parked during release"
|
|
130
|
-
|
|
131
|
-
# 2. Verify the working tree is sane.
|
|
132
|
-
git -C $REPO status --short
|
|
133
|
-
# Stashed files no longer appear as modified.
|
|
134
|
-
|
|
135
|
-
# 3. Do the full release (Steps 3–10 of cycle-happy-path.md).
|
|
136
|
-
|
|
137
|
-
# 4. Restore the stash AFTER the cycle ships.
|
|
138
|
-
git -C $REPO stash pop
|
|
139
|
-
# If "Dropped stash" prints, it applied cleanly.
|
|
140
|
-
# If "kept the stash" prints, there's a conflict — the working tree
|
|
141
|
-
# moved while you were releasing. Investigate before dropping.
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
**Always stash, never revert** unless the operator explicitly says "discard." Revert (`git checkout <file>`) destroys peer work; stash preserves it.
|
|
145
|
-
|
|
146
|
-
**Note the stash in the audit-history ledger** so the next operator can see what was excluded and why.
|
|
147
|
-
|
|
148
|
-
The 4 case studies in `assets/case-studies/` covering this discipline:
|
|
149
|
-
|
|
150
|
-
- `2026-05-21-stale-test-detection-v0.6.20.md` — peer changed CSS, didn't update test; deploy session updated the test (NOT stashed — fixed forward because the test was legitimately stale).
|
|
151
|
-
- `2026-05-21-feedback37-retraction-v0.6.21.md` — peer staged a revert of FEEDBACK-37 mid-cycle; stashed (would contradict the v0.6.20 CHANGELOG); the peer committed the revert post-publish for v0.6.21.
|
|
152
|
-
- `2026-05-20-version-skip-correction-v0.6.12.md` — peer mislabeled the cut v0.6.13; corrected 25 files across the release commit.
|
|
153
|
-
- (Phase 3) `2026-05-21-stash-pop-conflict-v0.6.20.md` — concurrent peer activity caused stash pop to keep-the-stash. Resolution: drop if the working tree has caught up (committed the same content); preserve if not. Never blind drop.
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## §Pre-cut state classification flowchart
|
|
158
|
-
|
|
159
|
-
When you re-baseline at Step 1 and find a non-clean working tree, walk this in order. The output is "what mode" + "what to stash."
|
|
160
|
-
|
|
161
|
-
```text
|
|
162
|
-
Is there an unpushed release commit (`release(*): vX.Y.Z`)?
|
|
163
|
-
├── Yes, exactly one → Mode 3 (Deploy handoff) — peer pre-cut
|
|
164
|
-
│ └── Are there commits AFTER it?
|
|
165
|
-
│ ├── Yes, with CHANGELOG additions to [Unreleased] → §Boundary check
|
|
166
|
-
│ │ (see recovery-paths.md § [Unreleased] promotion, Phase 2 —
|
|
167
|
-
│ │ the v0.6.18 case: peer release commit fails check:demo-shells
|
|
168
|
-
│ │ because the demo-shell fix landed entangled with future work)
|
|
169
|
-
│ └── No → Mode 3 happy path; tag at HEAD
|
|
170
|
-
├── Yes, multiple → Mode 4 (Batch push)
|
|
171
|
-
│ (see recovery-paths.md § batch-push, Phase 2 — the v0.6.14+v0.6.15
|
|
172
|
-
│ case: publish in version order for npm latest)
|
|
173
|
-
└── No → Mode 2 (Author from scratch); promote [Unreleased] → [vX.Y.Z]
|
|
174
|
-
|
|
175
|
-
Is the working tree clean?
|
|
176
|
-
├── Yes → proceed with the determined mode.
|
|
177
|
-
└── No → classify per the §Discipline 2 taxonomy.
|
|
178
|
-
For every file: Mine? Peer-release-relevant? Stray? Ticket-lane?
|
|
179
|
-
Stash strays, leave ticket-lane alone, stage release-relevant.
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## §The audit-history ledger contract
|
|
185
|
-
|
|
186
|
-
Every cycle's ledger (Step 11 of `cycle-happy-path.md`) includes a `notes` array. Entries about peer-in-flight handling go there. Standard phrasings:
|
|
187
|
-
|
|
188
|
-
```json
|
|
189
|
-
"notes": [
|
|
190
|
-
"STRAY UNCOMMITTED CHANGE EXCLUDED: <file> — <one-line summary>. git-stashed during the release; restored to the working tree after. Flagged to operator.",
|
|
191
|
-
"PEER-IN-FLIGHT EXCLUDED: <file> — <one-line summary>. v0.X.Y ships the committed state, NOT the peer's uncommitted change. The revert was restored post-release.",
|
|
192
|
-
"Peer cycle activity: skill v2.X.Y / journal §NNN / ticket-lane grooming rode along on main inside the unpushed range — already committed by peers; not npm release artifacts.",
|
|
193
|
-
"Concurrent peer modified <file> mid-cycle; was committed by the peer in <sha> as `<message>`. v0.X.Y absorbed / excluded per <reason>."
|
|
194
|
-
]
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
The ledger is the long-term memory of the peer-classification decision. Future cycles read past ledgers (Mode 8 — Phase 3 Investigation).
|
|
198
|
-
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
## §When this reference is "done v1"
|
|
202
|
-
|
|
203
|
-
- Every modified file in a release cycle classifies cleanly into one bucket from §Discipline 2 (zero "unknown" verdicts).
|
|
204
|
-
- Every stash command in the release uses the `vX.Y.Z-cycle:` prefix
|
|
205
|
-
- a meaningful reason.
|
|
206
|
-
- Every audit-history ledger has at least one `notes` entry per excluded / stashed / peer-in-flight file.
|
|
207
|
-
- The §Pre-cut state classification flowchart correctly routes the next 3 cycles without operator override.
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
# `notes-authoring.md` — Slack + GH-release single-version notes
|
|
2
|
-
|
|
3
|
-
> Loaded by mode 9 (Authoring discipline only) and by mode 1 Step 10 (GH releases). Covers both the per-version GH-release body and the Slack-flavored team announcement.
|
|
4
|
-
|
|
5
|
-
The AdiaUI repo has two single-version note formats:
|
|
6
|
-
|
|
7
|
-
1. **GH release body** — markdown, attached to each per-package tag's GH Release (created via `gh release create <pkg>-vX.Y.Z --notes-file ...`). All 9 packages get the same body.
|
|
8
|
-
2. **Slack release post** — markdown, intended to be pasted into #releases or similar. Shorter, more conversational, has the `npm install` snippet at the top.
|
|
9
|
-
|
|
10
|
-
Multi-version rollup notes are a separate format — see `rollup-notes.md`.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## §The GH release body — single version
|
|
15
|
-
|
|
16
|
-
Audience: external consumers reading the GH Releases page. Substantive
|
|
17
|
-
|
|
18
|
-
- practical. Each entry should answer "what shipped" + "what do I do with it."
|
|
19
|
-
|
|
20
|
-
**Standard structure (~80–200 lines per release):**
|
|
21
|
-
|
|
22
|
-
```markdown
|
|
23
|
-
## vX.Y.Z — <one-line tagline>
|
|
24
|
-
|
|
25
|
-
9-package lockstep **PATCH** cut. <One sentence on the scope.>
|
|
26
|
-
|
|
27
|
-
<Optional: a > heads-up callout if there's a behavior change or
|
|
28
|
-
breaking thing.>
|
|
29
|
-
|
|
30
|
-
### `@adia-ai/<substantive-pkg>`
|
|
31
|
-
|
|
32
|
-
- **<Bold-prefix headline>.** <Why → what → file paths.> Closes <FEEDBACK-NN>.
|
|
33
|
-
- **<Bold-prefix headline>.** <Same shape.>
|
|
34
|
-
|
|
35
|
-
### `@adia-ai/<other-substantive-pkg>`
|
|
36
|
-
|
|
37
|
-
- ...
|
|
38
|
-
|
|
39
|
-
### Ride-along stubs
|
|
40
|
-
|
|
41
|
-
`@adia-ai/<pkg1>`, `@adia-ai/<pkg2>`, ... — version bump only.
|
|
42
|
-
|
|
43
|
-
### Verification
|
|
44
|
-
|
|
45
|
-
- `check:lockstep` OK at `X.Y.Z / ^X.Y.0`
|
|
46
|
-
- **N/N vitest** across NN files · typecheck clean
|
|
47
|
-
- `components --verify` clean (NN files) · `verify:traits` 56/56
|
|
48
|
-
- `check:demo-shells` clean · `check:lightningcss-build` clean (NN files)
|
|
49
|
-
- `verify:corpus` 0/0 · `check:embeddings-fresh` OK
|
|
50
|
-
- `smoke:engines` green · `smoke:register-engine` 11/11 · `eval:diff zettel` cov=N% avg=N · `check:links` NNNN clean
|
|
51
|
-
|
|
52
|
-
### Install
|
|
53
|
-
|
|
54
|
-
\`\`\`bash
|
|
55
|
-
npm i @adia-ai/web-components@X.Y.Z @adia-ai/web-modules@X.Y.Z
|
|
56
|
-
\`\`\`
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Shape rules:**
|
|
60
|
-
|
|
61
|
-
- **Open with the tagline + one-sentence scope** — no preamble, no "we're excited to announce." Readers came to find out what's in it.
|
|
62
|
-
- **Group by package** — `### @adia-ai/<pkg>` headings. Use the `@adia-ai/` prefix; it's the npm name + the search key.
|
|
63
|
-
- **Bold-prefix every bullet** with the headline. Then 1–3 sentences: why → what → files. Inline backtick file paths.
|
|
64
|
-
- **Cite tickets by ID** — `FEEDBACK-NN` (or `FB-NN`). Match the CHANGELOG entry's citation style for that cycle.
|
|
65
|
-
- **Show before/after** when a change has consumer-facing markup difference. Use fenced code blocks.
|
|
66
|
-
- **Stubs go in a one-line `### Ride-along stubs`** — list the packages by name. Don't repeat the "lockstep version bump only" text — readers see the same per-cycle.
|
|
67
|
-
- **Verification section** is identical-style across cycles. Paste the gate output from your pre-flight. The repetition is a feature — readers learn what "all green" looks like.
|
|
68
|
-
- **Install matrix** at the bottom — **npm + CDN, both packages** (same mandate as the Slack post). npm: always `@adia-ai/web-components` + `@adia-ai/web-modules` (the universal entry points). CDN: a jsdelivr block pinned `@0.X` — `web-components@0.X/dist/web-components.min.{css,js}` + the `web-modules@0.X/dist/everything.min.js` kitchen-sink. Other packages added if substantive in the cut.
|
|
69
|
-
|
|
70
|
-
**Anti-patterns:**
|
|
71
|
-
|
|
72
|
-
- Marketing language. The notes are technical.
|
|
73
|
-
- Vague verbs. "Improved" / "polished" / "tweaked" without specifics is empty.
|
|
74
|
-
- Missing file paths. Inline backticks like `packages/<pkg>/...` let readers grep.
|
|
75
|
-
- Long preambles. Maximum 1 short paragraph before the per-package sections.
|
|
76
|
-
|
|
77
|
-
### Template — copy this verbatim and fill in
|
|
78
|
-
|
|
79
|
-
The template lives at `assets/templates/gh-release-notes.template.md` (Phase 2). It maps to a minimal cycle output (~80 lines for a stub-heavy release like v0.6.17, ~200 lines for a substantive cycle like v0.6.18).
|
|
80
|
-
|
|
81
|
-
For now, the most recent cycles' release notes are reference templates:
|
|
82
|
-
|
|
83
|
-
- `/tmp/release-v0.6.21.md` — table-ui truncate + FEEDBACK-37 retraction
|
|
84
|
-
- `/tmp/release-v0.6.20.md` — claims-ui-v5 + admin-entity-item
|
|
85
|
-
- `/tmp/release-v0.6.19.md` — claims-ui-v4 batch + corpus remediation
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## §The Slack release post
|
|
90
|
-
|
|
91
|
-
Audience: internal team in #releases or similar. Shorter, more conversational, with the `npm install` snippet at the top so readers can copy-paste immediately.
|
|
92
|
-
|
|
93
|
-
**Standard structure (~40–80 lines):**
|
|
94
|
-
|
|
95
|
-
```markdown
|
|
96
|
-
🚀 **AdiaUI vX.Y.Z** is out — <one-line tagline>
|
|
97
|
-
|
|
98
|
-
\`\`\`bash
|
|
99
|
-
npm i @adia-ai/web-components@X.Y.Z @adia-ai/web-modules@X.Y.Z
|
|
100
|
-
\`\`\`
|
|
101
|
-
|
|
102
|
-
9-package lockstep PATCH cut. <One sentence on scope.>
|
|
103
|
-
|
|
104
|
-
## <emoji> `@adia-ai/<substantive-pkg>` — <subsection-headline>
|
|
105
|
-
|
|
106
|
-
<2–4 sentences. The thing that matters.> Closes <FEEDBACK-NN>.
|
|
107
|
-
|
|
108
|
-
\`\`\`html
|
|
109
|
-
<example markup if useful>
|
|
110
|
-
\`\`\`
|
|
111
|
-
|
|
112
|
-
## <emoji> Ride-along
|
|
113
|
-
|
|
114
|
-
<short>
|
|
115
|
-
|
|
116
|
-
## ✅ Verification
|
|
117
|
-
|
|
118
|
-
<one-line summary of the gate roster status>
|
|
119
|
-
|
|
120
|
-
## 📚 Links
|
|
121
|
-
|
|
122
|
-
- GH Releases: https://github.com/adiahealth/gen-ui-kit/releases (filter `vX.Y.Z`)
|
|
123
|
-
- Live demos: https://ui-kit.exe.xyz/site/playground/gen-ui
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
> **Every `https://ui-kit.exe.xyz/site/<route>` URL cited in notes MUST be verified against `site/sitemap.json` first** (`grep '"path": "/site/…"'`). The docs site is an SPA — unmatched routes return HTTP 200 but render blank, so a curl check won't catch a wrong URL. There is no `/site/gen-ui/` route; the Gen UI Canvas is `/site/playground/gen-ui`. `<theme-panel>` has no standalone page — it's the palette popover on every page. (v0.7.4 incident: both cited URLs were blank.)
|
|
127
|
-
|
|
128
|
-
**Shape rules:**
|
|
129
|
-
|
|
130
|
-
- **Open with the rocket emoji + bold version + tagline.** Slack renders this prominently.
|
|
131
|
-
- **Install matrix immediately under the header (MANDATORY — npm + CDN, both packages).** Every note carries the full install surface, in this order:
|
|
132
|
-
1. **npm** — `npm i @adia-ai/web-components@X.Y.Z @adia-ai/web-modules@X.Y.Z` (BOTH packages, never just web-components).
|
|
133
|
-
2. **CDN** — a jsdelivr block pinned to the `@0.X` minor-range: `web-components@0.X/dist/web-components.min.css` (CSS) + `web-components@0.X/dist/web-components.min.js` (primitives JS), plus the `web-modules@0.X/dist/everything.min.js` kitchen-sink as the all-in-one `<script>` alternative. (CDN bundles ship since v0.6.29/0.6.30.) Operator standard since 2026-05-31. Canonical shape: `.brain/release-notes/0.7.0-release-notes.md`.
|
|
134
|
-
- **Section emojis** — `🔷` (substantive feature), `🛠️` (DX fix), `🎨` (visual), `🧹` (cleanup), `⚠️` (breaking / behavior change), `✅` (verification), `📚` (links). Slack renders these natively.
|
|
135
|
-
- **Skip the per-package grouping** when there's only 1 substantive package. Group by feature instead.
|
|
136
|
-
- **Code blocks for examples** — Slack's modern rich-text composer (since 2020) renders standard markdown fenced code blocks. Memory: `feedback_slack_renders_standard_markdown` — `-` bullets + `[text](URL)` links work natively; legacy `•` + `<URL|text>` mrkdwn isn't needed.
|
|
137
|
-
- **Links section at the bottom** — GH Releases + live demos at minimum.
|
|
138
|
-
|
|
139
|
-
**Anti-patterns:**
|
|
140
|
-
|
|
141
|
-
- Marketing speak ("we're thrilled..."). Engineers read this.
|
|
142
|
-
- Long verification sections. One line is enough for Slack; details live in the GH release.
|
|
143
|
-
- Multi-paragraph "context" sections. If the tagline + 2 sentences don't cover it, the change is too complex for a single Slack post — link to the GH release or a longer write-up.
|
|
144
|
-
|
|
145
|
-
### Where to put the notes
|
|
146
|
-
|
|
147
|
-
**Canonical home: `.brain/release-notes/{version}-release-notes.md`** (committed with the cycle's ledger — durable repo artifact, not `/tmp`, and not `.brain/notes/` which is for working notes/plans). Open with YAML frontmatter per `.brain/release-notes/README.md`:
|
|
148
|
-
|
|
149
|
-
```yaml
|
|
150
|
-
---
|
|
151
|
-
title: AdiaUI v{version} — release notes
|
|
152
|
-
version: {version}
|
|
153
|
-
topic: release-notes
|
|
154
|
-
status: final
|
|
155
|
-
created: <ISO-8601 UTC, from `date -u +%Y-%m-%dT%H:%M:%SZ`>
|
|
156
|
-
last_edited: <same; bump on edit>
|
|
157
|
-
author: adia-ui-release ({model})
|
|
158
|
-
---
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
The Slack post and GH-release body are **derived from** this file (strip frontmatter for the GH body — see `cycle-happy-path.md` §Step 10). If the operator wants a separate Slack-flavored draft, `/tmp/release-vX.Y.Z/slack.md` is fine for that scratch copy, but the `.brain/notes/` file is the source of record. The operator copy-pastes from whichever they prefer. The `release-pack.mjs` orchestrator (Phase 3) will support a `--push-slack <channel>` flag for direct send, but the default remains draft-to-file — the operator owns the announcement decision.
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## §The verification section — what to actually include
|
|
166
|
-
|
|
167
|
-
Standard verification block (paste from the cycle's pre-flight output):
|
|
168
|
-
|
|
169
|
-
- `check:lockstep` line
|
|
170
|
-
- `test:unit` count
|
|
171
|
-
- `typecheck` (one-word "clean")
|
|
172
|
-
- `components --verify` (file count)
|
|
173
|
-
- `verify:traits` (`56/56`)
|
|
174
|
-
- `check:demo-shells` (shell count)
|
|
175
|
-
- `check:lightningcss-build` (CSS file count)
|
|
176
|
-
- `verify:corpus` (`0/0`)
|
|
177
|
-
- `check:embeddings-fresh` (`OK`)
|
|
178
|
-
- `smoke:engines` + `smoke:register-engine`
|
|
179
|
-
- `eval:diff zettel` (cov + avg)
|
|
180
|
-
- `check:links` (file count)
|
|
181
|
-
|
|
182
|
-
For a substantive cycle, also include any NEW gates added in this cycle (e.g. v0.6.12 added `verify:no-legacy-shell-shapes`; first cycle shipping a new gate calls it out).
|
|
183
|
-
|
|
184
|
-
Skip optional gates (`check:card-structure`, `check:drawer-structure`, etc.) unless one of them was the lesson of the cycle.
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## §Cross-references — when to cite siblings
|
|
189
|
-
|
|
190
|
-
A single-version note may need to reference:
|
|
191
|
-
|
|
192
|
-
- **A previous version** when the current cycle retracts / iterates on it. Example: v0.6.21 retracts FEEDBACK-37 from v0.6.20 — the v0.6.21 note has a heads-up paragraph naming v0.6.20.
|
|
193
|
-
- **A future version** when something is deferred. Less common; use sparingly.
|
|
194
|
-
- **A companion plugin/skill version** when the cycle bundles a tooling update alongside the package cut. Format: "Companion: `<companion-plugin>` **vX.Y.Z** — `<one-line>`."
|
|
195
|
-
- **An ADR** when the cycle ratifies an architectural decision. Format: "Post-mortem at ADR-NNNN." Example: v0.6.21 → ADR-0033.
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## §What NOT to put in the notes
|
|
200
|
-
|
|
201
|
-
- Internal-only ticket fields (assignee, status before/after, etc.).
|
|
202
|
-
- Implementation details that don't affect consumers (file rename inside a package, refactor that didn't change API).
|
|
203
|
-
- "Coming soon" announcements about future versions. Notes describe shipped work.
|
|
204
|
-
- Profanity, jokes, or off-topic content. Notes are a permanent artifact attached to a tag.
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
## §When this reference is "done v1"
|
|
209
|
-
|
|
210
|
-
- The `gh-release-notes.template.md` and `slack-release.template.md` templates land in `assets/templates/`.
|
|
211
|
-
- The next 3 cycles' notes are authored from the template + the per-cycle CHANGELOG content with no operator improvisation beyond filling in version-specific details.
|
|
212
|
-
- The Slack post copy-paste shape works in Slack's rich-text composer with zero `mrkdwn` (legacy) overrides.
|