release-skill 0.9.7 → 0.9.8

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 (34) hide show
  1. package/.agents/plugins/marketplace.json +9 -0
  2. package/.claude-plugin/marketplace.json +11 -1
  3. package/.claude-plugin/plugin.json +1 -1
  4. package/.codebuddy-plugin/plugin.json +1 -1
  5. package/.codex-plugin/plugin.json +2 -2
  6. package/.kimi-plugin/plugin.json +1 -1
  7. package/CHANGELOG.md +27 -0
  8. package/INSTALL.md +17 -9
  9. package/INSTALL.zh-CN.md +15 -9
  10. package/README.md +32 -27
  11. package/README.zh-CN.md +27 -25
  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 +280 -45
  15. package/adapters/claude/skills/release-finish/SKILL.md +12 -4
  16. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  17. package/adapters/codex/bin/release-skill.bundle.mjs +280 -45
  18. package/adapters/codex/skills/release-finish/SKILL.md +12 -4
  19. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  20. package/adapters/kimi/bin/release-skill.bundle.mjs +280 -45
  21. package/adapters/kimi/skills/release-finish/SKILL.md +12 -4
  22. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  23. package/adapters/workbuddy/bin/release-skill.bundle.mjs +280 -45
  24. package/adapters/workbuddy/skills/release-finish/SKILL.md +12 -4
  25. package/bin/release-skill.bundle.mjs +280 -45
  26. package/package.json +1 -1
  27. package/platform-manifest.json +4 -4
  28. package/skills/release-finish/SKILL.md +12 -4
  29. package/skills-src/release-finish/SKILL.md +12 -4
  30. package/src/commands/post-release-local.mjs +274 -39
  31. package/src/commands/ship.mjs +4 -6
  32. package/src/commands/verify.mjs +8 -8
  33. package/src/core/postpublish.mjs +24 -0
  34. package/src/core/recovery.mjs +8 -6
@@ -18,6 +18,15 @@
18
18
  },
19
19
  "category": "DevOps",
20
20
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification"
21
+ },
22
+ {
23
+ "name": "foundation-adoption-review",
24
+ "source": {
25
+ "source": "url",
26
+ "url": "https://github.com/ifoohoo/foundation-adoption-review.git",
27
+ "ref": "refs/tags/foundation-adoption-review-v0.1.0",
28
+ "sha": "7e8032735f7589dbbeecc1012c8f6a1f32390ada"
29
+ }
21
30
  }
22
31
  ]
23
32
  }
@@ -9,12 +9,22 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.9.7",
12
+ "version": "0.9.8",
13
13
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
14
14
  "author": {
15
15
  "name": "广州市风荷科技有限公司"
16
16
  },
17
17
  "license": "Apache-2.0"
18
+ },
19
+ {
20
+ "name": "foundation-adoption-review",
21
+ "source": {
22
+ "source": "github",
23
+ "repo": "ifoohoo/foundation-adoption-review",
24
+ "ref": "foundation-adoption-review-v0.1.0",
25
+ "sha": "7e8032735f7589dbbeecc1012c8f6a1f32390ada"
26
+ },
27
+ "version": "0.1.0"
18
28
  }
19
29
  ]
