Skip to content

Commit 4908421

Browse files
chore: bump to v0.9.4 — complete migration chain to current
Hotfix surfaced when a project at v0.5.0 updated to v0.9.3 and Claude Code reported the manifest only knew hops up to 0.8.0. The consumer's .add/config.json was bumping past 0.8.0 without any migration step running — harmless today (v0.8 → v0.9.x changes are plugin-internal, no schema migrations were needed) but a silent skip path for any future release that DOES have steps. Patch: - core/templates/migrations.json `plugin_version` advanced 0.8.0 → 0.9.4 - Six new hop entries added (steps: [] — no-op): 0.8.0 → 0.8.1 0.8.1 → 0.9.0 0.9.0 → 0.9.1 0.9.1 → 0.9.2 0.9.2 → 0.9.3 0.9.3 → 0.9.4 - One skip hop: 0.8.0 → 0.9.3 (consumers on 0.8.0 jump straight to current without traversing every intermediate) Process learning: across v0.8.1, v0.9.0, v0.9.1, v0.9.2, v0.9.3 the manifest was not advanced. The version-bump checklist now includes core/templates/migrations.json. Future releases must add a hop entry when bumping core/VERSION. 122 tests across 12 fixture suites — all green at v0.9.4. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent c1d53d5 commit 4908421

67 files changed

