release-skill 0.2.9 → 0.4.0

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 (77) 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 +41 -0
  7. package/INSTALL.md +34 -110
  8. package/INSTALL.zh-CN.md +17 -83
  9. package/README.md +49 -41
  10. package/README.zh-CN.md +43 -34
  11. package/adapters/claude/.claude-plugin/marketplace.json +1 -1
  12. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  13. package/adapters/claude/bin/release-skill.bundle.mjs +4131 -3180
  14. package/adapters/claude/schemas/release-plan.schema.json +7 -0
  15. package/adapters/claude/schemas/release-run.schema.json +43 -0
  16. package/adapters/claude/skills/release-help/SKILL.md +10 -2
  17. package/adapters/claude/skills/release-prepare/SKILL.md +6 -15
  18. package/adapters/claude/skills/release-publish/SKILL.md +5 -6
  19. package/adapters/claude/skills/release-reconcile/SKILL.md +2 -2
  20. package/adapters/claude/skills/release-verify/SKILL.md +4 -6
  21. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  22. package/adapters/codex/bin/release-skill.bundle.mjs +4131 -3180
  23. package/adapters/codex/schemas/release-plan.schema.json +7 -0
  24. package/adapters/codex/schemas/release-run.schema.json +43 -0
  25. package/adapters/codex/skills/release-help/SKILL.md +10 -2
  26. package/adapters/codex/skills/release-prepare/SKILL.md +6 -15
  27. package/adapters/codex/skills/release-publish/SKILL.md +5 -6
  28. package/adapters/codex/skills/release-reconcile/SKILL.md +2 -2
  29. package/adapters/codex/skills/release-verify/SKILL.md +4 -6
  30. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  31. package/adapters/kimi/bin/release-skill.bundle.mjs +4131 -3180
  32. package/adapters/kimi/schemas/release-plan.schema.json +7 -0
  33. package/adapters/kimi/schemas/release-run.schema.json +43 -0
  34. package/adapters/kimi/skills/release-help/SKILL.md +10 -2
  35. package/adapters/kimi/skills/release-prepare/SKILL.md +6 -15
  36. package/adapters/kimi/skills/release-publish/SKILL.md +5 -6
  37. package/adapters/kimi/skills/release-reconcile/SKILL.md +2 -2
  38. package/adapters/kimi/skills/release-verify/SKILL.md +4 -6
  39. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  40. package/adapters/workbuddy/bin/release-skill.bundle.mjs +4131 -3180
  41. package/adapters/workbuddy/schemas/release-plan.schema.json +7 -0
  42. package/adapters/workbuddy/schemas/release-run.schema.json +43 -0
  43. package/adapters/workbuddy/skills/release-help/SKILL.md +10 -2
  44. package/adapters/workbuddy/skills/release-prepare/SKILL.md +6 -15
  45. package/adapters/workbuddy/skills/release-publish/SKILL.md +5 -6
  46. package/adapters/workbuddy/skills/release-reconcile/SKILL.md +2 -2
  47. package/adapters/workbuddy/skills/release-verify/SKILL.md +4 -6
  48. package/bin/release-skill-cli.mjs +212 -43
  49. package/bin/release-skill.bundle.mjs +4131 -3180
  50. package/package.json +1 -1
  51. package/references/01-state-machine.md +1 -1
  52. package/references/06-adapter-contract.md +6 -5
  53. package/schemas/release-plan.schema.json +7 -0
  54. package/schemas/release-run.schema.json +43 -0
  55. package/skills/release-help/SKILL.md +10 -2
  56. package/skills/release-prepare/SKILL.md +6 -15
  57. package/skills/release-publish/SKILL.md +5 -6
  58. package/skills/release-reconcile/SKILL.md +2 -2
  59. package/skills/release-verify/SKILL.md +4 -6
  60. package/skills-src/release-help/SKILL.md +10 -2
  61. package/skills-src/release-prepare/SKILL.md +6 -15
  62. package/skills-src/release-publish/SKILL.md +5 -6
  63. package/skills-src/release-reconcile/SKILL.md +2 -2
  64. package/skills-src/release-verify/SKILL.md +4 -6
  65. package/src/adapters/plugin-marketplace.mjs +1 -1
  66. package/src/adapters/push-snapshot.mjs +3 -1
  67. package/src/commands/approve.mjs +8 -6
  68. package/src/commands/attest.mjs +195 -0
  69. package/src/commands/hooks.mjs +42 -0
  70. package/src/commands/prepare.mjs +13 -50
  71. package/src/commands/publish.mjs +0 -8
  72. package/src/commands/reconcile.mjs +3 -37
  73. package/src/commands/ship.mjs +334 -0
  74. package/src/commands/verify.mjs +195 -15
  75. package/src/core/git-transport.mjs +93 -0
  76. package/src/core/release-metadata.mjs +105 -0
  77. package/src/core/skill-resource-closure.mjs +7 -1
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.2.9",
12
+ "version": "0.4.0",
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.9",
3
+ "version": "0.4.0",
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.9",
3
+ "version": "0.4.0",
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.9",
3
+ "version": "0.4.0",
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.9.",
22
+ "Prepare a release plan for version 0.4.0.",
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.9",
3
+ "version": "0.4.0",
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,46 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.4.0 locale=en baseline=sha256:099d9db24049aeaae78a21d3bd5152582bb20d4efad1ceff085f9609e8e6d52e -->
4
+ ## [0.4.0] - 2026-08-02
5
+
6
+ v0.4.0 simplifies the production release path to one frozen-plan approval and moves unavailable Kimi or CodeBuddy installations into non-blocking manual follow-up tasks.
7
+
8
+ ### Added
9
+
10
+ - **Manual consumer follow-ups**: when Kimi or CodeBuddy cannot be installed automatically, the release records an installation task after publishing without requiring system attestation.
11
+
12
+ ### Changed
13
+
14
+ - **Single release approval**: the normal production path now asks only for approval of the immutable release plan; invoking a command authorizes its configured hooks and gates.
15
+ - **Non-blocking human consumers**: Kimi and CodeBuddy manual installation tasks no longer prevent the automated release from reaching `VERIFIED`.
16
+
17
+ ### Removed
18
+
19
+ - **Redundant confirmation flags**: legacy plan-digest repetition, production-confirmation, hook-authorization, and manual-attestation interactions were removed from the normal release path.
20
+ <!-- release-skill:changelog:end version=0.4.0 locale=en -->
21
+
22
+
23
+ <!-- release-skill:changelog:start version=0.3.0 locale=en baseline=sha256:ee0626856918a8fae3b49f3e1645b8f2dc4149519499edbd04e175939faa1b2e -->
24
+ ## [0.3.0] - 2026-07-31
25
+
26
+ v0.3.0 streamlines production releases into a resumable orchestration with reusable hook receipts, consolidated approvals, and stronger consumer-install evidence.
27
+
28
+ ### Added
29
+
30
+ - **Resumable ship orchestration**: the new `ship` command persists the active release state and resumes prepare, approval, publish, reconcile, and verification without rebuilding authority from conversational context.
31
+ - **Reusable hook receipts**: `hooks validate` executes declared hooks through the same content-bound cache used by prepare, so unchanged checks do not need to run again.
32
+ - **Manual consumer follow-ups**: Kimi and CodeBuddy installation tasks are emitted after automated publishing and explicitly remain outside system verification.
33
+ - **Git transport preflight**: production publishing selects one repository-consistent HTTPS or SSH transport before any remote write and blocks conflicting remote identities.
34
+
35
+ ### Changed
36
+
37
+ - **Consolidated human decisions**: the normal path requires one immutable-plan approval; invoking a command authorizes its configured hooks and gates, while manual consumer tasks are collected after publishing.
38
+ - **Parallel consumer verification**: independent consumer checks run concurrently, drain before failure reporting, and produce deterministically ordered evidence.
39
+ - **Automatic release metadata**: successful verification advances each unit's `previousPublicBaseline` to the frozen public commit, tree, and manifest digest.
40
+ - **Compact prepare output**: JSON output references the immutable plan by path and digest instead of embedding the full plan.
41
+ <!-- release-skill:changelog:end version=0.3.0 locale=en -->
42
+
43
+
3
44
  <!-- release-skill:changelog:start version=0.2.9 locale=en baseline=sha256:22b3d94c5d99fca0e6016334a108e4be5f3419f45507fae795b4d0714ca7ad6d -->
