You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v3.2.0 advertised "legacyDeletions 16→23" but the kit shipped with only 16 —
vc-publish bumped the manifest version and copied nothing else, silently
stranding the deprecation ledger. The kit's AGENTS.md likewise still taught the
deprecated reports/references sibling-dir layout.
- vc-manifest.json: legacyDeletions 16→23 (the 7 reports/references stale-dir
paths now ship, so downstream vc-update cleans them up as intended)
- AGENTS.md: task-folder convention + safe legacy-dir migration guidance
- vc-publish SKILL.md + reference: explicit manifest reconciliation — version
bump + legacyDeletions auto-sync dev→kit + field-level drift report for all
other fields (root-cause fix so no manifest field silently desyncs again)
- README version badge + CHANGELOG 3.2.1 entry
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: .claude/skills/vc-publish/SKILL.md
+47-2Lines changed: 47 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -144,7 +144,45 @@ Version bump semantics:
144
144
- Absolute paths (`/Users/...`)
145
145
- Product name references (the project's product name and repo/directory name)
146
146
5. Verify the result is harness-only methodology with no project leaks.
147
-
- Update `vc-manifest.json`: bump `version` field per the chosen bump type. **No other manifest changes needed** -- glob patterns are stable, new files are automatically included.
147
+
-**Manifest reconciliation** (`vc-manifest.json`) — the manifest is NOT a normally-copied
148
+
managed file (it is dev-only on one side and kit-resolved on the other), so its fields do
149
+
NOT auto-sync. Handle it explicitly:
150
+
1.**`version`**: bump per the chosen bump type. Kit-authoritative.
151
+
2.**`legacyDeletions`** (the deprecation ledger): **dev is authoritative and always the
152
+
superset.** Whenever dev removes a skill/dir/file from the harness it appends the path
153
+
here so downstream projects clean it up on their next `vc-update`. Set
154
+
`kit.legacyDeletions = dev.legacyDeletions` (preserve dev order). This field is a literal
155
+
path array, NOT a glob — it genuinely changes every time the harness deprecates something,
156
+
so it MUST be reconciled at every publish. (Historically this was skipped, which silently
157
+
stranded the kit with stale deletions — never skip it.)
158
+
3.**All OTHER non-version fields** (`include`, `exclude`, `strip`, `merge`, `copyIfMissing`,
159
+
`symlinks`, `kitOnly`): these legitimately diverge — the kit carries packaging-only rules
160
+
(e.g. excluding `**/*.test.mjs` and `__tests__/**` so tests are not shipped to users;
161
+
`kitOnly` tooling like `compute-sync-plan.mjs`). **Do NOT blindly overwrite them** — a
162
+
blanket dev→kit copy would strip the kit's test-excludes and ship test files. Instead run
163
+
the **field-level drift report** below and reconcile any unexpected drift by hand.
164
+
165
+
Drift-report command (run during Step 4 summary AND here before writing):
- **No manifest array maintenance.** The glob patterns in`include`/`exclude`/`kitOnly` are stable. Adding a new skill or agent requires zero manifest edits. The only manifest change at publish time is the version bump.
349
+
- **Glob arrays are stable; the deprecation ledger is not.** The glob patterns in
350
+
`include`/`exclude`/`kitOnly` are stable — adding a new skill or agent requires zero manifest
351
+
edits (new files are auto-included by the globs). BUT `legacyDeletions` is a literal path array,
352
+
not a glob: it grows every time the harness deprecates a skill/dir/file, and it MUST be
353
+
reconciled dev→kit at every publish (see Step 7 Manifest reconciliation). Skipping it strands
354
+
the kit with a stale deletion ledger so downstream `vc-update`s never clean up the newly
355
+
deprecated dirs. So publish-time manifest edits are: (1) version bump, (2) `legacyDeletions`
356
+
sync, (3) conscious reconciliation of any other field flagged by the drift report.
312
357
- **Resolver-driven diffing.** The kit repo is resolved via `resolve-manifest.mjs` (which requires `vc-manifest.json` in its `--root`). The dev-side file comparison is handled inside `compute-sync-plan.mjs`, which reads the manifest from `--kit-root` (always the kit checkout). Dev repos do not carry `vc-manifest.json`.
313
358
- **No `managed`/`managedDirs` arrays to update.** The old workflow of adding new files to these arrays is eliminated.
Copy file name to clipboardExpand all lines: .claude/skills/vc-publish/references/vc-publish.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,7 +42,7 @@ The `--json` output provides all metadata needed for diffing:
42
42
}
43
43
```
44
44
45
-
**Key change from v1.0:** The publish step no longer needs to update `managed`/`managedDirs` arrays in the manifest. Glob patterns are stable -- new files are automatically included. The only manifest edit at publish time is the version bump.
45
+
**Key change from v1.0:** The publish step no longer needs to update `managed`/`managedDirs` arrays in the manifest. Glob patterns (`include`/`exclude`/`kitOnly`) are stable -- new files are automatically included. Manifest edits at publish time are: (1) version bump, (2) `legacyDeletions` sync dev→kit (the deprecation ledger is a literal path array, NOT a glob -- it grows on every harness deprecation and must be reconciled every publish), and (3) conscious reconciliation of any other field flagged by the Step 7 drift report. Do NOT blanket-copy the dev manifest over the kit's -- the kit carries packaging-only deltas (test-file excludes, kit-only tooling) that must survive.
-`references/` - Feature-specific research and reference documents
215
+
216
+
Task-folder convention:
217
+
- Reports, references, specs, and plans live inside the task folder under `active/` or `completed/`
218
+
- Legacy sibling `reports/` and `references/` dirs may still appear during migration, but `vc-setup` and `vc-update` should migrate safe cases into task folders and remove emptied legacy dirs
217
219
218
220
See `process/context/all-context.md` for current feature list.
219
221
220
-
Routing rule: When a feature has 5+ artifacts, store new plans/reports in
221
-
`process/features/{feature}/`. General or cross-cutting items go in
222
-
`process/general-plans/` with `reports/` and `references/` inside.
222
+
Routing rule: When a feature has 5+ artifacts, store new plans/reports/references/specs in
- When the selected task folder is known, pass that exact `active/{slug}_{date}/` or `completed/{slug}_{date}/` path as the authoritative artifact location
229
231
230
232
#### Feature Folder Lifecycle
231
233
@@ -242,24 +244,21 @@ At plan creation time, use this decision logic:
242
244
243
245
Promotion protocol from general to feature folder:
244
246
245
-
1. Create `process/features/{new-feature}/` with subdirs: `active/`, `completed/`, `backlog/`, `reports/`, `references/`
246
-
2. Move related artifacts from `process/general-plans/`, including reports and references, into the new feature's subdirs
247
+
1. Create `process/features/{new-feature}/` with subdirs: `active/`, `completed/`, `backlog/`
248
+
2. Move related artifacts from `process/general-plans/` into the new feature's task folders; migrate safe legacy `reports/` and `references/` artifacts into those task folders and remove emptied legacy dirs
247
249
3. Update the Current features list above
248
250
4. Inform subagents of the new feature scope going forward
249
251
250
252
Feature list maintenance: The Current features list above must be updated whenever a new
251
253
feature folder is created or an empty one is removed. The `vc-update-process-agent` checks for
252
254
drift between `ls process/features/` and this list during Phase 2.
253
255
254
-
### `process/general-plans/reports/`
255
-
256
-
General/cross-cutting operational reports. Feature-specific reports live in
257
-
`process/features/{feature}/reports/`.
258
-
259
-
### `process/general-plans/references/`
256
+
### Legacy sibling dirs
260
257
261
-
General/cross-cutting research outputs. Feature-specific references live in
Copy file name to clipboardExpand all lines: CHANGELOG.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,17 @@
2
2
3
3
All notable changes to vibecode-pro-max-kit are documented in this file.
4
4
5
+
## [3.2.1] - 2026-06-20
6
+
7
+
### Fixed
8
+
9
+
-`legacyDeletions` ledger now actually shipped: the kit was stranded at 16 entries while v3.2.0's changelog advertised 23. The 7 deprecated `reports/`/`references/` stale-dir paths (`process/general-plans/reports`, `process/general-plans/references`, `process/development-protocols/references`, and 4 `_seeds` reports/references paths) are now present, so a downstream `vc-update` will clean them up as intended.
10
+
-`AGENTS.md` task-folder convention propagated: the kit's `AGENTS.md` still taught the deprecated `reports/`/`references/` sibling-dir layout (instructing agents to *create* those dirs). It now describes the task-folder convention and safe legacy-dir migration, matching the seed guides and `vc-setup`/`vc-update`.
11
+
12
+
### Changed
13
+
14
+
-`vc-publish` no longer silently drops non-version manifest fields. The publish flow now reconciles `vc-manifest.json` explicitly: `version` is bumped, `legacyDeletions` (the deprecation ledger — a literal path array, not a glob) is auto-synced dev→kit every publish, and all other fields run through a field-level drift report so packaging deltas (test-file excludes, kit-only tooling) are reconciled consciously instead of silently desyncing. This is the root-cause fix for the two misses above.
0 commit comments