20
30
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.7",
3
+ "version": "0.9.8",
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.9.7",
3
+ "version": "0.9.8",
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.9.7",
3
+ "version": "0.9.8",
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.9.7.",
22
+ "Prepare a release plan for version 0.9.8.",
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.9.7",
3
+ "version": "0.9.8",
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,32 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.9.8 locale=en baseline=sha256:ed56048811dd7946bfdaa4022d0430906db713ef86eed1528395dbfb031b075e -->
4
+ ## [0.9.8] - 2026-09-04
5
+
6
+ 0.9.8 is a local source candidate that makes release-finish safe across receiver boundaries and current local hosts. It removes Hub-specific work from the public finishing flow, verifies frozen Claude and Codex marketplace identities before rebind writes, supports the Kimi Code 0.40.1 TUI, and skips empty distribute runs for plans that contain only postVerify hooks. It consumes the three Foundation packages at the exact 0.16.0 release. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
7
+
8
+ ### Security
9
+
10
+ - Claude and Codex verify the frozen marketplace repository, ref, and commit before the first marketplace or plugin write when a rebind is required. An unreachable remote, missing ref, or commit mismatch returns `MANUAL_REQUIRED` for that host with zero host writes; other selected hosts continue.
11
+ - Kimi Code plugin trust proceeds only when the dialog contains the frozen repository and tag and the selected row is confirmed as `Trust and install`. A `Trust this folder?` dialog, an unknown screen, timeout, EOF, or mismatched identity fails closed before unintended confirmation.
12
+ - Kimi Code reports success only after the TUI displays its install-finished result and the installed registry, package version, tag, revision, managed root, and payload all match the frozen plan.
13
+ - Any host plan remains a qualified frozen-plan path and requires a VERIFIED-run from the same release lineage before host acceptance; this source candidate does not provide that acceptance.
14
+
15
+ ### Changed
16
+
17
+ - The public release-finish flow treats a `proposal-inbox` postVerify hook as proposal delivery plus delivery evidence. The receiver applies, renders, and synchronizes the proposal under its own runbook and governance; no Hub repository or push sequence is built into the public Skill.
18
+ - Local-host ordering follows each host's frozen installation source. Receiver completion is not a universal prerequisite for updating unrelated hosts.
19
+ - Kimi Code resolves its effective configuration root from explicit `kimiHome`, then `KIMI_CODE_HOME`, then `~/.kimi-code`; the TUI process and post-install observation use the same root.
20
+ - The Kimi Code 0.40.1 TUI path normalizes ANSI/OSC control sequences and soft-wrapped URLs, uses a wide pseudo-terminal, submits commands through bracketed paste plus CSI Enter, and waits for explicit prompt, trust, install-result, reload, and exit states.
21
+ - A single phase-aware postPublish predicate now requires distribute only for targets, explicit distribute hooks, or hooks whose omitted phase defaults to distribute. A plan containing only postVerify hooks moves from PUBLISHED directly to verify and runs postVerify independently after VERIFIED.
22
+ - The current 0.9.8 candidate includes the narrow R-05 Hook cache v2 consumer path, keeps the CodeBuddy plugin entry explicit as `marketplace: release-skill`, and keeps `--root <project-root>` in release-finish local-finish examples. Foundation dependencies are pinned to the three released 0.16.0 packages.
23
+
24
+ ### Upgrade Notes
25
+
26
+ Prepare and approve a new 0.9.8 production plan for these changes. After verify reaches `VERIFIED`, complete every declared postVerify hook with its own immutable checkpoint approval before running release-finish. Real-host acceptance can begin only after 0.9.8 is officially published and VERIFIED; the official 0.9.8 entry must be installed or reloaded first. A source candidate, an older installed entry, or the mere existence of plan and run files cannot complete real-host acceptance. Each selected host must complete a first successful update. On the second run, Claude, Kimi, CodeBuddy, and WorkBuddy must report `ALREADY_CURRENT`; Codex may report `UPDATED` only when it reinstalls the same exact 0.9.8 frozen reference, payload validation passes, and `restartRequired=true` is declared. The local updater uses the Kimi Code TUI path verified for 0.40.1; it does not switch to a web or REST installation path. Confirm the frozen repository and tag shown by the plugin trust dialog, and never approve a folder-trust dialog as part of plugin installation. This candidate does not claim that 0.9.8 has already been published or VERIFIED.
27
+ <!-- release-skill:changelog:end version=0.9.8 locale=en -->
28
+
29
+
3
30
  <!-- release-skill:changelog:start version=0.9.7 locale=en baseline=sha256:6e411cb3026241b30954e2f23e0eadc8674b3531927e8c5069c92b46749fdb01 -->
4
31
  ## [0.9.7] - 2026-09-02
5
32
 
package/INSTALL.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.7 -->
5
+ <!-- release-skill:release-version: 0.9.8 -->
6
6
  ## Prerequisites
7
7
 
8
8
  - Node.js 22.0.0 or later