Lines changed: 324 additions & 150 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.add/config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://github.com/MountainUnicorn/add/config.schema.json",
3-
"version": "0.9.3",
3+
"version": "0.9.4",
44
"project": {
55
"name": "ADD",
66
"description": "Agent Driven Development \u2014 Claude Code plugin implementing an AI-native SDLC methodology",

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,18 @@ Hotfix. Fixes three findings from the plugin-family release-hardening review bef
2727

2828
_(Nothing yet — tracking items go here between releases.)_
2929

30+
## [0.9.4] — 2026-04-27
31+
32+
**Hotfix.** Completes the migration chain from v0.8.0 onward. Surfaced when a project at v0.5.0 updated to v0.9.3 and Claude Code reported: _"Plugin manifest covers up to 0.8.0; plugin is now 0.9.3 … no 0.8 → 0.9 hop exists."_ The version field on the consumer's `.add/config.json` was bumping past 0.8.0 without any migration hop being traversed — a silent gap that's harmless today (v0.8 → v0.9.x had no required config-schema changes) but would silently skip future migrations that DO have steps.
33+
34+
### Fixed
35+
36+
- **`core/templates/migrations.json`** — manifest's `plugin_version` field advanced from 0.8.0 to 0.9.4. Six new hops added: `0.8.0 → 0.8.1`, `0.8.1 → 0.9.0`, `0.9.0 → 0.9.1`, `0.9.1 → 0.9.2`, `0.9.2 → 0.9.3`, `0.9.3 → 0.9.4` (sequential), plus a `0.8.0 → 0.9.3` skip hop so consumers on v0.8.0 jump straight to current. All hops are no-op (`steps: []`) since v0.8 → v0.9.x changes were plugin-internal — rules, skills, scripts, and hooks flow through `claude plugin update` automatically. The hops exist so the runner can traverse the chain without "no path found" gaps.
37+
38+
### Process learning
39+
40+
The version-bump checklist in maintainer memory now includes `core/templates/migrations.json` as a step. Across v0.8.1, v0.9.0, v0.9.1, v0.9.2, and v0.9.3 the manifest was not advanced; this release patches all five at once. Future releases must add a migration entry (even an empty one) when bumping `core/VERSION`.
41+
3042
## [0.9.3] — 2026-04-26
3143

3244
**v0.9.x polish bundle.** Closes the three plugin-family-review follow-ups that landed as drafts on 2026-04-26 (F-013, F-014, F-017) plus the lessons from a cross-OS portability bug caught in the secrets-scanner CI gate. All three features ship in one signed release rather than three back-to-back tags.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<br>
1111
<br>
1212
<a href="https://github.com/MountainUnicorn/add/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License: MIT"></a>
13-
<a href="#"><img src="https://img.shields.io/badge/version-0.9.3-brightgreen.svg" alt="Version"></a>
13+
<a href="#"><img src="https://img.shields.io/badge/version-0.9.4-brightgreen.svg" alt="Version"></a>
1414
<a href="#"><img src="https://img.shields.io/badge/Claude_Code-plugin-blueviolet.svg" alt="Claude Code Plugin"></a>
1515
</p>
1616

core/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.9.3
1+
0.9.4

core/templates/migrations.json

Lines changed: 65 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schema_version": "1.0.0",
3-
"plugin_version": "0.8.0",
3+
"plugin_version": "0.9.4",
44
"migrations": [
55
{
66
"from": "0.1.0",
@@ -20,7 +20,9 @@
2020
"source_control.default_branch": "main",
2121
"source_control.commit_convention": "conventional",
2222
"source_control.pr_template": true,
23-
"source_control.protected_branches": ["main"]
23+
"source_control.protected_branches": [
24+
"main"
25+
]
2426
}
2527
},
2628
"description": "Add collaboration and source_control sections to config"
@@ -49,7 +51,13 @@
4951
"file": ".add/handoff.md",
5052
"action": "restructure",
5153
"params": {
52-
"required_sections": ["In Progress", "Completed This Session", "Decisions Made", "Blockers", "Next Steps"],
54+
"required_sections": [
55+
"In Progress",
56+
"Completed This Session",
57+
"Decisions Made",
58+
"Blockers",
59+
"Next Steps"
60+
],
5361
"header": "# Session Handoff\n**Written:** {date}"
5462
},
5563
"description": "Ensure handoff has all required sections"
@@ -99,7 +107,7 @@
99107
"from": "0.4.0",
100108
"to": "0.5.0",
101109
"steps": [],
102-
"description": "Plugin restructure no config migration needed, directory layout change only"
110+
"description": "Plugin restructure \u2014 no config migration needed, directory layout change only"
103111
},
104112
{
105113
"from": "0.5.0",
@@ -142,13 +150,13 @@
142150
"description": "Add quality fields for e2e and screenshot protocol (v0.7 compliance rule uses these)"
143151
}
144152
],
145-
"description": "v0.7 architecture extraction (core/ + runtimes/) no config schema break, but fields added for compliance rule"
153+
"description": "v0.7 architecture extraction (core/ + runtimes/) \u2014 no config schema break, but fields added for compliance rule"
146154
},
147155
{
148156
"from": "0.7.0",
149157
"to": "0.7.3",
150158
"steps": [],
151-
"description": "v0.7.1-v0.7.3: hardening, GPG signing, deploy confirm-phrase gate. No config schema changes improvements are in rules and skills only."
159+
"description": "v0.7.1-v0.7.3: hardening, GPG signing, deploy confirm-phrase gate. No config schema changes \u2014 improvements are in rules and skills only."
152160
},
153161
{
154162
"from": "0.7.0",
@@ -171,8 +179,10 @@
171179
"action": "run_hook",
172180
"params": {
173181
"script": "hooks/filter-learnings.sh",
174-
"args": ["{file}"],
175-
"notify": "Generated .add/learnings-active.md — agents now read this compact view instead of the full JSON (72% smaller)."
182+
"args": [
183+
"{file}"
184+
],
185+
"notify": "Generated .add/learnings-active.md \u2014 agents now read this compact view instead of the full JSON (72% smaller)."
176186
},
177187
"description": "Generate pre-filtered active view of project learnings"
178188
},
@@ -181,13 +191,57 @@
181191
"action": "run_hook",
182192
"params": {
183193
"script": "hooks/filter-learnings.sh",
184-
"args": ["{file}"],
185-
"notify": "Generated ~/.claude/add/library-active.md — compact cross-project learning view."
194+
"args": [
195+
"{file}"
196+
],
197+
"notify": "Generated ~/.claude/add/library-active.md \u2014 compact cross-project learning view."
186198
},
187199
"description": "Generate pre-filtered active view of cross-project library"
188200
}
189201
],
190-
"description": "Learnings optimization — v0.7.x projects hop directly to 0.8.0"
202+
"description": "Learnings optimization \u2014 v0.7.x projects hop directly to 0.8.0"
203+
},
204+
{
205+
"from": "0.8.0",
206+
"to": "0.8.1",
207+
"steps": [],
208+
"description": "v0.8.1 plugin-family hotfix \u2014 marketplace manifest schema (F-001), Codex install path namespacing (F-002), test-rewrite bypass closure (F-003). All changes are plugin-side; no consumer config schema changes."
209+
},
210+
{
211+
"from": "0.8.1",
212+
"to": "0.9.0",
213+
"steps": [],
214+
"description": "v0.9.0 M3 pre-GA hardening \u2014 seven feature specs (agents-md-sync, cache-discipline, secrets-handling, telemetry-jsonl, prompt-injection-defense, test-deletion-guardrail, codex-native-skills) and maturity promotion alpha\u2192beta on the dog-food project. Consumer `.add/config.json` is unchanged; new opt-in fields like `agentsMd.gateOnVerify` default to off and don't require migration."
215+
},
216+
{
217+
"from": "0.9.0",
218+
"to": "0.9.1",
219+
"steps": [],
220+
"description": "v0.9.1 beta polish \u2014 F-005 CI guardrails wired, F-011 Claude rule-parity drift fix, F-018 cache-discipline validator false-positive, /add:version cross-runtime path. Plugin-side only."
221+
},
222+
{
223+
"from": "0.9.1",
224+
"to": "0.9.2",
225+
"steps": [],
226+
"description": "v0.9.2 community release (@tdmitruk PR #6) \u2014 on-demand rule/knowledge loading mechanism. Adds `autoload: false` rule frontmatter, `references: []` array on skills + rules, `core/references/` tree. Consumer projects don't have plugin frontmatter to migrate; the mechanism only affects the compiled plugin output that arrives via `claude plugin update`."
227+
},
228+
{
229+
"from": "0.9.2",
230+
"to": "0.9.3",
231+
"steps": [],
232+
"description": "v0.9.3 v0.9.x polish bundle \u2014 F-013 telemetry per-skill reference sweep, F-014 executable secrets scanner with `.secretsignore` + override-trailer + advisory hook, F-017 jq dependency declaration. The `.secretsignore` template is shipped but opt-in; copy it from `templates/.secretsignore.template` to your project root if you want the staged-secret gate active."
233+
},
234+
{
235+
"from": "0.8.0",
236+
"to": "0.9.3",
237+
"steps": [],
238+
"description": "v0.8 \u2192 v0.9.3 skip hop. Any project sitting at v0.8.0 jumps directly to v0.9.3 without intermediate config edits. Covers everything in the v0.8.1, v0.9.0, v0.9.1, v0.9.2, v0.9.3 hop descriptions above; no field migrations are required because v0.9.x changes were plugin-internal."
239+
},
240+
{
241+
"from": "0.9.3",
242+
"to": "0.9.4",
243+
"steps": [],
244+
"description": "v0.9.4 hotfix \u2014 completes the migration chain from v0.8.0 onward. Adds the missing hops 0.8.0 \u2192 0.8.1 \u2192 0.9.0 \u2192 0.9.1 \u2192 0.9.2 \u2192 0.9.3 plus the 0.8.0 \u2192 0.9.3 skip hop, so projects that updated the plugin without traversing each intermediate release reach 0.9.3 cleanly. No consumer config changes."
191245
}
192246
]
193247
}

