release-skill 0.2.3 → 0.2.4

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 (53) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codebuddy-plugin/plugin.json +1 -1
  4. package/.codex-plugin/plugin.json +2 -2
  5. package/.kimi-plugin/plugin.json +1 -1
  6. package/CHANGELOG.md +22 -0
  7. package/CONTRIBUTING.md +27 -0
  8. package/INSTALL.md +95 -139
  9. package/INSTALL.zh-CN.md +70 -121
  10. package/README.md +264 -913
  11. package/README.zh-CN.md +222 -535
  12. package/adapters/claude/.claude-plugin/marketplace.json +1 -1
  13. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  14. package/adapters/claude/bin/release-skill.bundle.mjs +19054 -17573
  15. package/adapters/claude/schemas/release-plan.schema.json +137 -0
  16. package/adapters/claude/schemas/release-project.schema.json +93 -0
  17. package/adapters/claude/schemas/release-run.schema.json +70 -2
  18. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  19. package/adapters/codex/bin/release-skill.bundle.mjs +19054 -17573
  20. package/adapters/codex/schemas/release-plan.schema.json +137 -0
  21. package/adapters/codex/schemas/release-project.schema.json +93 -0
  22. package/adapters/codex/schemas/release-run.schema.json +70 -2
  23. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  24. package/adapters/kimi/bin/release-skill.bundle.mjs +19054 -17573
  25. package/adapters/kimi/schemas/release-plan.schema.json +137 -0
  26. package/adapters/kimi/schemas/release-project.schema.json +93 -0
  27. package/adapters/kimi/schemas/release-run.schema.json +70 -2
  28. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  29. package/adapters/workbuddy/bin/release-skill.bundle.mjs +19054 -17573
  30. package/adapters/workbuddy/schemas/release-plan.schema.json +137 -0
  31. package/adapters/workbuddy/schemas/release-project.schema.json +93 -0
  32. package/adapters/workbuddy/schemas/release-run.schema.json +70 -2
  33. package/bin/release-skill.bundle.mjs +19054 -17573
  34. package/package.json +1 -1
  35. package/schemas/release-plan.schema.json +137 -0
  36. package/schemas/release-project.schema.json +93 -0
  37. package/schemas/release-run.schema.json +70 -2
  38. package/src/adapters/plugin-marketplace.mjs +1190 -435
  39. package/src/commands/prepare.mjs +380 -40
  40. package/src/commands/publish.mjs +107 -75
  41. package/src/commands/reconcile.mjs +92 -327
  42. package/src/commands/setup.mjs +148 -20
  43. package/src/commands/verify.mjs +304 -20
  44. package/src/core/baseline.mjs +8 -1
  45. package/src/core/checkpoints.mjs +50 -7
  46. package/src/core/config.mjs +15 -0
  47. package/src/core/errors.mjs +2 -0
  48. package/src/core/installation-contract.mjs +341 -0
  49. package/src/core/plan.mjs +129 -6
  50. package/src/platforms/codebuddy.mjs +193 -280
  51. package/src/platforms/codex.mjs +369 -0
  52. package/src/platforms/kimi.mjs +164 -119
  53. package/src/platforms/registry.mjs +24 -6
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.2.3",
12
+ "version": "0.2.4",
13
13
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification"
14
14
  }
15
15
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -19,7 +19,7 @@
19
19
  ],
20
20
  "defaultPrompt": [
21
21
  "Assess this project for release readiness.",
22
- "Prepare a release plan for version 0.2.3.",
22
+ "Prepare a release plan for version 0.2.4.",
23
23
  "Help me understand the release workflow."
24
24
  ]