4
45
  ## [0.2.9] - 2026-07-31
5
46
 
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.9 -->
5
+ <!-- release-skill:release-version: 0.4.0 -->
6
6
  ## Prerequisites
7
7
 
8
8
  - Node.js 22.0.0 or later
@@ -78,9 +78,9 @@ Then install `release-skill` from the interactive `/plugins` browser.
78
78
 
79
79
  **Kimi Code** (interactive session):
80
80
 
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.
81
+ Kimi Code has no marketplace install API. Installation is a post-release manual
82
+ task pinned to a specific release tag. release-skill reports the task but does
83
+ not verify its completion.
84
84
 
85
85
  ### Alternative: direct repository install (advanced)
86
86
 
@@ -103,61 +103,24 @@ Kimi Code plugin manifest lives at `.kimi-plugin/plugin.json`, mirroring
103
103
  `.claude-plugin/plugin.json` and `.codex-plugin/plugin.json`, and the package
104
104
  ships `adapters/kimi/` next to `adapters/claude/` and `adapters/codex/`.
105
105
 
106
- For day-to-day installation, prefer the
107
- [unified marketplace path](#install-as-a-plugin-unified-marketplace--recommended)
108
- above. The remainder of this section documents the version-pinned manual
109
- closed loop that release-skill's own publish/verify pipeline relies on.
110
-
111
106
  Kimi Code has an interactive plugin marketplace but **no scriptable,
112
- non-interactive install API**. release-skill therefore models Kimi installation
113
- as a version-pinned **manual** install plus trusted observation/attestation:
114
- `publish`/`verify` never auto-install Kimi plugins. The closed loop is:
115
-
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.
122
- 2. Read the requirement at
123
- `<root>/.release-skill/kimi-attestations/<plugin>/release-skill-kimi-manual-install.json`.
124
- 3. Launch Kimi Code and install from the release tag pinned to the exact
125
- version (never the bare repository URL, which installs the latest release or
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.
107
+ non-interactive install API**. For new release plans, `publish` completes the
108
+ automated remote writes and returns a non-blocking `manualFollowUps` entry with
109
+ the pinned install URL. `verify` does not install or inspect Kimi and reports
110
+ `verifiedBySystem: false`; the task does not block `VERIFIED`.
111
+
112
+ After publishing, a maintainer can launch Kimi Code and install from the release
113
+ tag pinned to the exact version (never the bare repository URL, which installs
114
+ the latest release or default branch), confirm the trust prompt, then reload:
129
115
 
130
116
  ```
131
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.2.9
117
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.4.0
132
118
  /plugins reload
133
119
  ```
134
120
 
135
- 4. Write the attestation JSON to
136
- `<root>/.release-skill/kimi-attestations/<plugin>/release-skill-kimi-attestation.json`.
137
- `planDigest` MUST be the frozen **plan** digest; `result` accepts only
138
- `"passed"` or `"failed"`. Example:
139
-
140
- ```json
141
- {
142
- "platform": "kimi",
143
- "version": "0.2.9",
144
- "planDigest": "<64-hex frozen plan digest>",
145
- "result": "passed",
146
- "actor": "<person who confirmed>",
147
- "confirmedAt": "2026-07-23T00:00:00.000Z",
148
- "note": "<optional note>"
149
- }
150
- ```
151
-
152
- 5. Run `release-skill verify --run <publish-run>` (→
153
- `VERIFIED`). The verify command reads the attestation from the stable
154
- plugin-level directory, so the fresh run directory does not lose the proof.
155
-
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.
121
+ No receipt or attestation is required. The `attest` command remains available
122
+ only for frozen plans created by older versions that lack the
123
+ `humanConsumersStrategy: manualFollowUps` marker.
161
124
 
162
125
  ## Install as a CodeBuddy/WorkBuddy plugin
163
126
 
@@ -172,56 +135,15 @@ expands inline like Claude Code expands `${CLAUDE_PLUGIN_ROOT}`. The build
172
135
  adapter directory is named `workbuddy` while the platform / distribution id is
173
136
  `codebuddy`; the two names refer to the same target.
174
137
 
175
- For day-to-day installation, prefer the
176
- [unified marketplace path](#install-as-a-plugin-unified-marketplace--recommended)
177
- above. The remainder of this section documents the manual attestation closed loop
178
- that release-skill's own publish/verify pipeline relies on.
179
-
180
138
  The codebuddy CLI can add a marketplace and install a plugin, but **neither
181
139
  `plugin marketplace add` nor `plugin install` accepts a ref option** — the install
182
140
  tracks the marketplace default branch / latest. An automated install checkpoint
183
141
  therefore cannot guarantee the frozen artifact's identity, so release-skill models
184
- CodeBuddy installation as a **manual** install plus trusted observation/
185
- attestation (the same capability gap and closed loop as Kimi Code):
186
- `publish`/`verify` never auto-install CodeBuddy plugins. The closed loop is:
187
-
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.
193
- 2. Read the requirement at
194
- `<root>/.release-skill/codebuddy-attestations/<plugin>/release-skill-codebuddy-manual-install.json`.
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
200
- `<root>/.release-skill/codebuddy-attestations/<plugin>/release-skill-codebuddy-attestation.json`.
201
- `planDigest` MUST be the frozen **plan** digest; `result` accepts only
202
- `"passed"` or `"failed"`. Example:
203
-
204
- ```json
205
- {
206
- "platform": "codebuddy",
207
- "version": "0.2.9",
208
- "planDigest": "<64-hex frozen plan digest>",
209
- "result": "passed",
210
- "actor": "<person who confirmed>",
211
- "confirmedAt": "2026-07-23T00:00:00.000Z",
212
- "note": "<optional note>"
213
- }
214
- ```
215
-
216
- 5. Run `release-skill verify --run <publish-run>` (→
217
- `VERIFIED`). The verify command reads the attestation from the stable
218
- plugin-level directory, so the fresh run directory does not lose the proof.
219
-
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.
142
+ CodeBuddy installation as a non-blocking post-release team task. `publish`
143
+ returns it in `manualFollowUps`; `verify` does not inspect the installation and
144
+ reports `verifiedBySystem: false`. Install from the bundled-family marketplace
145
+ `ifoohoo/release-skill` after publishing. No receipt or attestation is required
146
+ for new plans; `attest` exists only for old frozen-plan compatibility.
225
147
 
226
148
  For a single session from a source checkout you can also point CodeBuddy at the
227
149
  generated plugin directory with `--plugin-dir <path>/adapters/workbuddy`; the
@@ -408,9 +330,9 @@ documentation, and supply chain, then outputs a gap report. Without an explicit
408
330
  `prepare` is different: it writes release artifacts under the target project's
409
331
  `.release-skill/` directory and may run configured hooks. Hooks are unsandboxed
410
332
  arbitrary processes. They may write outside the project, access credentials,
411
- use the network, or perform remote writes. Review the displayed executable,
412
- arguments, and working directory before granting
413
- `--acknowledge-hook-side-effects`.
333
+ use the network, or perform remote writes. The `prepare` command invocation
334
+ itself authorizes execution of configured hooks and gates; no separate
335
+ acknowledgement flag is required.
414
336
 
415
337
  For a Git repository, keep the human-owned project configuration while ignoring
416
338
  generated authority and evidence:
@@ -466,8 +388,9 @@ releaseUnits:
466
388
 
467
389
  ### Advanced: hooks (optional)
468
390
 
469
- Hooks are optional and run arbitrary local processes. They require explicit
470
- `--acknowledge-hook-side-effects` authorization when used with `prepare`.
391
+ Hooks are optional and run arbitrary local processes. The `prepare` command
392
+ invocation itself authorizes execution of configured hooks; no separate
393
+ acknowledgement flag is required.
471
394
 
472
395
  ```yaml
473
396
  hooks:
@@ -507,12 +430,13 @@ script and every dependency it needs must exist in the frozen public snapshot;
507
430
  the gate cannot borrow tests, development dependencies, or `node_modules` from
508
431
  the parent workspace.
509
432
 
510
- Prepare and verify require `--acknowledge-gate-side-effects` whenever their
511
- planned phase contains gates. Hooks and gates are project processes without a
512
- network sandbox; release-skill limits their inputs and evidence but cannot
513
- guarantee that a custom command will not modify files or access the network.
514
- Never register Git push, tag, default-branch changes, GitHub Releases, or npm
515
- publish as a hook/gate; those are controlled plan actions.
433
+ The `prepare` and `verify` command invocations authorize execution of
434
+ configured gates; no separate acknowledgement flag is required. Hooks and
435
+ gates are project processes without a network sandbox; release-skill limits
436
+ their inputs and evidence but cannot guarantee that a custom command will not
437
+ modify files or access the network. Never register Git push, tag,
438
+ default-branch changes, GitHub Releases, or npm publish as a hook/gate; those
439
+ are controlled plan actions.
516
440
 
517
441
  ### Advanced: release-document refresh (optional)
518
442
 
package/INSTALL.zh-CN.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.2.9 -->
5
+ <!-- release-skill:release-version: 0.4.0 -->
6
6
  ## 前置条件
7
7
 
8
8
  - Node.js 22.0.0 或更高版本
@@ -73,8 +73,8 @@ codex plugin marketplace add ifoohoo/release-skill
73
73
 
74
74
  **Kimi Code**(交互会话中):
75
75
 
76
- Kimi Code 没有市场安装接口,需手动安装并钉死到特定 release tag。详见
77
- [Kimi Code 小节](#安装为-kimi-code-插件)的版本钉死手动安装与证明闭环。
76
+ Kimi Code 没有市场安装接口,发布后需手动安装并钉死到特定 release tag
77
+ release-skill 会返回待办,但不核验其完成结果。
78
78
 
79
79
  ### 备选:直接从仓库安装(进阶)
80
80
 
@@ -95,51 +95,21 @@ Kimi Code 是与 Claude Code 和 Codex 并列的受支持插件宿主。Kimi Cod
95
95
  `.codex-plugin/plugin.json` 对应;包内同时提供 `adapters/kimi/`,与
96
96
  `adapters/claude/`、`adapters/codex/` 并列。
97
97
 
98
- 日常安装请优先使用上文的
99
- [统一市场路径](#安装为插件统一市场推荐)。本节其余部分记录的是
100
- release-skill 自身 publish/verify 流水线所依赖的“版本钉死手动闭环”。
101
-
102
98
  Kimi Code 有交互式插件市场,但**没有可脚本化的非交互安装接口**。因此
103
- release-skill 把 Kimi 安装建模为“版本钉死的手动安装 + 可信观测/人工证明”:
104
- `publish`/`verify` 从不对 Kimi 执行自动安装。完整闭环如下:
99
+ 新发布计划中,`publish` 完成自动化远端写入后返回非阻塞的
100
+ `manualFollowUps`,其中含钉死的安装 URL;`verify` 不安装也不检查 Kimi,返回
101
+ `verifiedBySystem: false`,该待办不阻塞 `VERIFIED`。
105
102
 
106
- 1. `publish` 先完成自动化远端写入(Git branch/tag、npm、GitHub Release)。
107
- `kimi-marketplace-install` 动作在 publish 阶段记录为 `DEFERRED`,不调用市场适配器,自动化安装路径失败关闭。全部远端永久写入一致后运行进入 `PUBLISHED`。运行记录会给出钉死的安装 URL 与证明写入路径。
108
- 2. 读取 requirement:
109
- `<root>/.release-skill/kimi-attestations/<plugin>/release-skill-kimi-manual-install.json`。
110
- 3. 启动 Kimi Code,从钉死到精确版本的 release tag 安装(切勿使用裸仓库地址,
111
- 它会安装最新 release 或默认分支),确认信任提示后重新加载。写出证明之前,
112
- 必须核实已安装插件清单版本等于冻结版本;否则**不得**出具证明。
103
+ 发布完成后,维护者可启动 Kimi Code,从钉死到精确版本的 release tag 安装
104
+ (切勿使用裸仓库地址,它会安装最新 release 或默认分支),确认信任提示后重新加载:
113
105
 
114
106
  ```
115
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.2.9
107
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.4.0
116
108
  /plugins reload
117
109
  ```
118
110
 
119
- 4. 把人工结果 JSON 写入
120
- `<root>/.release-skill/kimi-attestations/<plugin>/release-skill-kimi-attestation.json`。
121
- `planDigest` 必须是冻结**计划**摘要;`result` 只接受 `"passed"` 或 `"failed"`。
122
- 示例:
123
-
124
- ```json
125
- {
126
- "platform": "kimi",
127
- "version": "0.2.9",
128
- "planDigest": "<64 位十六进制冻结计划摘要>",
129
- "result": "passed",
130
- "actor": "<确认人>",
131
- "confirmedAt": "2026-07-23T00:00:00.000Z",
132
- "note": "<可选备注>"
133
- }
134
- ```
135
-
136
- 5. 运行 `release-skill verify --run <publish-run>`(→
137
- `VERIFIED`)。verify 命令从稳定的插件级目录读取证明,因此新的
138
- run 目录不会丢失该证明。
139
-
140
- 当平台没有可靠的自动化验证时,绑定后的人工 `passed`/`failed` 结果即为权威判定。
141
- `verify` 命令消费人工结果,成功后进入 `VERIFIED`。但身份、版本、载荷、市场来源
142
- 或安装契约不一致时,不可被人工 `passed` 结果覆盖。
111
+ 新计划无需收据或人工证明。`attest` 命令仅兼容缺少
112
+ `humanConsumersStrategy: manualFollowUps` 标记的旧冻结计划。
143
113
 
144
114
  ## 安装为 CodeBuddy/WorkBuddy 插件
145
115
 
@@ -152,48 +122,12 @@ CodeBuddy(桌面端产品 WorkBuddy)是与 Claude Code、Codex、Kimi Code
152
122
  `${CLAUDE_PLUGIN_ROOT}` 一样内联展开该变量。build adapter 目录名为 `workbuddy`,
153
123
  而平台 / 分发 id 为 `codebuddy`,两个名字指向同一目标。
154
124
 
155
- 日常安装请优先使用上文的
156
- [统一市场路径](#安装为插件统一市场推荐)。本节其余部分记录的是
157
- release-skill 自身 publish/verify 流水线所依赖的“手动安装 + 可信证明闭环”。
158
-
159
125
  codebuddy CLI 可以添加市场并安装插件,但 **`plugin marketplace add` 与
160
126
  `plugin install` 均无 ref 选项**——安装会跟踪市场默认分支 / latest。因此自动化
161
127
  安装检查点无法保证冻结产物的同一性,release-skill 把 CodeBuddy 安装建模为
162
- “**手动**安装 + 可信观测/人工证明”(与 Kimi Code 相同的能力缺口与闭环):
163
- `publish`/`verify` 从不对 CodeBuddy 执行自动安装。完整闭环如下:
164
-
165
- 1. `publish` 先完成自动化远端写入(Git branch/tag、npm、GitHub Release)。
166
- `codebuddy-marketplace-install` 动作在 publish 阶段记录为 `DEFERRED`,不调用
167
- 市场适配器,自动化安装路径失败关闭。全部远端永久写入一致后运行进入 `PUBLISHED`。运行记录会给出证明写入路径。
168
- 2. 读取 requirement:
169
- `<root>/.release-skill/codebuddy-attestations/<plugin>/release-skill-codebuddy-manual-install.json`。
170
- 3. 从 bundled-family 市场 `ifoohoo/release-skill`
171
- (https://github.com/ifoohoo/release-skill)安装 release-skill。
172
- 写出证明之前,必须核实已安装插件清单版本等于冻结版本;否则**不得**出具证明。
173
- 4. 把人工结果 JSON 写入
174
- `<root>/.release-skill/codebuddy-attestations/<plugin>/release-skill-codebuddy-attestation.json`。
175
- `planDigest` 必须是冻结**计划**摘要;`result` 只接受 `"passed"` 或 `"failed"`。
176
- 示例:
177
-
178
- ```json
179
- {
180
- "platform": "codebuddy",
181
- "version": "0.2.9",
182
- "planDigest": "<64 位十六进制冻结计划摘要>",
183
- "result": "passed",
184
- "actor": "<确认人>",
185
- "confirmedAt": "2026-07-23T00:00:00.000Z",
186
- "note": "<可选备注>"
187
- }
188
- ```
189
-
190
- 5. 运行 `release-skill verify --run <publish-run>`(→
191
- `VERIFIED`)。verify 命令从稳定的插件级目录读取证明,因此新的
192
- run 目录不会丢失该证明。
193
-
194
- 当平台没有可靠的自动化验证时,绑定后的人工 `passed`/`failed` 结果即为权威判定。
195
- `verify` 命令消费人工结果,成功后进入 `VERIFIED`。但身份、版本、载荷、市场来源
196
- 或安装契约不一致时,不可被人工 `passed` 结果覆盖。
128
+ 发布后的非阻塞团队待办。`publish` `manualFollowUps` 中返回任务;`verify`
129
+ 不检查安装并返回 `verifiedBySystem: false`。发布后从 bundled-family 市场
130
+ `ifoohoo/release-skill` 安装即可。新计划无需收据或人工证明;`attest` 只兼容旧冻结计划。
197
131
 
198
132
  源码检出后也可以用 `--plugin-dir <path>/adapters/workbuddy` 把 CodeBuddy 指向
199
133
  生成的插件目录做单会话使用;适配器不引用自身目录之外的任何文件。
@@ -346,7 +280,7 @@ node -e 'require("node:fs").rmSync(process.argv[1],{recursive:true,force:false})
346
280
 
347
281
  该命令只读地检查项目结构、配置、文档和供应链;未显式传入 `--output` 时不写报告,也不运行项目 hook。
348
282
 
349
- `prepare` 不同:它在目标项目的 `.release-skill/` 下写入发布工件,并可能运行已配置 hook。hook 是无沙箱的任意进程,可能写到项目外、访问凭据、使用网络或执行远端写入。授予 `--acknowledge-hook-side-effects` 前必须审阅可执行文件、参数和工作目录。
283
+ `prepare` 不同:它在目标项目的 `.release-skill/` 下写入发布工件,并可能运行已配置 hook。hook 是无沙箱的任意进程,可能写到项目外、访问凭据、使用网络或执行远端写入。`prepare` 命令调用本身即授权执行已配置的 hook 和 gate,无需额外授权参数。
350
284
 
351
285
  Git 仓库应保留人工配置,同时忽略生成的权威文件和证据:
352
286
 
@@ -400,7 +334,7 @@ releaseUnits:
400
334
 
401
335
  ### 进阶:hook(可选)
402
336
 
403
- hook 是可选的任意本地进程。prepare 使用 hook 时必须显式授予 `--acknowledge-hook-side-effects`:
337
+ hook 是可选的任意本地进程。`prepare` 命令调用本身即授权执行已配置的 hook
404
338
 
405
339
  ```yaml
406
340
  hooks:
@@ -432,7 +366,7 @@ verificationGates:
432
366
 
433
367
  这个自包含示例只读取已映射的公开文件。若替换成项目脚本,该脚本及全部依赖必须存在于冻结公开快照;gate 不能借用父工作空间中的测试、开发依赖或 `node_modules`。
434
368
 
435
- 当计划的当前阶段包含 gate 时,prepare verify 必须传入 `--acknowledge-gate-side-effects`。hook/gate 都是无网络沙箱的项目进程;release-skill 约束其输入与证据,但无法保证自定义命令不修改文件或不访问网络。禁止把 Git push、tag、默认分支修改、GitHub Release 或 npm publish 注册为 hook/gate,它们只能由受控的计划动作完成。
369
+ `prepare` `verify` 命令调用本身即授权执行已配置的 gate,无需额外授权参数。hook/gate 都是无网络沙箱的项目进程;release-skill 约束其输入与证据,但无法保证自定义命令不修改文件或不访问网络。禁止把 Git push、tag、默认分支修改、GitHub Release 或 npm publish 注册为 hook/gate,它们只能由受控的计划动作完成。
436
370
 
437
371
  ### 进阶:发布文档刷新(可选)
438
372