release-skill 0.3.0 → 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 (72) 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 +23 -3
  7. package/INSTALL.md +34 -110
  8. package/INSTALL.zh-CN.md +17 -83
  9. package/README.md +42 -65
  10. package/README.zh-CN.md +37 -57
  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 +138 -231
  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 +5 -5
  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 +138 -231
  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 +5 -5
  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 +138 -231
  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 +5 -5
  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 +138 -231
  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 +5 -5
  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 +45 -48
  49. package/bin/release-skill.bundle.mjs +138 -231
  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 +5 -5
  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 +5 -5
  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/commands/approve.mjs +8 -6
  66. package/src/commands/hooks.mjs +4 -8
  67. package/src/commands/prepare.mjs +13 -50
  68. package/src/commands/publish.mjs +0 -8
  69. package/src/commands/reconcile.mjs +3 -37
  70. package/src/commands/ship.mjs +55 -77
  71. package/src/commands/verify.mjs +56 -19
  72. package/src/core/skill-resource-closure.mjs +7 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](README.zh-CN.md) · Installation: [English](INSTALL.md) / [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.3.0 -->
5
+ <!-- release-skill:release-version: 0.4.0 -->
6
6
  Release preparation for Claude Code, CodeBuddy, WorkBuddy, Codex, and Kimi Code, with human-edited files kept intact.
7
7
 
8
8
  release-skill helps a maintainer answer three questions: what will be released,
@@ -14,27 +14,26 @@ Setup surfaces only the deterministic `compactSummary` review view; the full
14
14
  report stays in a temporary session directory.
15
15
 
16
16
  <!-- release-skill:managed:start id=latest-release -->
17
- **0.3.0** (2026-07-31)
17
+ **0.4.0** (2026-08-02)
18
18
 
19
- v0.3.0 streamlines production releases into a resumable orchestration with reusable hook receipts, consolidated approvals, and stronger consumer-install evidence.
19
+ 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.
20
20
 
21
21
  **Added**
22
22
 
23
- - **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.
24
- - **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.
25
- - **Verified manual attestations**: `attest` validates a reported Kimi or CodeBuddy installation against the exact frozen plugin payload before recording consumer evidence.
26
- - **Git transport preflight**: production publishing selects one repository-consistent HTTPS or SSH transport before any remote write and blocks conflicting remote identities.
23
+ - **Manual consumer follow-ups**: when Kimi or CodeBuddy cannot be installed automatically, the release records an installation task after publishing without requiring system attestation.
27
24
 
28
25
  **Changed**
29
26
 
30
- - **Consolidated human decisions**: the normal path requires at most one hook-side-effect authorization and one immutable-plan approval; manual consumer requirements are collected before automatic verification.
31
- - **Parallel consumer verification**: independent consumer checks run concurrently, drain before failure reporting, and produce deterministically ordered evidence.
32
- - **Automatic release metadata**: successful verification advances each unit's `previousPublicBaseline` to the frozen public commit, tree, and manifest digest.
33
- - **Compact prepare output**: JSON output references the immutable plan by path and digest instead of embedding the full plan.
27
+ - **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.
28
+ - **Non-blocking human consumers**: Kimi and CodeBuddy manual installation tasks no longer prevent the automated release from reaching `VERIFIED`.
29
+
30
+ **Removed**
31
+
32
+ - **Redundant confirmation flags**: legacy plan-digest repetition, production-confirmation, hook-authorization, and manual-attestation interactions were removed from the normal release path.
34
33
  <!-- release-skill:managed:end id=latest-release -->
35
34
 
36
35
  <!-- release-skill:capability:external-write-boundary -->
37
- > **Current boundary:** v0.3.0 is the current release (v0.2.2 previously held
36
+ > **Current boundary:** v0.4.0 is the current release (v0.2.2 previously held
38
37
  > published status before the platform verification convergence fix was added).
39
38
  > v0.1.1 completed a real production release to GitHub and npm — the first
40
39
  > production-verified milestone — followed by
@@ -52,7 +51,7 @@ v0.3.0 streamlines production releases into a resumable orchestration with reusa
52
51
  > publish global preflight.
53
52
 
54
53
  <!-- release-skill:capability:safe-first-command -->
55
- > **Production path verified since the v0.1.1 milestone; v0.3.0 is the current
54
+ > **Production path verified since the v0.1.1 milestone; v0.4.0 is the current
56
55
  > release.** The npm-installed CLI is the supported user entry. Source checkout
57
56
  > is the development/contributor fallback.
58
57
  >
@@ -63,10 +62,9 @@ v0.3.0 streamlines production releases into a resumable orchestration with reusa
63
62
  <!-- release-skill:maturity:v0.1-boundary -->
64
63
  <!-- release-skill:maturity:boundary -->
65
64
  > **Safe defaults:** the recommended path is `help → assess → prepare --offline →
66
- > human review`. Production publishing adds `prepare --production → approve
67
- > publish --confirm-production <planDigest>`; a `bound` previous-public baseline
68
- > specifically requires `prepare --online --production`. Without digest confirmation,
69
- > no remote preflight or write starts.
65
+ > human review`. Production publishing uses `ship --target-version <ver> ship --approve --actor <name>`.
66
+ > The `ship` command runs hooks and gates automatically; the only human gate is plan approval.
67
+ > Kimi/CodeBuddy installations are non-blocking manual follow-up tasks (not verified by system).
70
68
 
71
69
  ## Table of contents
72
70
 
@@ -119,29 +117,18 @@ See [INSTALL.md](INSTALL.md) for CodeBuddy, Codex, and Kimi Code commands.
119
117
  ### Main workflow
120
118
 
121
119
  For routine releases, use the durable fast path. It persists authoritative
122
- paths and resumes safely, so a normal run needs at most two authorization
123
- digests: one for the exact configured hooks and one for the frozen plan. The
124
- plan approval also authorizes that plan's post-publish verification gates.
120
+ paths and resumes safely, so a normal run needs at most one human gate: the
121
+ frozen plan approval. `ship` runs configured hooks and verification gates
122
+ automatically. Kimi/CodeBuddy installations are non-blocking post-release
123
+ manual tasks; the system does not verify their completion.
125
124
 
126
125
  ```bash
127
126
  release-skill ship --root "$PROJECT" --target-version 1.2.3 --json
128
- release-skill ship --root "$PROJECT" --authorize-hooks <hookDigest> --actor "$ACTOR" --json
129
- release-skill ship --root "$PROJECT" --approve-plan <planDigest> --actor "$ACTOR" --json
130
- ```
131
-
132
- If interactive consumers are required, `ship` returns every Kimi/CodeBuddy
133
- requirement at once. After installing/reloading, record the human fact without
134
- editing JSON and rerun `ship`:
135
-
136
- ```bash
137
- release-skill attest --root "$PROJECT" --platform kimi --plugin my-plugin \
138
- --result passed --actor "$ACTOR" --install-path /actual/managed/plugin/path
139
- release-skill ship --root "$PROJECT" --json
127
+ release-skill ship --root "$PROJECT" --approve --actor "$ACTOR" --json
140
128
  ```
141
129
 
142
- During development, `release-skill hooks validate
143
- --acknowledge-hook-side-effects` runs declared hooks and writes the same
144
- content-bound cache receipts that `prepare` consumes.
130
+ During development, `release-skill hooks validate` runs declared hooks and
131
+ writes the same content-bound cache receipts that `prepare` consumes.
145
132
 
146
133
  Run these steps in order. Steps 1-4 are safe (read-only or local-only);
147
134
  steps 5-9 require explicit human gates.
@@ -208,41 +195,32 @@ ACTOR=your-name
208
195
  ```
209
196
  4. **prepare** — local snapshot and plan freeze:
210
197
  ```bash
211
- "${CLI[@]}" prepare --root "$PROJECT" --offline \
212
- --acknowledge-hook-side-effects \
213
- --acknowledge-gate-side-effects --json
198
+ "${CLI[@]}" prepare --root "$PROJECT" --offline --json
214
199
  ```
215
- Omit an acknowledgement only when that project config has no corresponding
216
- hook or snapshot gate. Never grant either acknowledgement before reviewing
217
- the configured executable, arguments, working directory, and side effects.
218
200
  5. **Human review:** inspect `planPath`, `externalActions`, `targetVersion`, and `planDigest`.
219
201
  6. **prepare --production** — freeze the production plan:
220
202
  ```bash
221
- PLAN_JSON=$("${CLI[@]}" prepare --root "$PROJECT" --online --production \
222
- --acknowledge-hook-side-effects \
223
- --acknowledge-gate-side-effects --json)
203
+ PLAN_JSON=$("${CLI[@]}" prepare --root "$PROJECT" --online --production --json)
224
204
  PLAN_PATH=$(printf '%s\n' "$PLAN_JSON" | jq -r '.planPath')
225
205
  PLAN_DIGEST=$(printf '%s\n' "$PLAN_JSON" | jq -r '.planDigest')
226
206
  ```
227
- 7. **approve** — human approval bound to the plan digest (24-hour expiry):
207
+ 7. **approve** — human approval (digest auto-read from plan, 24-hour expiry):
228
208
  ```bash
229
209
  APPROVAL_JSON=$("${CLI[@]}" approve --plan "$PLAN_PATH" \
230
- --digest "$PLAN_DIGEST" --actor "$ACTOR" --json)
210
+ --actor "$ACTOR" --json)
231
211
  APPROVAL_PATH=$(printf '%s\n' "$APPROVAL_JSON" | jq -r '.approvalPath')
232
212
  ```
233
213
  8. **publish** — remote writes start here:
234
214
  ```bash
235
215
  PUBLISH_JSON=$("${CLI[@]}" publish --root "$PROJECT" \
236
- --plan "$PLAN_PATH" --approval "$APPROVAL_PATH" \
237
- --confirm-production "$PLAN_DIGEST" --json)
216
+ --plan "$PLAN_PATH" --approval "$APPROVAL_PATH" --json)
238
217
  PUBLISH_RUN_PATH=$(printf '%s\n' "$PUBLISH_JSON" | jq -r '.runPath')
239
218
  ```
240
219
  `PUBLISHED` is **not** the terminal state.
241
220
  9. **verify** — consumer install check:
242
221
  ```bash
243
222
  "${CLI[@]}" verify --root "$PROJECT" \
244
- --plan "$PLAN_PATH" --run "$PUBLISH_RUN_PATH" \
245
- --acknowledge-gate-side-effects --json
223
+ --plan "$PLAN_PATH" --run "$PUBLISH_RUN_PATH" --json
246
224
  ```
247
225
 
248
226
  The handoff example requires `jq`. Without it, copy the returned JSON fields
@@ -257,12 +235,10 @@ When `publish` succeeds at some checkpoints but fails at others, the run enters
257
235
  RECONCILE_JSON=$("${CLI[@]}" reconcile --root "$PROJECT" \
258
236
  --run "$PUBLISH_RUN_PATH" \
259
237
  --plan "$PLAN_PATH" \
260
- --approval "$APPROVAL_PATH" \
261
- --confirm-production "$PLAN_DIGEST" --json)
238
+ --approval "$APPROVAL_PATH" --json)
262
239
  RECONCILE_RUN_PATH=$(printf '%s\n' "$RECONCILE_JSON" | jq -r '.runPath')
263
240
  "${CLI[@]}" verify --root "$PROJECT" \
264
- --plan "$PLAN_PATH" --run "$RECONCILE_RUN_PATH" \
265
- --acknowledge-gate-side-effects --json
241
+ --plan "$PLAN_PATH" --run "$RECONCILE_RUN_PATH" --json
266
242
  ```
267
243
 
268
244
  `reconcile` queries the actual remote state, skips already-consistent steps,
@@ -482,9 +458,9 @@ hooks:
482
458
  envAllowlist: []
483
459
  ```
484
460
 
485
- Hooks run only after human review and with
486
- `prepare --acknowledge-hook-side-effects`. Gates are the controlled extension
487
- point for release calibration (see `references/02-project-config.md`).
461
+ Hooks run when `prepare` is invoked; the command call itself authorizes
462
+ execution. Gates are the controlled extension point for release calibration
463
+ (see `references/02-project-config.md`).
488
464
 
489
465
  ## Skills
490
466
 
@@ -492,7 +468,7 @@ point for release calibration (see `references/02-project-config.md`).
492
468
  - `release-setup`: read-only discovery, human calibration, and create-once configuration.
493
469
  - `release-assess`: read-only release readiness report.
494
470
  - `release-prepare`: local snapshot and reviewable release plan.
495
- - `release-publish`: approved, digest-confirmed frozen GitHub+npm publishing.
471
+ - `release-publish`: approved frozen GitHub+npm publishing; the internal digest is checked automatically.
496
472
  - `release-reconcile`: evidence-based PARTIAL recovery with human intervention on conflicts.
497
473
  - `release-verify`: post-publish verification; only `VERIFIED` is the happy end.
498
474
 
@@ -506,14 +482,15 @@ closures. A release unit declares what reaches users via `distributions`:
506
482
  | `npm` | npm package with CLI entry | `npm install -g release-skill` |
507
483
  | `claude-plugin` | self-contained closure under `adapters/claude/` | automated marketplace checkpoint |
508
484
  | `codex-plugin` | self-contained closure under `adapters/codex/` | automated marketplace checkpoint |
509
- | `kimi-plugin` | self-contained closure (no scriptable install API) | manual, attestation-bound |
510
- | `codebuddy-plugin` | generated `adapters/workbuddy/` with `.codebuddy-plugin/plugin.json` | manual, attestation-bound |
485
+ | `kimi-plugin` | self-contained closure (no scriptable install API) | non-blocking post-release manual task |
486
+ | `codebuddy-plugin` | generated `adapters/workbuddy/` with `.codebuddy-plugin/plugin.json` | non-blocking post-release manual task |
511
487
 
512
488
  Each adapter closure bundles its own CLI, skills, and schemas for zero external
513
489
  dependency after installation. `publish` only publishes frozen Git objects and
514
490
  npm tarballs, then checks remote commit/tree/tag integrity. Claude/Codex
515
- verification is automated; Kimi Code and CodeBuddy/WorkBuddy require a trusted
516
- attestation bound to the frozen plan digest.
491
+ verification is automated. Kimi Code and CodeBuddy/WorkBuddy are returned as
492
+ `manualFollowUps` with `verifiedBySystem: false`; their completion is not a
493
+ condition for the automated release to reach `VERIFIED`.
517
494
 
518
495
  For every npm distribution, `prepare` statically checks the exact packed
519
496
  tarball against concrete `package.json` entry targets. `publish` and
@@ -534,9 +511,9 @@ declaration is narrowed to concrete targets.
534
511
  - no overwrite of branches/tags/releases or npm unpublish; create-only refs use
535
512
  `--force-with-lease=<ref>:` solely as an atomic compare-and-set assertion that
536
513
  the ref is absent, while existing branches use an ordinary non-force push;
537
- - no automated CodeBuddy/WorkBuddy marketplace install checkpoint — the
538
- codebuddy CLI cannot pin a frozen ref, so installation is a manual step proven
539
- by the same attestation closed loop as Kimi Code;
514
+ - no automated Kimi or CodeBuddy/WorkBuddy marketplace install checkpoint —
515
+ these installations remain explicit post-release team tasks and the system
516
+ does not verify their completion;
540
517
  - no promise of Windows or broad multi-platform native write support;
541
518
  - no hidden commit, push, tag, release, or package publication.
542
519
 
package/README.zh-CN.md CHANGED
@@ -2,33 +2,32 @@
2
2
 
3
3
  [English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.3.0 -->
5
+ <!-- release-skill:release-version: 0.4.0 -->
6
6
  面向 Claude Code、CodeBuddy、WorkBuddy、Codex 和 Kimi Code 的发布准备工具,完整保留人工维护的文件内容。
7
7
 
8
8
  release-skill 帮助维护者回答三个问题:准备发布什么、还有哪些检查未通过、最终发布的内容是什么。它不重新生成、也不回写项目源文件。`prepare` 把每个配置的公开文件复制到隔离快照并验证字节——先冻结并供人工审阅,再从同一份冻结产物发布。`setup` 只显示确定性的 `compactSummary` 审阅视图,完整报告保留在临时会话目录中。
9
9
 
10
10
  <!-- release-skill:managed:start id=latest-release -->
11
- **0.3.0** (2026-07-31)
11
+ **0.4.0** (2026-08-02)
12
12
 
13
- v0.3.0 将生产发布收敛为可恢复总编排,通过复用钩子收据、合并人工授权并加强消费者安装证据,缩短发布链路。
13
+ v0.4.0 将生产发布收敛为一次冻结计划批准,并把无法自动安装的 Kimi 或 CodeBuddy 转为不阻塞发布的人工后续任务。
14
14
 
15
15
  **新增**
16
16
 
17
- - **可恢复的 ship 总编排**:新增 `ship` 命令持久化当前发布状态,可连续恢复 prepare、审批、publish、reconcile 与 verify,不依赖对话上下文重建发布权限。
18
- - **可复用钩子收据**:`hooks validate` 通过与 prepare 相同的内容绑定缓存执行项目钩子,输入未变化时无需重复运行。
19
- - **可验证的人工证明**:`attest` 在记录 Kimi 或 CodeBuddy 消费者证据前,会把申报的安装目录与精确冻结插件载荷进行核验。
20
- - **Git 传输预检**:任何远端写入前,生产发布会在全部仓库间选择一致可用的 HTTPS 或 SSH 传输,并阻断远端身份冲突。
17
+ - **人工消费者后续任务**:Kimi CodeBuddy 无法自动安装时,发布完成后记录人工安装待办,系统不再要求安装证明。
21
18
 
22
19
  **变更**
23
20
 
24
- - **合并人工决策**:普通路径最多只需一次钩子副作用授权和一次不可变计划审批;人工消费者要求会在自动验证前集中生成。
25
- - **并行消费者验证**:相互独立的消费者检查并行执行,全部收敛后再报告失败,并确定性排序证据。
26
- - **自动推进发布元数据**:验证成功后,各发布单元的 `previousPublicBaseline` 自动更新为冻结的公开 commit、tree 与 manifest digest。
27
- - **精简 prepare 输出**:JSON 结果改为通过路径和摘要引用不可变计划,不再内嵌完整计划。
21
+ - **单次发布批准**:普通生产发布只需批准一次不可变发布计划;调用命令即授权执行其配置的 hook 和 gate。
22
+ - **人工消费者不阻塞发布**:Kimi 和 CodeBuddy 的人工安装待办不再阻止自动发布达到 `VERIFIED`。
23
+
24
+ **移除**
25
+
26
+ - **冗余确认参数**:普通发布路径移除了重复输入 plan digest、production confirmation、hook authorization 和人工证明等交互。
28
27
  <!-- release-skill:managed:end id=latest-release -->
29
28
 
30
29
  <!-- release-skill:capability:external-write-boundary -->
31
- > **当前边界:** v0.3.0 是当前发布版本(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
30
+ > **当前边界:** v0.4.0 是当前发布版本(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
32
31
  > v0.1.1 已完成 GitHub 与 npm 的
33
32
  > 真实生产发布,是首次生产验证的历史里程碑,并从冻结 Git ref 完成精确 npm
34
33
  > 安装及 Claude/Codex 消费者安装验证;"当前发布版本"与"首次生产验证里程碑"
@@ -41,7 +40,7 @@ v0.3.0 将生产发布收敛为可恢复总编排,通过复用钩子收据、
41
40
  > 远端唯一性检查在 `publish` 全局预检执行。
42
41
 
43
42
  <!-- release-skill:capability:safe-first-command -->
44
- > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.3.0 是当前发布版本。**
43
+ > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.4.0 是当前发布版本。**
45
44
  > npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
46
45
  >
47
46
  > **第一条命令:**
@@ -51,9 +50,9 @@ v0.3.0 将生产发布收敛为可恢复总编排,通过复用钩子收据、
51
50
  <!-- release-skill:maturity:v0.1-boundary -->
52
51
  <!-- release-skill:maturity:boundary -->
53
52
  > **安全默认路径:** 推荐 `help → assess → prepare --offline → 人工审阅`;
54
- > 生产发布在此基础上显式增加 `prepare --production → approve publish
55
- > --confirm-production <planDigest>`;`bound` 前序公开基线必须使用
56
- > `prepare --online --production`。没有摘要确认就不会预检或写远端。
53
+ > 生产发布使用 `ship --target-version <ver> ship --approve --actor <name>`。
54
+ > `ship` 自动执行 hooks 和门禁,唯一的人工门禁是计划批准。
55
+ > Kimi/CodeBuddy 安装是非阻塞的人工后续任务(系统不核验)。
57
56
 
58
57
  ## 目录
59
58
 
@@ -105,28 +104,18 @@ CodeBuddy、Codex 和 Kimi Code 的完整命令见 [INSTALL.zh-CN.md](INSTALL.zh
105
104
 
106
105
  ### 主流程
107
106
 
108
- 日常发布优先使用可恢复的快速路径。它会持久化所有权威文件路径,正常流程最多
109
- 只需确认两个摘要:一次绑定当前配置与 hooks,一次绑定冻结计划;计划审批同时
110
- 授权该计划的发布后验证门禁。
107
+ 日常发布优先使用可恢复的快速路径。它会持久化所有权威文件路径,正常流程只需
108
+ 一次可读的冻结计划批准。`ship` 自动执行配置中的 hooks 和验证门禁,不进入
109
+ hook 授权等待态。Kimi/CodeBuddy 安装是发布完成后的非阻塞人工后续任务,
110
+ 系统不核验其完成结果。
111
111
 
112
112
  ```bash
113
113
  release-skill ship --root "$PROJECT" --target-version 1.2.3 --json
114
- release-skill ship --root "$PROJECT" --authorize-hooks <hookDigest> --actor "$ACTOR" --json
115
- release-skill ship --root "$PROJECT" --approve-plan <planDigest> --actor "$ACTOR" --json
116
- ```
117
-
118
- 如果存在交互式消费者,`ship` 会一次列出全部 Kimi/CodeBuddy 人工事项。安装并
119
- reload 后,用命令记录人工事实,不再手改 JSON,然后续跑 `ship`:
120
-
121
- ```bash
122
- release-skill attest --root "$PROJECT" --platform kimi --plugin my-plugin \
123
- --result passed --actor "$ACTOR" --install-path /actual/managed/plugin/path
124
- release-skill ship --root "$PROJECT" --json
114
+ release-skill ship --root "$PROJECT" --approve --actor "$ACTOR" --json
125
115
  ```
126
116
 
127
- 开发阶段可运行 `release-skill hooks validate
128
- --acknowledge-hook-side-effects`;它会执行声明的 hooks,并写入 `prepare`
129
- 可复用的内容绑定收据。
117
+ 开发阶段可运行 `release-skill hooks validate`;它会执行声明的 hooks,并写入
118
+ `prepare` 可复用的内容绑定收据。
130
119
 
131
120
  按以下顺序执行。步骤 1-4 是安全默认(只读或仅本地);步骤 5-9 需要显式人工门禁。
132
121
 
@@ -189,39 +178,32 @@ ACTOR=your-name
189
178
  ```
190
179
  4. **prepare** — 本地快照与计划冻结:
191
180
  ```bash
192
- "${CLI[@]}" prepare --root "$PROJECT" --offline \
193
- --acknowledge-hook-side-effects \
194
- --acknowledge-gate-side-effects --json
181
+ "${CLI[@]}" prepare --root "$PROJECT" --offline --json
195
182
  ```
196
- 只有项目配置没有对应 hook 或 snapshot gate 时,才省略相应授权参数。授权前必须审阅可执行文件、参数、工作目录和副作用,不能把授权参数当固定样板。
197
183
  5. **人工审阅:** 检查 `planPath`、`externalActions`、`targetVersion` 和 `planDigest`。
198
184
  6. **prepare --production** — 冻结生产计划:
199
185
  ```bash
200
- PLAN_JSON=$("${CLI[@]}" prepare --root "$PROJECT" --online --production \
201
- --acknowledge-hook-side-effects \
202
- --acknowledge-gate-side-effects --json)
186
+ PLAN_JSON=$("${CLI[@]}" prepare --root "$PROJECT" --online --production --json)
203
187
  PLAN_PATH=$(printf '%s\n' "$PLAN_JSON" | jq -r '.planPath')
204
188
  PLAN_DIGEST=$(printf '%s\n' "$PLAN_JSON" | jq -r '.planDigest')
205
189
  ```
206
- 7. **approve** — 人工批准(24 小时有效期):
190
+ 7. **approve** — 人工批准(24 小时有效期,摘要从计划自动读取):
207
191
  ```bash
208
192
  APPROVAL_JSON=$("${CLI[@]}" approve --plan "$PLAN_PATH" \
209
- --digest "$PLAN_DIGEST" --actor "$ACTOR" --json)
193
+ --actor "$ACTOR" --json)
210
194
  APPROVAL_PATH=$(printf '%s\n' "$APPROVAL_JSON" | jq -r '.approvalPath')
211
195
  ```
212
196
  8. **publish** — 远端写入开始:
213
197
  ```bash
214
198
  PUBLISH_JSON=$("${CLI[@]}" publish --root "$PROJECT" \
215
- --plan "$PLAN_PATH" --approval "$APPROVAL_PATH" \
216
- --confirm-production "$PLAN_DIGEST" --json)
199
+ --plan "$PLAN_PATH" --approval "$APPROVAL_PATH" --json)
217
200
  PUBLISH_RUN_PATH=$(printf '%s\n' "$PUBLISH_JSON" | jq -r '.runPath')
218
201
  ```
219
202
  `PUBLISHED` **不是**终态。
220
203
  9. **verify** — 消费者安装检查:
221
204
  ```bash
222
205
  "${CLI[@]}" verify --root "$PROJECT" \
223
- --plan "$PLAN_PATH" --run "$PUBLISH_RUN_PATH" \
224
- --acknowledge-gate-side-effects --json
206
+ --plan "$PLAN_PATH" --run "$PUBLISH_RUN_PATH" --json
225
207
  ```
226
208
 
227
209
  示例需要 `jq`。没有 jq 时,直接复制返回的 JSON 字段;不要把尖括号占位符当作 shell 语法。
@@ -234,12 +216,10 @@ ACTOR=your-name
234
216
  RECONCILE_JSON=$("${CLI[@]}" reconcile --root "$PROJECT" \
235
217
  --run "$PUBLISH_RUN_PATH" \
236
218
  --plan "$PLAN_PATH" \
237
- --approval "$APPROVAL_PATH" \
238
- --confirm-production "$PLAN_DIGEST" --json)
219
+ --approval "$APPROVAL_PATH" --json)
239
220
  RECONCILE_RUN_PATH=$(printf '%s\n' "$RECONCILE_JSON" | jq -r '.runPath')
240
221
  "${CLI[@]}" verify --root "$PROJECT" \
241
- --plan "$PLAN_PATH" --run "$RECONCILE_RUN_PATH" \
242
- --acknowledge-gate-side-effects --json
222
+ --plan "$PLAN_PATH" --run "$RECONCILE_RUN_PATH" --json
243
223
  ```
244
224
 
245
225
  `reconcile` 查询实际远端状态,跳过已一致步骤,只重试安全未完成的动作。远端冲突需人工决策。reconcile 成功只返回 `PUBLISHED`,不返回 `VERIFIED`。
@@ -257,7 +237,7 @@ DISCOVERED -> ASSESSED -> PREPARED -> APPROVED -> PUBLISHING -> PUBLISHED -> VER
257
237
 
258
238
  **保存契约:** release-skill 不重新生成或回写项目源文件。`prepare` 把每个配置的公开文件复制到隔离快照并验证字节。后续 prepare 重新读取当前文件,不会从模板重建。只有 `publicFiles` 列出的文件会被复制。`prepare` 不会刷新或重写人工文档——维护者先更新 README、INSTALL 和 CHANGELOG,再 prepare、审阅和批准。
259
239
 
260
- **写入安全:** `setup` 默认只读(摘要确认后仅首次创建配置)。`prepare` 只写 `.release-skill/`。`publish` 是生产写入入口,需要同时提供批准和当前计划摘要。项目 hook 和 gate 是已确认的本地进程,没有操作系统沙箱。
240
+ **写入安全:** `setup` 默认只读(摘要确认后仅首次创建配置)。`prepare` 只写 `.release-skill/`。`publish` 是生产写入入口,需要有效批准;内部计划摘要由系统自动绑定和校验。项目 hook 和 gate 在对应命令调用时获得授权,没有操作系统沙箱。
261
241
 
262
242
  **Workspace 源码权威:** 生产配置使用 `project.sourceRepository` 指定 workspace
263
243
  源仓库,并用 `project.defaultBranch` 指定其真实远端默认分支。prepare 冻结所有
@@ -438,7 +418,7 @@ hooks:
438
418
  envAllowlist: []
439
419
  ```
440
420
 
441
- hook 仅在人工审阅后、以 `--acknowledge-hook-side-effects` 显式授权后运行。gate 是发布校准的受控扩展点(见 `references/02-project-config.md`)。
421
+ hook `prepare` 调用时运行,命令调用本身即授权执行。gate 是发布校准的受控扩展点(见 `references/02-project-config.md`)。
442
422
 
443
423
  ## Skills
444
424
 
@@ -446,7 +426,7 @@ hook 仅在人工审阅后、以 `--acknowledge-hook-side-effects` 显式授权
446
426
  - `release-setup`:首次接入的只读发现、人工校准和 create-once 配置创建。
447
427
  - `release-assess`:只读发布就绪度报告。
448
428
  - `release-prepare`:本地快照和可审阅发布计划。
449
- - `release-publish`:经批准、摘要确认的冻结 GitHub+npm 发布。
429
+ - `release-publish`:经批准的冻结 GitHub+npm 发布;内部摘要由系统自动校验。
450
430
  - `release-reconcile`:基于证据恢复 PARTIAL;冲突时人工介入。
451
431
  - `release-verify`:发布后验证;只有 `VERIFIED` 才是 happy end。
452
432
 
@@ -459,10 +439,10 @@ hook 仅在人工审阅后、以 `--acknowledge-hook-side-effects` 显式授权
459
439
  | `npm` | 带 CLI 入口的 npm 包 | `npm install -g release-skill` |
460
440
  | `claude-plugin` | `adapters/claude/` 下的自包含闭包 | 自动化 marketplace 检查点 |
461
441
  | `codex-plugin` | `adapters/codex/` 下的自包含闭包 | 自动化 marketplace 检查点 |
462
- | `kimi-plugin` | 自包含闭包(无可脚本化安装接口) | 手动,需可信证明 |
463
- | `codebuddy-plugin` | 生成的 `adapters/workbuddy/`,带 `.codebuddy-plugin/plugin.json` | 手动,需可信证明 |
442
+ | `kimi-plugin` | 自包含闭包(无可脚本化安装接口) | 发布后非阻塞人工任务 |
443
+ | `codebuddy-plugin` | 生成的 `adapters/workbuddy/`,带 `.codebuddy-plugin/plugin.json` | 发布后非阻塞人工任务 |
464
444
 
465
- 每个适配器闭包都自带 CLI、skills 和 schemas 副本,安装后无需外部依赖即可运行。Claude/Codex 验证是自动化的;Kimi Code 和 CodeBuddy/WorkBuddy 需要绑定冻结计划摘要的可信证明。
445
+ 每个适配器闭包都自带 CLI、skills 和 schemas 副本,安装后无需外部依赖即可运行。Claude/Codex 验证是自动化的;Kimi Code 和 CodeBuddy/WorkBuddy 以 `manualFollowUps` 返回并标记 `verifiedBySystem: false`,其完成情况不阻塞自动发布进入 `VERIFIED`。
466
446
 
467
447
  每个 npm 分发在 `prepare` 时都会针对精确封装的 tarball 静态校验
468
448
  `package.json` 声明的具体入口。`publish` 与 `reconcile` 在任何远端动作前对同一
@@ -477,7 +457,7 @@ hook 仅在人工审阅后、以 `--acknowledge-hook-side-effects` 显式授权
477
457
  - 不声称已经替项目完成真实生产 canary,不声称已完成真实插件市场验证;
478
458
  - `prepare --online` 只观察 bound 前序基线;目标唯一性由 publish 全局预检完成;
479
459
  - 不覆盖已有 branch/tag/Release,不 unpublish npm;
480
- - 不提供自动化 CodeBuddy/WorkBuddy marketplace 安装检查点——codebuddy CLI 无法钉死冻结 ref,安装为手动步骤,经与 Kimi Code 相同的可信证明闭环确认;
460
+ - 不提供 Kimi 或 CodeBuddy/WorkBuddy marketplace 自动安装检查点——这些安装是发布后明确的团队待办,系统不核验其完成结果;
481
461
  - 不承诺 Windows 或广泛的跨平台原生写入;
482
462
  - 不会隐藏地 commit、push、打 tag、创建 Release 或发布包。
483
463
 
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.3.0",
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.3.0",
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": "广州市风荷科技有限公司"