25
25
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.2.4 locale=en baseline=sha256:b0ad6c897df808a11a2630d1565327ff5092e407dd004dc71bc43b954cbf88a6 -->
4
+ ## [0.2.4] - 2026-07-28
5
+
6
+ v0.2.4 is a documentation and marketplace-source remediation release. It corrects the default marketplace source to the bundled-family repository (ifoohoo/release-skill), eliminates stale v0.1.9 residuals, improves README bilingual consistency and navigation, and strengthens anti-regression gates for version drift.
7
+
8
+ ### Changed
9
+
10
+ - **Default marketplace source corrected**: all installation documentation now uses the bundled-family repository `ifoohoo/release-skill` instead of the external marketplace `ifoohoo/artifact-skill-set`. Claude Code install command is now `/plugin marketplace add ifoohoo/release-skill` with `release-skill@release-skill`.
11
+ - **README restructured for readability**: both EN and ZH READMEs now include a table of contents, Documentation navigation section, and reorganized chapter flow (Quick start moved before preservation contract). Significantly shorter than before.
12
+ - **Positioning sentences completed**: README and root workspace README now list all supported platforms (Claude Code, CodeBuddy, WorkBuddy, Codex, Kimi Code).
13
+ - **Anti-regression gate expanded**: `sync-version.mjs` TEXT_TARGETS now covers the safe-first-command version statement in both EN and ZH READMEs, preventing future v0.1.9-type drift.
14
+
15
+ ### Fixed
16
+
17
+ - **v0.1.9 residual eliminated**: the safe-first-command block in both READMEs now correctly references the current version (was stuck at v0.1.9).
18
+ - **Stale counting removed**: replaced fragile 'All four plugin hosts' / '四种插件宿主' with 'All supported plugin hosts' / '各插件宿主'.
19
+ - **Root README boundary corrected**: clarified that README/INSTALL/CHANGELOG are human-maintained source files, while references/schemas/adapters/skills are generated artifacts.
20
+ - **CONTRIBUTING updated**: added 'Do not edit generated files' section documenting the authority source and regeneration workflow for references/, schemas/, adapters/, and skills/.
21
+ - **AGENTS.md language rule adjusted**: governance rules file may use English; user-facing documentation remains Chinese.
22
+ <!-- release-skill:changelog:end version=0.2.4 locale=en -->
23
+
24
+
3
25
  <!-- release-skill:changelog:start version=0.2.3 locale=en baseline=sha256:1bc1839f9d2de5481a9edc7748722c02c5c9369d2034f8c6495f6dd00a392339 -->
4
26
  ## [0.2.3] - 2026-07-26
5
27
 
package/CONTRIBUTING.md CHANGED
@@ -19,6 +19,33 @@ Thank you for your interest in contributing to release-skill.
19
19
  - `references/` - Rendered reference documentation.
20
20
  - `test/` - Test suite.
21
21
 
22
+ ## Do not edit generated files
23
+
24
+ The following directories contain **generated artifacts** whose authoritative
25
+ source lives elsewhere. Do not edit them directly; changes will be overwritten
26
+ on the next regeneration.
27
+
28
+ | Generated directory | Authoritative source | Regeneration command |
29
+ |---|---|---|
30
+ | `references/` | `standards/` (workspace root) | `pnpm public:render` (workspace root) |
31
+ | `schemas/` | `standards/` (workspace root) | `pnpm public:render` (workspace root) |
32
+ | `adapters/` | `src/` + `skills-src/` | `npm run build:adapters` (this directory) |
33
+ | `skills/` | `skills-src/` | `npm run sync:skills` (this directory) |
34
+
35
+ To update a generated artifact:
36
+
37
+ 1. Edit the authoritative source (e.g., `standards/01-state-machine.md` for
38
+ `references/01-state-machine.md`, or `skills-src/release-help/SKILL.md` for
39
+ `skills/release-help/SKILL.md`).
40
+ 2. Run the regeneration command.
41
+ 3. Verify with `pnpm public:verify` (workspace root) or
42
+ `npm run build:adapters:check` / `npm run sync:skills:check` (this directory).
43
+
44
+ **README.md**, **INSTALL.md**, and **CHANGELOG.md** are human-maintained source
45
+ files. Their managed regions are refreshed by the `docs refresh` command using
46
+ structured release-notes YAML; do not hand-edit content between managed-region
47
+ markers.
48
+
22
49
  ## Development Guidelines
23
50
 
24
51
  - All code uses ESM (`.mjs` extension) on Node.js 22+.
package/INSTALL.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.2.3 -->
5
+ <!-- release-skill:release-version: 0.2.4 -->
6
6
  ## Prerequisites
7
7
 
8
8
  - Node.js 22.0.0 or later
@@ -35,44 +35,34 @@ release-skill help
35
35
 
36
36
  You should see the version number and the list of available commands.
37
37
 