@@ -41,7 +41,7 @@ Claude Code, CodeBuddy, WorkBuddy, and Codex install release-skill from the
41
41
  bundled-family marketplace [ifoohoo/release-skill](https://github.com/ifoohoo/release-skill).
42
42
  The plugin repository itself carries the marketplace manifest
43
43
  (`.claude-plugin/marketplace.json`), so no external marketplace is required.
44
- Kimi Code has no marketplace install API — see the
44
+ release-skill currently invokes no scriptable install API for Kimi Code — see the
45
45
  [Kimi Code section](#install-as-a-kimi-code-plugin). Add the marketplace once,
46
46
  then install the plugin:
47
47
 
@@ -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 a post-release manual
82
- task pinned to a specific release tag. release-skill reports the task but does
83
- not verify its completion.
81
+ release-skill currently uses the version-pinned interactive TUI path for Kimi
82
+ Code. The release state machine reports installation as a post-release manual
83
+ task and does not verify its completion.
84
84
 
85
85
  ### Alternative: direct repository install (advanced)
86
86
 
@@ -103,8 +103,8 @@ 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
- Kimi Code has an interactive plugin marketplace but **no scriptable,
107
- non-interactive install API**. For new release plans, `publish` completes the
106
+ release-skill currently uses and verifies only Kimi Code's interactive TUI path;
107
+ it invokes **no scriptable, non-interactive install API**. For new release plans, `publish` completes the
108
108
  automated remote writes and returns a non-blocking `manualFollowUps` entry with
109
109
  the pinned install URL. `verify` does not install or inspect Kimi and reports
110
110
  `verifiedBySystem: false`; the task does not block `VERIFIED`.
@@ -114,7 +114,7 @@ tag pinned to the exact version (never the bare repository URL, which installs
114
114
  the latest release or default branch), confirm the trust prompt, then reload:
115
115
 
116
116
  ```
117
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.7
117
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.8
118
118
  /plugins reload
119
119
  ```
120
120
 
@@ -129,7 +129,15 @@ installation or migration, release-finish re-reads Kimi's managed installation r
129
129
  rather than reusing the pre-operation observation, then verifies the final identity
130
130
  and actual payload. If the existing entry is a legacy local-path
131
131
  install, release-finish removes it and installs the pinned release tag in the
132
- same TUI session before accepting the trust prompt and reloading. This local
132
+ same TUI session before accepting the plugin trust prompt and reloading.
133
+
134
+ The effective configuration root is explicit `kimiHome`, then
135
+ `KIMI_CODE_HOME`, then `~/.kimi-code`. The TUI process and post-operation
136
+ observation use that same root. release-finish strips ANSI/OSC control sequences
137
+ and soft wrapping before it checks the frozen repository, tag, and selected
138
+ `Trust and install` action inside the plugin trust dialog. A `Trust this folder?`
139
+ prompt, unknown interface, timeout, early exit, or identity mismatch stops the
140
+ flow without confirming folder trust or continuing installation. This local
133
141
  check is not part of `verify` and does not alter the `VERIFIED` release state.
134
142
 
135
143
  No receipt or attestation is required. The `attest` command remains available
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.9.7 -->
5
+ <!-- release-skill:release-version: 0.9.8 -->
6
6
  ## 前置条件
7
7
 
8
8
  - Node.js 22.0.0 或更高版本
@@ -37,8 +37,8 @@ release-skill help
37
37
  Claude Code、CodeBuddy、WorkBuddy 和 Codex 从 bundled-family 市场
38
38
  [ifoohoo/release-skill](https://github.com/ifoohoo/release-skill)
39
39
  安装 release-skill。插件仓库自身携带市场清单
40
- (`.claude-plugin/marketplace.json`),无需外部市场。Kimi Code 没有市场安装
41
- 接口——见 [Kimi Code 小节](#安装为-kimi-code-插件)。先添加一次市场,再安装
40
+ (`.claude-plugin/marketplace.json`),无需外部市场。release-skill 当前没有接入
41
+ Kimi Code 的可脚本化安装接口,见 [Kimi Code 小节](#安装为-kimi-code-插件)。先添加一次市场,再安装
42
42
  插件:
43
43
 
44
44
  > **前置条件:GitHub 访问。** `owner/repo` 简写会让 Claude Code 通过
@@ -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
- release-skill 会返回待办,但不核验其完成结果。
76
+ release-skill 当前对 Kimi Code 采用钉死版本的交互式 TUI 路径。发布状态机会把安装
77
+ 列为发布后人工待办,不核验其完成结果。
78
78
 
79
79
  ### 备选:直接从仓库安装(进阶)
80
80
 
@@ -95,8 +95,8 @@ Kimi Code 是与 Claude Code 和 Codex 并列的受支持插件宿主。Kimi Cod
95
95
  `.codex-plugin/plugin.json` 对应;包内同时提供 `adapters/kimi/`,与
96
96
  `adapters/claude/`、`adapters/codex/` 并列。
97
97
 
98
- Kimi Code 有交互式插件市场,但**没有可脚本化的非交互安装接口**。因此
99
- 新发布计划中,`publish` 完成自动化远端写入后返回非阻塞的
98
+ release-skill 当前只采用并验证 Kimi Code 的交互式 TUI 路径,**无可脚本化安装接口
99
+ 接入**。因此新发布计划中,`publish` 完成自动化远端写入后返回非阻塞的
100
100
  `manualFollowUps`,其中含钉死的安装 URL;`verify` 不安装也不检查 Kimi,返回
101
101
  `verifiedBySystem: false`,该待办不阻塞 `VERIFIED`。
102
102
 
@@ -104,7 +104,7 @@ Kimi Code 有交互式插件市场,但**没有可脚本化的非交互安装
104
104
  (切勿使用裸仓库地址,它会安装最新 release 或默认分支),确认信任提示后重新加载:
105
105
 
106
106
  ```
107
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.7
107
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.8
108
108
  /plugins reload
109
109
  ```
110
110
 
@@ -114,7 +114,13 @@ Kimi Code 有交互式插件市场,但**没有可脚本化的非交互安装
114
114
  完成后核对结果。`.git` 目录只提供附加诊断,不是通过条件。发生安装或迁移后,
115
115
  release-finish 会重新读取 Kimi 的受管安装根,不复用操作前的观察;随后核对最终身份与
116
116
  真实载荷。若现有条目来自旧的本地路径安装,release-finish 会在同一个 TUI 会话中先
117
- 移除,再按发布标签安装、确认信任并重新加载。这个本机检查不属于 `verify`,也不会改变
117
+ 移除,再按发布标签安装、确认插件信任并重新加载。
118
+
119
+ 有效配置根依次取显式 `kimiHome`、`KIMI_CODE_HOME`、`~/.kimi-code`,TUI 进程和
120
+ 操作后观察使用同一根。release-finish 会先清理 ANSI/OSC 控制序列和软换行,再在插件
121
+ 信任对话框内核对冻结仓库、标签和当前选中的 `Trust and install`。出现
122
+ `Trust this folder?`、未知界面、超时、提前退出或身份不一致时,流程停止,不确认目录
123
+ 信任,也不继续安装。这个本机检查不属于 `verify`,也不会改变
118
124
  已经完成的 `VERIFIED` 发布状态。
119
125
 
120
126
  新计划无需收据或人工证明。`attest` 命令仅兼容缺少
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.9.7 -->
5
+ <!-- release-skill:release-version: 0.9.8 -->
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,34 +14,33 @@ 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.9.7** (2026-09-02)
17
+ **0.9.8** (2026-09-04)
18
18
 
19
- 0.9.7 is a local source candidate that retains the 0.9.6 postverify and isolated install-tree safeguards and corrects verify's bundled-family install-root coordinate: when an adapter `installPath` is already the installed plugin root, manifest `skills` are interpreted relative to `.`. It consumes the three Foundation packages at the exact 0.16.0 release. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
19
+ 0.9.8 is a local source candidate that makes release-finish safe across receiver boundaries and current local hosts. It removes Hub-specific work from the public finishing flow, verifies frozen Claude and Codex marketplace identities before rebind writes, supports the Kimi Code 0.40.1 TUI, and skips empty distribute runs for plans that contain only postVerify hooks. It consumes the three Foundation packages at the exact 0.16.0 release. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
20
20
 
21
21
  **Security**
22
22
 
23
- - `postverify` binds `planDigest`, the source `VERIFIED` run, each `hookId`, and its immutable hook approval; expired or mismatched approvals fail closed before hook execution, without adding a second state or authority.
24
- - Declared payload symlinks, frozen-source symlinks, and legacy install-tree symlinks continue to fail closed; host-added symlinks are recorded as raw targets only.
25
- - Missing paths, files, and symlinks continue to fail closed.
23
+ - Claude and Codex verify the frozen marketplace repository, ref, and commit before the first marketplace or plugin write when a rebind is required. An unreachable remote, missing ref, or commit mismatch returns `MANUAL_REQUIRED` for that host with zero host writes; other selected hosts continue.
24
+ - Kimi Code plugin trust proceeds only when the dialog contains the frozen repository and tag and the selected row is confirmed as `Trust and install`. A `Trust this folder?` dialog, an unknown screen, timeout, EOF, or mismatched identity fails closed before unintended confirmation.
25
+ - Kimi Code reports success only after the TUI displays its install-finished result and the installed registry, package version, tag, revision, managed root, and payload all match the frozen plan.
26
26
  - Any host plan remains a qualified frozen-plan path and requires a VERIFIED-run from the same release lineage before host acceptance; this source candidate does not provide that acceptance.
27
27
 
28
28
  **Changed**
29
29
 
30
- - When an adapter `installPath` is already the installed plugin root, verify interprets the manifest's `skills` path relative to `.`. prepare and publish keep their frozen-snapshot coordinates unchanged.
31
- - Allow multiple frozen host manifests to share one non-empty canonical source Skill surface; closure scans that surface once while host coverage retains every declared host.
32
- - Before any external write, publish re-derives the frozen manifest claims and rechecks the closure.
33
- - Consumer install paths remain isolated by host realpath; overlapping realpaths fail closed.
34
- - Retain the public `postverify` path and the stable isolated install-tree record path; this candidate does not expand standalone-index or host acceptance support.
35
- - Use Foundation 0.16.0 `createFilesystemRootBinding` and `observeFilesystemTree` in record mode for Claude and Codex marketplace install-tree observation; ordinary files keep the existing comparison, directories stay out of extra installed paths, and the frozen `manifestDigest` remains unchanged.
36
- - Keep the narrow R-05 Hook cache v2 consumer path, the explicit CodeBuddy plugin entry (`marketplace: release-skill`), and `--root <project-root>` in release-finish local-finish examples.
30
+ - The public release-finish flow treats a `proposal-inbox` postVerify hook as proposal delivery plus delivery evidence. The receiver applies, renders, and synchronizes the proposal under its own runbook and governance; no Hub repository or push sequence is built into the public Skill.
31
+ - Local-host ordering follows each host's frozen installation source. Receiver completion is not a universal prerequisite for updating unrelated hosts.
32
+ - Kimi Code resolves its effective configuration root from explicit `kimiHome`, then `KIMI_CODE_HOME`, then `~/.kimi-code`; the TUI process and post-install observation use the same root.
33
+ - The Kimi Code 0.40.1 TUI path normalizes ANSI/OSC control sequences and soft-wrapped URLs, uses a wide pseudo-terminal, submits commands through bracketed paste plus CSI Enter, and waits for explicit prompt, trust, install-result, reload, and exit states.
34
+ - A single phase-aware postPublish predicate now requires distribute only for targets, explicit distribute hooks, or hooks whose omitted phase defaults to distribute. A plan containing only postVerify hooks moves from PUBLISHED directly to verify and runs postVerify independently after VERIFIED.
35
+ - The current 0.9.8 candidate includes the narrow R-05 Hook cache v2 consumer path, keeps the CodeBuddy plugin entry explicit as `marketplace: release-skill`, and keeps `--root <project-root>` in release-finish local-finish examples. Foundation dependencies are pinned to the three released 0.16.0 packages.
37
36
 
38
37
  **Upgrade Notes**
39
38
 
40
- Prepare a new 0.9.7 plan when adopting this candidate. The `postverify` command requires the same plan digest, a source `VERIFIED` run, and an immutable approval for each declared hook; an expired or mismatched approval stops before hook execution. Real-host acceptance can begin only after 0.9.7 is officially published and VERIFIED; the official 0.9.7 entry must be installed or reloaded first. A source candidate, an older installed entry, or the mere existence of plan and run files cannot complete real-host acceptance. Each selected host must complete a first successful update. On the second run, Claude, Kimi, CodeBuddy, and WorkBuddy must report `ALREADY_CURRENT`; Codex may report `UPDATED` only when it reinstalls the same exact 0.9.7 frozen reference, payload validation passes, and `restartRequired=true` is declared. Before the official 0.9.7 release and VERIFIED result, do not claim that GLAF4 passed. After the official 0.9.7 release, the original GLAF4 0.5.4 immutable plan and PUBLISHED run can be reverified; GLAF4 does not need to be reissued. This source candidate does not claim publication, GLAF4 acceptance, or consumer-installation verification.
39
+ Prepare and approve a new 0.9.8 production plan for these changes. After verify reaches `VERIFIED`, complete every declared postVerify hook with its own immutable checkpoint approval before running release-finish. Real-host acceptance can begin only after 0.9.8 is officially published and VERIFIED; the official 0.9.8 entry must be installed or reloaded first. A source candidate, an older installed entry, or the mere existence of plan and run files cannot complete real-host acceptance. Each selected host must complete a first successful update. On the second run, Claude, Kimi, CodeBuddy, and WorkBuddy must report `ALREADY_CURRENT`; Codex may report `UPDATED` only when it reinstalls the same exact 0.9.8 frozen reference, payload validation passes, and `restartRequired=true` is declared. The local updater uses the Kimi Code TUI path verified for 0.40.1; it does not switch to a web or REST installation path. Confirm the frozen repository and tag shown by the plugin trust dialog, and never approve a folder-trust dialog as part of plugin installation. This candidate does not claim that 0.9.8 has already been published or VERIFIED.
41
40
  <!-- release-skill:managed:end id=latest-release -->
42
41
 
43
42
  <!-- release-skill:capability:external-write-boundary -->
44
- > **Current boundary:** v0.9.7 is the current source candidate. This README
43
+ > **Current boundary:** v0.9.8 is the current source candidate. This README
45
44
  > records intended scope and verification boundaries; it is not evidence of
46
45
  > publication, consumer-installation verification, or independent acceptance.
47
46
  > Release availability must be established from the corresponding release records
@@ -65,7 +64,7 @@ Prepare a new 0.9.7 plan when adopting this candidate. The `postverify` command
65
64
  > publish global preflight.
66
65
 
67
66
  <!-- release-skill:capability:safe-first-command -->
68
- > **Production path verified since the v0.1.1 milestone; v0.9.7 is the current
67
+ > **Production path verified since the v0.1.1 milestone; v0.9.8 is the current
69
68
  > source candidate. Its README does not establish publication,
70
69
  > consumer-installation verification, or independent acceptance.**
71
70
  > The npm-installed CLI is the supported user entry. Source checkout
@@ -142,13 +141,11 @@ This scope summary is not a remote publication record or a consumer upgrade inst
142
141
  > `proposal-inbox`, `marketplace-registry-entry`, `docs-refresh`, and
143
142
  > `notify-handoff` (declared in `hooks` form). `proposal-inbox` delivers a
144
143
  > machine-readable update proposal through a git-push or local-file transport
145
- > for autonomous downstream consumption; without a target it degrades to
144
+ > and records the delivery result. The receiver applies, renders, and publicly
145
+ > synchronizes the proposal under the receiver's own runbook and governance;
146
+ > delivery does not prove those receiver-side steps. Without a target it degrades to
146
147
  > `notify-handoff` behavior instead of failing. `notify-handoff` is the
147
148
  > zero-write floor: it only renders a deterministic manual sync checklist.
148
- > release-skill dogfoods this capability: this repository's own project
149
- > configuration declares a `proposal-inbox` (git-push) hub-entry proposal
150
- > toward the public `skill-family-hub` repository, to be delivered during the
151
- > v0.7.0 release in the postVerify phase under its own checkpoint approval.
152
149
  <!-- release-skill:capability:postpublish-presets -->
153
150
 
154
151
  <!-- release-skill:capability:postverify-stage -->
@@ -255,8 +252,9 @@ marketplace `ifoohoo/release-skill`:
255
252
  > `/plugin marketplace add https://github.com/ifoohoo/release-skill` — or set
256
253
  > `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.
257
254
 
258
- **Kimi Code:** Kimi Code has no marketplace install API. Install manually from a
259
- pinned release tag see [INSTALL.md](INSTALL.md#install-as-a-kimi-code-plugin).
255
+ **Kimi Code:** release-skill currently invokes no scriptable install API for
256
+ Kimi Code. It uses the version-pinned interactive TUI path described in
257
+ [INSTALL.md](INSTALL.md#install-as-a-kimi-code-plugin).
260
258
 
261
259
  See [INSTALL.md](INSTALL.md) for CodeBuddy, Codex, and Kimi Code commands.
262
260
 
@@ -754,7 +752,7 @@ closures. A release unit declares what reaches users via `distributions`:
754
752
  | `npm` | npm package with CLI entry | `npm install -g release-skill` |
755
753
  | `claude-plugin` | self-contained closure under `adapters/claude/` | automated marketplace checkpoint |
756
754
  | `codex-plugin` | self-contained closure under `adapters/codex/` | automated marketplace checkpoint |
757
- | `kimi-plugin` | self-contained closure (no scriptable install API) | non-blocking post-release manual task |
755
+ | `kimi-plugin` | self-contained closure (release-skill invokes no scriptable install API) | non-blocking post-release manual task |
758
756
  | `codebuddy-plugin` | generated `adapters/workbuddy/` with `.codebuddy-plugin/plugin.json` | non-blocking post-release manual task |
759
757
 
760
758
  Each adapter closure bundles its own CLI, skills, and schemas for zero external
@@ -765,11 +763,18 @@ verification is automated. Kimi Code and CodeBuddy/WorkBuddy are returned as
765
763
  condition for the automated release to reach `VERIFIED`.
766
764
 
767
765
  After `VERIFIED`, the optional `release-finish` workflow can update Claude and
768
- Codex from the frozen marketplace identity, migrate or update Kimi through one
769
- controlled TUI session and verify its real managed payload, or update an existing
766
+ Codex from the frozen marketplace identity. When either marketplace needs
767
+ rebinding, a read-only remote check must prove the frozen repository, ref, and
768
+ commit before that host's first write; a failed check leaves that host unchanged
769
+ without stopping other selected hosts. The workflow can also migrate or update
770
+ Kimi through one controlled TUI session and verify its real managed payload, or update an existing
770
771
  bundled-family CodeBuddy/WorkBuddy entry when the frozen tag and mutable branch
771
772
  both resolve to the frozen commit. It requires explicit user confirmation and
772
- does not change release status. Missing, standalone, inaccessible, or ambiguous
773
+ does not change release status. Kimi uses one effective configuration root:
774
+ explicit `kimiHome`, then `KIMI_CODE_HOME`, then `~/.kimi-code`. The TUI and
775
+ post-operation observation share that root. A `Trust this folder?` prompt,
776
+ unknown interface, timeout, early exit, or unprovable plugin identity returns a
777
+ manual or failed result without confirming folder trust. Missing, standalone, inaccessible, or ambiguous
773
778
  CodeBuddy/WorkBuddy targets remain manual and receive no host mutation.
774
779
  WorkBuddy local updates are macOS-only; on other platforms they are skipped as
775
780
  unsupported. When a plan declares postVerify hooks, release-finish must receive
package/README.zh-CN.md CHANGED
@@ -2,40 +2,39 @@
2
2
 
3
3
  [English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.7 -->
5
+ <!-- release-skill:release-version: 0.9.8 -->
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.9.7** (2026-09-02)
11
+ **0.9.8** (2026-09-04)
12
12
 
13
- 0.9.7 是保留 0.9.6 postverify 和隔离安装树安全边界、并修正 verify bundled-family 安装根坐标的本地源码候选:当适配器的 `installPath` 已经是安装后的插件根目录时,manifest `skills` 路径按 `.` 解释。三项 Foundation 依赖均精确消费已发布的 0.16.0。本说明不代表已经发布、完成真实宿主验收、完成消费者安装验证或通过独立验收。
13
+ 0.9.8 是修正 release-finish 接收端边界和当前本机宿主安全性的本地源码候选。它从公共收尾流程移除 Hub 专属操作,在 Claude Codex 重绑市场前验证冻结身份,支持 Kimi Code 0.40.1 TUI,并让只有 postVerify hook 的计划跳过空 distribute。三项 Foundation 依赖均精确消费已发布的 0.16.0。本说明不代表已经发布、完成真实宿主验收、完成消费者安装验证或通过独立验收。
14
14
 
15
15
  **安全**
16
16
 
17
- - `postverify` 绑定 `planDigest`、源 `VERIFIED` run、每个 `hookId` 和对应的不可变 hook approval;批准过期或不匹配时,在执行 hook 前失败关闭,不增加第二状态或第二权威。
18
- - 声明载荷 symlink、冻结源码 symlinklegacy 安装树 symlink 继续失败关闭;宿主新增 symlink 只记录原始目标。
19
- - 缺失路径、文件和 symlink 继续失败关闭。
17
+ - Claude Codex 仅在确实需要重绑时,于第一条市场或插件写命令前验证冻结的 marketplace 仓库、ref commit。远端不可达、ref 缺失或 commit 不一致时,该宿主以零写入返回 `MANUAL_REQUIRED`,其他已选宿主继续。
18
+ - Kimi Code 只有在插件信任对话框包含冻结 repo tag,且选中项确认为 `Trust and install` 时才继续。出现 `Trust this folder?`、未知界面、超时、EOF 或身份不一致时,在意外确认前失败关闭。
19
+ - Kimi Code 只有在 TUI 显示安装完成,而且安装登记、package version、tag、revision、受管根和载荷都与冻结计划一致后才报告成功。
20
20
  - 任何宿主计划都必须是合格冻结计划,并要求同一发布谱系的 VERIFIED run 才能开始宿主验收;本源码候选不提供该验收。
21
21
 
22
22
  **变更**
23
23
 
24
- - 当适配器的 `installPath` 已经是安装后的插件根目录时,verify `.` 解释 manifest `skills` 路径;prepare 和 publish 的冻结快照坐标保持不变。
25
- - 允许多份冻结 host manifest 共享同一个非空 canonical source Skill surface;closure 只扫描一次,host coverage 保留每个已声明宿主。
26
- - publish 在任何外部写入前按冻结 manifest 事实重新派生 claims 并重检 closure。
27
- - 消费者安装路径继续按宿主 realpath 隔离;realpath 重合时失败关闭。
28
- - 保留公开 `postverify` 路径和稳定的隔离安装树记录路径;本候选不扩展 standalone-index 或宿主验收支持。
29
- - Claude Codex 市场安装树继续使用 Foundation 0.16.0 `createFilesystemRootBinding` record 模式 `observeFilesystemTree`;普通文件继续使用现有比较,目录不进入额外安装路径,冻结的 `manifestDigest` 保持不变。
30
- - 保留窄范围的 R-05 Hook cache v2 消费路径、CodeBuddy 插件显式的 `marketplace: release-skill` 条目,以及 release-finish 本机收尾示例中的 `--root <project-root>`。
24
+ - 公共 release-finish 只把 `proposal-inbox` postVerify hook 定义为提案送达和送达证据。接收端按自身 runbook 和治理应用、渲染与同步提案;公共 Skill 不再内置 Hub 仓库或推送顺序。
25
+ - 本机宿主顺序按各宿主在冻结计划中的真实安装来源决定。接收端完成不是更新无关宿主的统一前置条件。
26
+ - Kimi Code 有效配置根依次取显式 `kimiHome`、`KIMI_CODE_HOME` `~/.kimi-code`;TUI 进程与安装后观察使用同一根目录。
27
+ - Kimi Code 0.40.1 TUI 路径会归一 ANSI/OSC 控制序列和 URL 软换行,使用宽伪终端,以 bracketed paste 加 CSI Enter 提交命令,并显式等待提示符、插件信任、安装结果、重载与退出状态。
28
+ - 统一的 phase-aware postPublish 判定只在存在 target、显式 distribute hook,或 hook 缺省 phase 按既有规则属于 distribute 时要求 distribute。只有 postVerify hook 的计划从 PUBLISHED 直接进入 verify,并在 VERIFIED 后独立执行 postVerify。
29
+ - 当前 0.9.8 候选包含窄范围的 R-05 Hook cache v2 消费路径,保留 CodeBuddy 插件显式的 `marketplace: release-skill` 条目,并在 release-finish 本机收尾示例中保留 `--root <project-root>`。Foundation 三包精确依赖已发布的 0.16.0。
31
30
 
32
31
  **升级说明**
33
32
 
34
- 采用本候选时请重新准备 0.9.7 计划。`postverify` 要求同一计划摘要、源 `VERIFIED` run,以及每个已声明 hook 的不可变 approval;批准过期或不匹配时会在执行 hook 前停止。真实宿主验收只有在 0.9.7 正式发布并达到 VERIFIED 后才能开始;必须先安装或重载正式的 0.9.7 入口。源码候选、旧的已安装入口,或仅存在计划和运行文件,都不能完成真实宿主验收。每个选定宿主都必须先完成首次成功更新。第二次运行时,Claude、Kimi、CodeBuddy 和 WorkBuddy 必须返回 `ALREADY_CURRENT`;Codex 可以使用 `UPDATED`,但只有在重新安装同一精确 0.9.7 冻结引用、载荷验证通过并声明 `restartRequired=true` 时才允许这样返回。在 0.9.7 正式发布并达到 VERIFIED 前,不宣称 GLAF4 已通过。0.9.7 正式发布后,可以复验原 GLAF4 0.5.4 不可变计划和 PUBLISHED run;无需重新发布 GLAF4。本源码候选不代表已经发布、完成 GLAF4 验收或完成消费者安装验证。
33
+ 采用这些修复时,应准备并批准新的 0.9.8 production plan。verify 达到 `VERIFIED` 后,先用各 hook 独立的不可变 checkpoint approval 完成所有已声明 postVerify,再运行 release-finish。真实宿主验收只有在 0.9.8 正式发布并达到 VERIFIED 后才能开始;必须先安装或重载正式的 0.9.8 入口。源码候选、旧的已安装入口,或仅存在计划和运行文件,都不能完成真实宿主验收。每个已选宿主都必须完成首次成功更新。第二次运行时,Claude、Kimi、CodeBuddy 和 WorkBuddy 必须返回 `ALREADY_CURRENT`;Codex 可以返回 `UPDATED`,但只有在重新安装同一精确 0.9.8 冻结引用、载荷验证通过并声明 `restartRequired=true` 时才允许这样返回。本机 updater 采用已针对 Kimi Code 0.40.1 验证的 TUI 路径,不切换到 Web REST 安装路径。插件信任界面显示的仓库与 tag 必须和冻结目标一致;插件安装过程中不得批准目录信任界面。本候选不宣称 0.9.8 已经发布或达到 VERIFIED。
35
34
  <!-- release-skill:managed:end id=latest-release -->
36
35
 
37
36
  <!-- release-skill:capability:external-write-boundary -->
38
- > **当前边界:** v0.9.7 只是当前源码候选。本 README 记录预期范围与验证边界,
37
+ > **当前边界:** v0.9.8 只是当前源码候选。本 README 记录预期范围与验证边界,
39
38
  > 不代表已经发布、完成消费者安装验证或通过独立验收。
40
39
  > 版本可用性以对应发布记录及发布后验证结果为准。
41
40
  > v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
@@ -51,7 +50,7 @@ release-skill 帮助维护者回答三个问题:准备发布什么、还有哪
51
50
  > 远端唯一性检查在 `publish` 全局预检执行。
52
51
 
53
52
  <!-- release-skill:capability:safe-first-command -->
54
- > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.9.7 是当前源码候选,本 README 不证明该候选已经发布、完成消费者安装验证或通过独立验收。**
53
+ > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.9.8 是当前源码候选,本 README 不证明该候选已经发布、完成消费者安装验证或通过独立验收。**
55
54
  > npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
56
55
  >
57
56
  > **第一条命令:**
@@ -101,12 +100,10 @@ Foundation 三包精确依赖已发布的 0.16.0。新生成的 Kimi/CodeBuddy
101
100
  > `marketplace-index-render`(以 `targets` 形态声明),以及
102
101
  > `proposal-inbox`、`marketplace-registry-entry`、`docs-refresh`、
103
102
  > `notify-handoff`(以 `hooks` 形态声明)。`proposal-inbox` 通过 git-push 或
104
- > local-file 传输投递机器可读更新提案,供下游自治消费;未声明 target 时
103
+ > local-file 传输投递机器可读更新提案,并记录送达结果。接收端按照接收端自己的 runbook
104
+ > 和治理要求应用、渲染并公开同步;送达成功不证明这些接收端步骤已经完成。未声明 target 时
105
105
  > 退化为 `notify-handoff` 行为而非报错。`notify-handoff` 是零写地板:
106
- > 只渲染确定性的人工同步清单。release-skill 自己也在使用该能力:本仓库的
107
- > 项目配置声明了一个 `proposal-inbox`(git-push)hub 提案,指向公开仓
108
- > `skill-family-hub`,将在 v0.7.0 发布的 postVerify 阶段经自身的
109
- > checkpoint 批准投递。
106
+ > 只渲染确定性的人工同步清单。
110
107
  <!-- release-skill:capability:postpublish-presets -->
111
108
 
112
109
  <!-- release-skill:capability:postverify-stage -->
@@ -203,8 +200,8 @@ Claude Code、CodeBuddy、WorkBuddy 和 Codex 从 bundled-family 市场
203
200
  > `/plugin marketplace add https://github.com/ifoohoo/release-skill`——
204
201
  > 或设置 `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`。
205
202
 
206
- **Kimi Code:** Kimi Code 没有市场安装接口,需手动安装并钉死到特定 release
207
- tag——见 [INSTALL.zh-CN.md](INSTALL.zh-CN.md#安装为-kimi-code-插件)。
203
+ **Kimi Code:** release-skill 当前无可脚本化安装接口接入,只采用钉死版本的交互式
204
+ TUI 路径,见 [INSTALL.zh-CN.md](INSTALL.zh-CN.md#安装为-kimi-code-插件)。
208
205
 
209
206
  CodeBuddy、Codex 和 Kimi Code 的完整命令见 [INSTALL.zh-CN.md](INSTALL.zh-CN.md)。
210
207
 
@@ -642,16 +639,21 @@ release-skill ship --root "$PROJECT" --hook-approval "$HOOK_APPROVAL_PATH" --jso
642
639
  | `npm` | 带 CLI 入口的 npm 包 | `npm install -g release-skill` |
643
640
  | `claude-plugin` | `adapters/claude/` 下的自包含闭包 | 自动化 marketplace 检查点 |
644
641
  | `codex-plugin` | `adapters/codex/` 下的自包含闭包 | 自动化 marketplace 检查点 |
645
- | `kimi-plugin` | 自包含闭包(无可脚本化安装接口) | 发布后非阻塞人工任务 |
642
+ | `kimi-plugin` | 自包含闭包(release-skill 无可脚本化安装接口接入) | 发布后非阻塞人工任务 |
646
643
  | `codebuddy-plugin` | 生成的 `adapters/workbuddy/`,带 `.codebuddy-plugin/plugin.json` | 发布后非阻塞人工任务 |
647
644
 
648
645
  每个适配器闭包都自带 CLI、skills 和 schemas 副本,安装后无需外部依赖即可运行。Claude/Codex 验证是自动化的;Kimi Code 和 CodeBuddy/WorkBuddy 以 `manualFollowUps` 返回并标记 `verifiedBySystem: false`,其完成情况不阻塞自动发布进入 `VERIFIED`。
649
646
 
650
647
  发布达到 `VERIFIED` 后,可选的 `release-finish` 工作流可以按冻结市场身份更新 Claude
651
- 和 Codex,也可以在同一个受控 TUI 会话中迁移或更新 Kimi,并核对真实受管载荷。
648
+ 和 Codex。任一市场需要重绑时,必须在该宿主第一条写命令前只读证明冻结仓库、引用和
649
+ 提交;预检失败时不修改该宿主,也不阻止其他已选宿主继续。流程也可以在同一个受控
650
+ TUI 会话中迁移或更新 Kimi,并核对真实受管载荷。
652
651
  对于已有的 bundled-family CodeBuddy/WorkBuddy 条目,只有冻结标签与可变分支都解析到
653
652
  冻结提交时才允许更新。该流程要求用户明确同意,且不改变发布状态。目标缺失、使用
654
653
  standalone 来源、远端不可访问或身份含糊时仍转人工处理,不修改宿主。
654
+ Kimi 的有效配置根依次取显式 `kimiHome`、`KIMI_CODE_HOME`、`~/.kimi-code`,TUI 与
655
+ 操作后观察使用同一根。出现 `Trust this folder?`、未知界面、超时、提前退出,或无法
656
+ 证明插件身份时,流程返回人工处理或失败结果,不确认目录信任。
655
657
  WorkBuddy 本机更新仅支持 macOS;其他平台返回不支持并跳过。计划声明 postVerify hook 时,
656
658
  release-finish 必须接收 `ship` 产出的已完成 postVerify run,不能直接使用较早的
657
659
  verify run;核心 prepare、publish、verify 流程仍跨平台。
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.9.7",
12
+ "version": "0.9.8",
13
13
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
14
14
  "author": {
15
15
  "name": "广州市风荷科技有限公司"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.7",
3
+ "version": "0.9.8",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"