dist/codex/.agents/skills/add-agents-md/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
name: add-agents-md
3-
description: "[ADD v0.9.3] Generate or sync a portable AGENTS.md from ADD project state — writes, checks drift, or merges with hand-curated content"
3+
description: "[ADD v0.9.4] Generate or sync a portable AGENTS.md from ADD project state — writes, checks drift, or merges with hand-curated content"
44
argument-hint: "[--write|--check|--merge|--import] [--dry-run]"
55
---
66

7-
# ADD AGENTS.md Skill v0.9.3
7+
# ADD AGENTS.md Skill v0.9.4
88

99
Generate a portable [`AGENTS.md`](https://agents.md) at project root from the project's `.add/` state. `AGENTS.md` is the cross-tool open standard for project-level agent instructions — any agent (Claude Code, Cursor, Codex CLI, Windsurf, Amp, Devin, Copilot) will read it on session start. Publishing one lets mixed-toolchain teams respect the same invariants without installing ADD.
1010

dist/codex/.agents/skills/add-away/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: add-away
3-
description: "[ADD v0.9.3] Declare absence — get autonomous work plan for the duration"
3+
description: "[ADD v0.9.4] Declare absence — get autonomous work plan for the duration"
44
argument-hint: "[duration, e.g. '4 hours', '30 minutes', 'end of day']"
55
---
66

@@ -26,7 +26,7 @@ argument-hint: "[duration, e.g. '4 hours', '30 minutes', 'end of day']"
2626
2727
---
2828

29-
# ADD Away Command v0.9.3
29+
# ADD Away Command v0.9.4
3030

3131
The human is stepping away. Establish what work can proceed autonomously and what must wait.
3232

dist/codex/.agents/skills/add-back/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
name: add-back
3-
description: "[ADD v0.9.3] Return from absence — get briefing on autonomous work"
3+
description: "[ADD v0.9.4] Return from absence — get briefing on autonomous work"
44
---
55

6-
# ADD Back Command v0.9.3
6+
# ADD Back Command v0.9.4
77

88
The human has returned. Provide a concise briefing on what happened during their absence.
99

dist/codex/.agents/skills/add-brand-update/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: add-brand-update
3-
description: "[ADD v0.9.3] Update project branding — new colors, fonts, tone, audit artifacts"
3+
description: "[ADD v0.9.4] Update project branding — new colors, fonts, tone, audit artifacts"
44
---
55

66
<!-- ADD AskUserQuestion shim (Codex) -->
@@ -25,7 +25,7 @@ description: "[ADD v0.9.3] Update project branding — new colors, fonts, tone,
2525
2626
---
2727

28-
# ADD Brand Update Command v0.9.3
28+
# ADD Brand Update Command v0.9.4
2929

3030
Update the project's branding configuration with new materials and audit existing generated artifacts for brand consistency. Optionally apply fixes to bring artifacts in line with the new brand.
3131

dist/codex/.agents/skills/add-brand/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
name: add-brand
3-
description: "[ADD v0.9.3] View project branding — accent color, palette, drift detection, image gen status"
3+
description: "[ADD v0.9.4] View project branding — accent color, palette, drift detection, image gen status"
44
---
55

6-
# ADD Brand Command v0.9.3
6+
# ADD Brand Command v0.9.4
77

88
Display the current branding configuration for this ADD-managed project. Shows accent color, palette, fonts, tone, where branding is applied, detects brand drift in generated artifacts, and reports image generation capability status.
99

0 commit comments

Comments
 (0)