38
- ## Install as a plugin (unified marketplace — recommended)
39
-
40
- All four supported plugin hosts install release-skill from the unified
41
- marketplace [ifoohoo/artifact-skill-set](https://github.com/ifoohoo/artifact-skill-set),
42
- which publishes the Claude Code, CodeBuddy/WorkBuddy, Codex, and Kimi Code
43
- manifests for the same release. Add the marketplace once, then install the
44
- plugin:
45
-
46
- > **External independent marketplace model.** `ifoohoo/artifact-skill-set` is an
47
- > external independent marketplace: the plugin repository
48
- > (`ifoohoo/release-skill`) carries only the plugin manifest
49
- > (`.claude-plugin/plugin.json`, `.codex-plugin/plugin.json`, ), while the
50
- > marketplace index (`marketplace.json`) is centralized in the external
51
- > marketplace repository. When a release unit's plugin distribution declares
52
- > `marketplaceRepo`, `prepare --online --production` freezes the external
53
- > marketplace HEAD — Codex pins the commit sha (strong freeze), Claude pins the
54
- > default branch name (weak freeze) — and verifies the installed payload against
55
- > the unit's own frozen snapshot whole-tree (contract `external-marketplace-v1`).
56
- >
57
- > **Release ordering (marketplace before plugin).** Because the install targets
58
- > the external marketplace, the marketplace index must be versioned and published
59
- > **first** — its `release-skill` entry version must equal the target release
60
- > version (the Claude form verifies this entry) — before
61
- > `prepare --online --production` can freeze a marketplace sha that contains that
62
- > entry. See `references/06-adapter-contract.md` §2.3/§2.4.
38
+ ## Install as a plugin (bundled-family marketplace — recommended)
39
+
40
+ Claude Code, CodeBuddy, WorkBuddy, and Codex install release-skill from the
41
+ bundled-family marketplace [ifoohoo/release-skill](https://github.com/ifoohoo/release-skill).
42
+ The plugin repository itself carries the marketplace manifest
43
+ (`.claude-plugin/marketplace.json`), so no external marketplace is required.
44
+ Kimi Code has no marketplace install API — see the
45
+ [Kimi Code section](#install-as-a-kimi-code-plugin). Add the marketplace once,
46
+ then install the plugin:
47
+
48
+ > **Prerequisite: GitHub access.** The `owner/repo` shorthand makes Claude Code
49
+ > clone via `git@github.com:...` (SSH), which requires a GitHub public key
50
+ > configured on this machine. If you do not use SSH, either pass the full HTTPS
51
+ > URL `/plugin marketplace add https://github.com/ifoohoo/release-skill` or
52
+ > set `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.
63
53
 
64
54
  **Claude Code** (interactive session):
65
55
 
66
56
  ```
67
- /plugin marketplace add ifoohoo/artifact-skill-set
68
- /plugin install release-skill@artifact-skill-set
57
+ /plugin marketplace add ifoohoo/release-skill
58
+ /plugin install release-skill@release-skill
69
59
  ```
70
60
 
71
61
  **CodeBuddy / WorkBuddy:**
72
62
 
73
63
  ```bash
74
- codebuddy plugin marketplace add ifoohoo/artifact-skill-set
75
- codebuddy plugin install release-skill@artifact-skill-set
64
+ codebuddy plugin marketplace add ifoohoo/release-skill
65
+ codebuddy plugin install release-skill@release-skill
76
66
  ```
77
67
 
78
68
  WorkBuddy desktop installs only through a registered marketplace: after the
@@ -81,19 +71,16 @@ WorkBuddy desktop installs only through a registered marketplace: after the
81
71
  **OpenAI Codex:**
82
72
 
83
73
  ```bash
84
- codex plugin marketplace add ifoohoo/artifact-skill-set
74
+ codex plugin marketplace add ifoohoo/release-skill
85
75
  ```
86
76
 
87
77
  Then install `release-skill` from the interactive `/plugins` browser.
88
78
 
89
79
  **Kimi Code** (interactive session):
90
80
 
91
- ```
92
- /plugins marketplace https://raw.githubusercontent.com/ifoohoo/artifact-skill-set/main/kimi-marketplace.json
93
- ```
94
-
95
- Or point `KIMI_CODE_PLUGIN_MARKETPLACE_URL` at the same URL before launching.
96
- Then install `release-skill` from the `/plugins` panel.
81
+ Kimi Code has no marketplace install API. Installation is manual, pinned to a
82
+ specific release tag. See the [Kimi Code section](#install-as-a-kimi-code-plugin)
83
+ for the version-pinned manual install and attestation closed loop.
97
84
 
98
85
  ### Alternative: direct repository install (advanced)
99
86
 
@@ -126,64 +113,51 @@ non-interactive install API**. release-skill therefore models Kimi installation
126
113
  as a version-pinned **manual** install plus trusted observation/attestation:
127
114
  `publish`/`verify` never auto-install Kimi plugins. The closed loop is:
128
115
 
129
- 1. `publish` performs the automated writes (Git branch/tag, npm, GitHub
130
- Release), then reaches the `kimi-marketplace-install` checkpoint. Because
131
- there is no scriptable install, that checkpoint **fails closed** and the run
132
- lands in `PARTIAL` the successful automated writes are NOT undone. The
133
- checkpoint observation (and the requirement file below) gives the isolated
134
- `KIMI_CODE_HOME`, the pinned install URL, and the attestation path.
116
+ 1. `publish` performs the automated remote writes (Git branch/tag, npm, GitHub
117
+ Release). The `kimi-marketplace-install` action is recorded as `DEFERRED`
118
+ during publish the marketplace adapter is not called, and the automated
119
+ install path fails closed. The run enters `PUBLISHED` after all remote
120
+ permanent writes are consistent. The run record gives the pinned install URL
121
+ and the attestation path.
135
122
  2. Read the requirement at
136
123
  `<root>/.release-skill/kimi-attestations/<planDigest>/<plugin>/release-skill-kimi-manual-install.json`.
137
- 3. Launch Kimi Code with that **isolated** home so the managed copy lands inside
138
- it (do not use your ordinary `~/.kimi-code`):
139
-
140
- ```
141
- HOME=<kimiCodeHome> KIMI_CODE_HOME=<kimiCodeHome> kimi
142
- ```
143
-
144
- The plugin installs to `<kimiCodeHome>/plugins/managed/<plugin>/`.
145
- 4. In that isolated session, install from the release tag pinned to the exact
124
+ 3. Launch Kimi Code and install from the release tag pinned to the exact
146
125
  version (never the bare repository URL, which installs the latest release or
147
- default branch), confirm the trust prompt, then reload:
126
+ default branch), confirm the trust prompt, then reload. Before writing the
127
+ attestation you MUST confirm the installed plugin manifest version equals the
128
+ frozen version; otherwise do NOT issue an attestation.
148
129
 
149
130
  ```
150
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.2.3
131
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.2.4
151
132
  /plugins reload
152
133
  ```
153
134
 
154
- 5. Write the attestation JSON to
135
+ 4. Write the attestation JSON to
155
136
  `<root>/.release-skill/kimi-attestations/<planDigest>/<plugin>/release-skill-kimi-attestation.json`.
156
- `planDigest` MUST be the frozen **plan** digest; `payloadDigest` MUST be the
157
- frozen snapshot **payload** digest; `installPath` MUST be the isolated
158
- managed directory above; `attestedAt` must not be in the future and
159
- `expiresAt` must be within 24 hours of `attestedAt`. Example:
137
+ `planDigest` MUST be the frozen **plan** digest; `result` accepts only
138
+ `"passed"` or `"failed"`. Example:
160
139
 
161
140
  ```json
162
141
  {
163
- "consumer": "kimi",
164
- "plugin": "release-skill",
165
- "version": "0.2.3",
166
- "entrySkill": "release-help",
167
- "repo": "ifoohoo/release-skill",
168
- "ref": "release-skill-v0.2.3",
169
- "installPath": "<kimiCodeHome>/plugins/managed/release-skill",
142
+ "platform": "kimi",
143
+ "version": "0.2.4",
170
144
  "planDigest": "<64-hex frozen plan digest>",
171
- "payloadDigest": "<64-hex frozen snapshot payload digest>",
172
- "attestedBy": "<person responsible>",
173
- "attestedAt": "2026-07-23T00:00:00.000Z",
174
- "expiresAt": "2026-07-23T12:00:00.000Z"
145
+ "result": "passed",
146
+ "actor": "<person who confirmed>",
147
+ "confirmedAt": "2026-07-23T00:00:00.000Z",
148
+ "note": "<optional note>"
175
149
  }
176
150
  ```
177
151
 
178
- 6. Run `release-skill reconcile --run <publish-run>` (promotes `PARTIAL`
179
- `PUBLISHED`) and then `release-skill verify --run <reconcile-run>` (→
180
- `VERIFIED`). Both read the attestation from the same plan-digest-keyed
181
- directory, so their fresh run directories do not lose the proof.
152
+ 5. Run `release-skill verify --run <publish-run>` (→
153
+ `VERIFIED`). The verify command reads the attestation from the same
154
+ plan-digest-keyed directory, so the fresh run directory does not lose the proof.
182
155
 
183
- Installing into the ordinary `~/.kimi-code` is **not** acceptable proof: the
184
- attested `installPath` must resolve inside the requirement's isolated
185
- `KIMI_CODE_HOME` managed root, otherwise verification fails closed and the Kimi
186
- unit never reaches `VERIFIED`.
156
+ When a platform has no reliable automated verification, the bound human
157
+ `passed`/`failed` attestation is authoritative. The `verify` command consumes
158
+ the human result and transitions to `VERIFIED` on success. However, identity,
159
+ version, payload, marketplace source, or installation contract inconsistencies
160
+ MUST NOT be overridden by a human `passed` result.
187
161
 
188
162
  ## Install as a CodeBuddy/WorkBuddy plugin
189
163
 
@@ -211,83 +185,65 @@ CodeBuddy installation as a **manual** install plus trusted observation/
211
185
  attestation (the same capability gap and closed loop as Kimi Code):
212
186
  `publish`/`verify` never auto-install CodeBuddy plugins. The closed loop is:
213
187
 
214
- 1. `publish` performs the automated writes (Git branch/tag, npm, GitHub
215
- Release), then reaches the `codebuddy-marketplace-install` checkpoint. Because
216
- the install cannot pin a frozen ref, that checkpoint **fails closed** and the
217
- run lands in `PARTIAL` the successful automated writes are NOT undone. The
218
- checkpoint observation (and the requirement file below) names both install
219
- channels, the unified marketplace, the isolated CLI home, and the attestation
220
- path.
188
+ 1. `publish` performs the automated remote writes (Git branch/tag, npm, GitHub
189
+ Release). The `codebuddy-marketplace-install` action is recorded as `DEFERRED`
190
+ during publish the marketplace adapter is not called, and the automated
191
+ install path fails closed. The run enters `PUBLISHED` after all remote
192
+ permanent writes are consistent. The run record gives the attestation path.
221
193
  2. Read the requirement at
222
194
  `<root>/.release-skill/codebuddy-attestations/<planDigest>/<plugin>/release-skill-codebuddy-manual-install.json`.
223
- 3. Install release-skill from the unified marketplace `artifact-skill-set`
224
- (https://github.com/ifoohoo/artifact-skill-set) through ONE of two channels:
225
-
226
- **Primary path (WorkBuddy desktop):** install release-skill from the plugin
227
- panel, then confirm `~/.workbuddy/settings.json` `enabledPlugins` contains
228
- `"release-skill@artifact-skill-set": true`. The plugin lands at
229
- `~/.workbuddy/plugins/marketplaces/artifact-skill-set/plugins/release-skill/`.
230
-
231
- **Alternate path (bundled codebuddy CLI, isolatable):** run the CLI with the
232
- **isolated** home from the requirement so the clone lands inside it (do not use
233
- your ordinary `~/.codebuddy`):
234
-
235
- ```
236
- HOME="<codebuddyHome>" <codebuddy binary> plugin marketplace add https://github.com/ifoohoo/artifact-skill-set
237
- HOME="<codebuddyHome>" <codebuddy binary> plugin install release-skill@artifact-skill-set
238
- ```
239
-
240
- The CLI ships with WorkBuddy.app (macOS known path
241
- `/Applications/WorkBuddy.app/Contents/Resources/app.asar.unpacked/cli/bin/codebuddy`).
242
- The plugin lands at
243
- `<codebuddyHome>/.codebuddy/plugins/marketplaces/artifact-skill-set/plugins/release-skill/`.
244
- 4. **Ref limitation warning:** a codebuddy install tracks the marketplace default
245
- branch and CANNOT be pinned to the frozen ref. Before writing the attestation
246
- you MUST confirm the installed plugin manifest version equals the frozen
247
- version `0.2.3`; otherwise do NOT issue an attestation.
248
- 5. Write the attestation JSON to
195
+ 3. Install release-skill from the bundled-family marketplace `ifoohoo/release-skill`
196
+ (https://github.com/ifoohoo/release-skill). Before writing the
197
+ attestation you MUST confirm the installed plugin manifest version equals the
198
+ frozen version; otherwise do NOT issue an attestation.
199
+ 4. Write the attestation JSON to
249
200
  `<root>/.release-skill/codebuddy-attestations/<planDigest>/<plugin>/release-skill-codebuddy-attestation.json`.
250
- `planDigest` MUST be the frozen **plan** digest; `payloadDigest` MUST be the
251
- frozen snapshot **payload** digest; `installChannel` MUST be `"desktop"` or
252
- `"cli"`; `marketplace` MUST be `artifact-skill-set`; `installPath` MUST be the
253
- actual installed plugin directory for the chosen channel; `attestedAt` must not
254
- be in the future and `expiresAt` must be within 24 hours of `attestedAt`.
255
- Example:
201
+ `planDigest` MUST be the frozen **plan** digest; `result` accepts only
202
+ `"passed"` or `"failed"`. Example:
256
203
 
257
204
  ```json
258
205
  {
259
- "consumer": "codebuddy",
260
- "plugin": "release-skill",
261
- "version": "0.2.3",
262
- "entrySkill": "release-help",
263
- "repo": "ifoohoo/release-skill",
264
- "ref": "release-skill-v0.2.3",
265
- "marketplace": "artifact-skill-set",
266
- "installChannel": "desktop",
267
- "installPath": "~/.workbuddy/plugins/marketplaces/artifact-skill-set/plugins/release-skill",
206
+ "platform": "codebuddy",
207
+ "version": "0.2.4",
268
208
  "planDigest": "<64-hex frozen plan digest>",
269
- "payloadDigest": "<64-hex frozen snapshot payload digest>",
270
- "attestedBy": "<person responsible>",
271
- "attestedAt": "2026-07-23T00:00:00.000Z",
272
- "expiresAt": "2026-07-23T12:00:00.000Z"
209
+ "result": "passed",
210
+ "actor": "<person who confirmed>",
211
+ "confirmedAt": "2026-07-23T00:00:00.000Z",
212
+ "note": "<optional note>"
273
213
  }
274
214
  ```
275
215
 
276
- 6. Run `release-skill reconcile --run <publish-run>` (promotes `PARTIAL`
277
- `PUBLISHED`) and then `release-skill verify --run <reconcile-run>` (→
278
- `VERIFIED`). Both read the attestation from the same plan-digest-keyed
279
- directory, so their fresh run directories do not lose the proof.
216
+ 5. Run `release-skill verify --run <publish-run>` (→
217
+ `VERIFIED`). The verify command reads the attestation from the same
218
+ plan-digest-keyed directory, so the fresh run directory does not lose the proof.
280
219
 
281
- For the cli channel, installing into the ordinary `~/.codebuddy` is **not**
282
- acceptable proof: the attested `installPath` must resolve inside the requirement's
283
- isolated `<codebuddyHome>` managed root, otherwise verification fails closed and
284
- the CodeBuddy unit never reaches `VERIFIED`. (The desktop channel uses the real
285
- `~/.workbuddy` marketplace layout above, which IS the well-known proof layout.)
220
+ When a platform has no reliable automated verification, the bound human
221
+ `passed`/`failed` attestation is authoritative. The `verify` command consumes
222
+ the human result and transitions to `VERIFIED` on success. However, identity,
223
+ version, payload, marketplace source, or installation contract inconsistencies
224
+ MUST NOT be overridden by a human `passed` result.
286
225
 
287
226
  For a single session from a source checkout you can also point CodeBuddy at the
288
227
  generated plugin directory with `--plugin-dir <path>/adapters/workbuddy`; the
289
228
  adapter never references files outside its own directory.
290
229
 
230
+ ## Consumer verification boundaries
231
+
232
+ **When verification runs.** Consumer-side install verification executes only
233
+ when the installation contract's critical files have changed relative to the
234
+ confirmed public baseline. When critical files are unchanged, the result is
235
+ `NOT_REQUIRED_UNCHANGED`; do not append redundant verification.
236
+
237
+ **Marketplace source selection.** Each platform, each release, selects exactly
238
+ one marketplace source: `bundled-family` (skill-family ships its own marketplace
239
+ files) or `standalone-index` (independent marketplace index). Never use both.
240
+
241
+ **Codex automatic verification first.** Codex prefers automated verification.
242
+ Only when the CLI/interface, runtime, or transport is unavailable does the
243
+ system degrade to manual judgment. Identity, version, payload, marketplace
244
+ source, or installation contract inconsistencies are failures and must not be
245
+ human-overridden.
246
+
291
247
  ## Development Install (Local Checkout)
292
248
 
293
249
  For development or when working from source: