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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codebuddy-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +2 -2
- package/.kimi-plugin/plugin.json +1 -1
- package/CHANGELOG.md +22 -0
- package/CONTRIBUTING.md +27 -0
- package/INSTALL.md +95 -139
- package/INSTALL.zh-CN.md +70 -121
- package/README.md +264 -913
- package/README.zh-CN.md +222 -535
- package/adapters/claude/.claude-plugin/marketplace.json +1 -1
- package/adapters/claude/.claude-plugin/plugin.json +1 -1
- package/adapters/claude/bin/release-skill.bundle.mjs +19054 -17573
- package/adapters/claude/schemas/release-plan.schema.json +137 -0
- package/adapters/claude/schemas/release-project.schema.json +93 -0
- package/adapters/claude/schemas/release-run.schema.json +70 -2
- package/adapters/codex/.codex-plugin/plugin.json +2 -2
- package/adapters/codex/bin/release-skill.bundle.mjs +19054 -17573
- package/adapters/codex/schemas/release-plan.schema.json +137 -0
- package/adapters/codex/schemas/release-project.schema.json +93 -0
- package/adapters/codex/schemas/release-run.schema.json +70 -2
- package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
- package/adapters/kimi/bin/release-skill.bundle.mjs +19054 -17573
- package/adapters/kimi/schemas/release-plan.schema.json +137 -0
- package/adapters/kimi/schemas/release-project.schema.json +93 -0
- package/adapters/kimi/schemas/release-run.schema.json +70 -2
- package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
- package/adapters/workbuddy/bin/release-skill.bundle.mjs +19054 -17573
- package/adapters/workbuddy/schemas/release-plan.schema.json +137 -0
- package/adapters/workbuddy/schemas/release-project.schema.json +93 -0
- package/adapters/workbuddy/schemas/release-run.schema.json +70 -2
- package/bin/release-skill.bundle.mjs +19054 -17573
- package/package.json +1 -1
- package/schemas/release-plan.schema.json +137 -0
- package/schemas/release-project.schema.json +93 -0
- package/schemas/release-run.schema.json +70 -2
- package/src/adapters/plugin-marketplace.mjs +1190 -435
- package/src/commands/prepare.mjs +380 -40
- package/src/commands/publish.mjs +107 -75
- package/src/commands/reconcile.mjs +92 -327
- package/src/commands/setup.mjs +148 -20
- package/src/commands/verify.mjs +304 -20
- package/src/core/baseline.mjs +8 -1
- package/src/core/checkpoints.mjs +50 -7
- package/src/core/config.mjs +15 -0
- package/src/core/errors.mjs +2 -0
- package/src/core/installation-contract.mjs +341 -0
- package/src/core/plan.mjs +129 -6
- package/src/platforms/codebuddy.mjs +193 -280
- package/src/platforms/codex.mjs +369 -0
- package/src/platforms/kimi.mjs +164 -119
- package/src/platforms/registry.mjs +24 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "release-skill",
|
|
3
|
-
"version": "0.2.
|
|
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.
|
|
22
|
+
"Prepare a release plan for version 0.2.4.",
|
|
23
23
|
"Help me understand the release workflow."
|
|
24
24
|
]
|
|
25
25
|
}
|
package/.kimi-plugin/plugin.json
CHANGED
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.
|
|
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 (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
marketplace [ifoohoo/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
>
|
|
49
|
-
>
|
|
50
|
-
>
|
|
51
|
-
>
|
|
52
|
-
>
|
|
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/
|
|
68
|
-
/plugin install release-skill@
|
|
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/
|
|
75
|
-
codebuddy plugin install release-skill@
|
|
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/
|
|
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
|
-
|
|
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)
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
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; `
|
|
157
|
-
|
|
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
|
-
"
|
|
164
|
-
"
|
|
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
|
-
"
|
|
172
|
-
"
|
|
173
|
-
"
|
|
174
|
-
"
|
|
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
|
-
|
|
179
|
-
`
|
|
180
|
-
|
|
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
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
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)
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
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
|
|
224
|
-
(https://github.com/ifoohoo/
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
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; `
|
|
251
|
-
|
|
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
|
-
"
|
|
260
|
-
"
|
|
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
|
-
"
|
|
270
|
-
"
|
|
271
|
-
"
|
|
272
|
-
"
|
|
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
|
-
|
|
277
|
-
`
|
|
278
|
-
|
|
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
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
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:
|