release-skill 0.2.1 → 0.2.3

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 (55) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codebuddy-plugin/plugin.json +4 -2
  4. package/.codex-plugin/plugin.json +2 -2
  5. package/.kimi-plugin/plugin.json +1 -1
  6. package/CHANGELOG.md +40 -0
  7. package/INSTALL.md +183 -21
  8. package/INSTALL.zh-CN.md +160 -16
  9. package/README.md +112 -13
  10. package/README.zh-CN.md +72 -11
  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 +2240 -587
  14. package/adapters/claude/schemas/release-plan.schema.json +44 -2
  15. package/adapters/claude/schemas/release-project.schema.json +46 -4
  16. package/adapters/claude/schemas/release-run.schema.json +1 -0
  17. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  18. package/adapters/codex/bin/release-skill.bundle.mjs +2240 -587
  19. package/adapters/codex/schemas/release-plan.schema.json +44 -2
  20. package/adapters/codex/schemas/release-project.schema.json +46 -4
  21. package/adapters/codex/schemas/release-run.schema.json +1 -0
  22. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  23. package/adapters/kimi/bin/release-skill.bundle.mjs +2240 -587
  24. package/adapters/kimi/schemas/release-plan.schema.json +44 -2
  25. package/adapters/kimi/schemas/release-project.schema.json +46 -4
  26. package/adapters/kimi/schemas/release-run.schema.json +1 -0
  27. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +4 -2
  28. package/adapters/workbuddy/bin/release-skill.bundle.mjs +2240 -587
  29. package/adapters/workbuddy/schemas/release-plan.schema.json +44 -2
  30. package/adapters/workbuddy/schemas/release-project.schema.json +46 -4
  31. package/adapters/workbuddy/schemas/release-run.schema.json +1 -0
  32. package/bin/release-skill-cli.mjs +46 -4
  33. package/bin/release-skill.bundle.mjs +2240 -587
  34. package/package.json +1 -1
  35. package/references/02-project-config.md +7 -0
  36. package/references/06-adapter-contract.md +21 -2
  37. package/schemas/release-plan.schema.json +44 -2
  38. package/schemas/release-project.schema.json +46 -4
  39. package/schemas/release-run.schema.json +1 -0
  40. package/scripts/sync-public-files.mjs +8 -4
  41. package/src/adapters/contract.mjs +1 -0
  42. package/src/adapters/plugin-marketplace.mjs +796 -41
  43. package/src/commands/assess.mjs +50 -1
  44. package/src/commands/prepare.mjs +342 -9
  45. package/src/commands/publish.mjs +1 -0
  46. package/src/commands/reconcile.mjs +1 -0
  47. package/src/commands/setup.mjs +7 -3
  48. package/src/commands/verify.mjs +13 -5
  49. package/src/core/baseline.mjs +13 -0
  50. package/src/core/checkpoints.mjs +7 -2
  51. package/src/core/plan.mjs +275 -4
  52. package/src/core/verification-gates.mjs +1 -1
  53. package/src/platforms/codebuddy.mjs +658 -0
  54. package/src/platforms/registry.mjs +258 -5
  55. package/src/producers/build-adapters.mjs +30 -15
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.2.1 -->
5
+ <!-- release-skill:release-version: 0.2.3 -->
6
6
  Release preparation for Claude Code, 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,
@@ -11,21 +11,26 @@ reviewed artifacts first and publishes those same artifacts later; it does not
11
11
  regenerate a README or re-pack the live workspace at the last step.
12
12
 
13
13
  <!-- release-skill:managed:start id=latest-release -->
14
- **0.2.1** (2026-07-25)
14
+ **0.2.3** (2026-07-26)
15
15
 
16
- v0.2.1 adds a fourth platform adapter — workbuddy (CodeBuddy/WorkBuddy plugin) — using a build-only distribution model. The build-adapters generator and platform registry now register workbuddy alongside claude, codex, and kimi, producing a self-contained adapter directory at `adapters/workbuddy/` with a `.codebuddy-plugin/plugin.json` manifest, bundled CLI entry, native prebuilds, schemas, and skills. The sync-public-files and sync-version scripts cover the new manifest, and the adapter-contract standard documents build-only distribution. README and INSTALL (en + zh-CN) register the CodeBuddy installation entry. Installation is manual — the automated marketplace install checkpoint does not cover CodeBuddy yet.
16
+ v0.2.3 is a fix-forward release that addresses platform verification, public artifact, and documentation issues discovered in v0.2.2. The release converges platform fact sources, fixes consumer gate mapping errors, and strengthens attestation validation.
17
17
 
18
- **Added**
18
+ **Changed**
19
19
 
20
- - **WorkBuddy/CodeBuddy build-only distribution adapter**: new fourth platform adapter `workbuddy` registered in the platform registry and build-adapters generator. The generated self-contained adapter directory (`adapters/workbuddy/`) ships a `.codebuddy-plugin/plugin.json` manifest, a bundled CLI entry (`bin/release-skill.bundle.mjs`), native safe-write prebuilds, JSON schemas, and the full skill set. Skills resolve the CLI entry via `${CODEBUDDY_PLUGIN_ROOT}`, which CodeBuddy expands inline.
21
- - **Build-only distribution model in adapter-contract standard**: both the parent `standards/06-adapter-contract.md` and the public `references/06-adapter-contract.md` now document the build-only distribution scope — the adapter is generated and self-contained, installation is manual, and the automated preflight/execute/observe/verify marketplace checkpoint is not yet wired for CodeBuddy.
22
- - **sync-public-files and sync-version coverage for `.codebuddy-plugin`**: the `sync-public-files.mjs` script now validates the `.codebuddy-plugin/plugin.json` manifest as a public asset, and `sync-version.mjs` propagates the package version into it. The build-adapters generator produces workbuddy artifacts alongside the existing three platforms.
23
- - **README and INSTALL registration (en + zh-CN)**: all four public documents (README.md, README.zh-CN.md, INSTALL.md, INSTALL.zh-CN.md) now list the CodeBuddy/WorkBuddy adapter, its manual installation path, and the scope limitation that the automated marketplace install checkpoint does not yet cover CodeBuddy.
20
+ - **Version synchronized to 0.2.3**: all plugin manifests (9 files), package.json, INSTALL.md, INSTALL.zh-CN.md, README.md, and README.zh-CN.md updated.
21
+
22
+ **Fixed**
23
+
24
+ - **CodeBuddy marketplace-install distribution mapping**: `verify.mjs` now correctly maps `codebuddy-marketplace-install` to `codebuddy-plugin` distribution (was incorrectly falling back to `kimi-plugin`). The `fixedEnv` for codebuddy now uses only `HOME` without `KIMI_CODE_HOME`.
25
+ - **Unknown consumer fallback removed**: `plugin-marketplace.mjs` now throws an explicit error for unregistered consumer platforms instead of silently falling back to Kimi configuration. Error message includes the unknown consumer id and list of registered platforms.
26
+ - **CodeBuddy attestation baseline exclusion**: `.release-skill/codebuddy-attestations/` is now properly excluded from workspace baseline digest calculation, preventing self-drift when codebuddy attestation files are written during the release lifecycle.
27
+ - **CodeBuddy manifest skills field accepts array**: `normalizeCodeBuddySkillsRel()` now accepts both string and single-element array forms for the `skills` field, matching the real CodeBuddy validator's expected shape. The root `.codebuddy-plugin/plugin.json` now uses array form.
28
+ - **CLI channel attestation path validation**: `validateCodeBuddyAttestation()` now validates that CLI channel `installPath` ends with the well-known `.codebuddy/plugins/marketplaces/<marketplace>/plugins/<plugin>` segment tail, closing a path-escape gap.
24
29
  <!-- release-skill:managed:end id=latest-release -->
25
30
 
26
31
  <!-- release-skill:capability:external-write-boundary -->
27
- > **Current boundary:** v0.2.1 is the current release (v0.1.9 previously held
28
- > published status before the codex migrated-command-skills fix was added).
32
+ > **Current boundary:** v0.2.3 is the current release (v0.2.2 previously held
33
+ > published status before the platform verification convergence fix was added).
29
34
  > v0.1.1 completed a real production release to GitHub and npm — the first
30
35
  > production-verified milestone — followed by
31
36
  > exact npm installation and Claude/Codex consumer installation verification
@@ -58,6 +63,45 @@ v0.2.1 adds a fourth platform adapter — workbuddy (CodeBuddy/WorkBuddy plugin)
58
63
  > specifically requires `prepare --online --production`. Without digest confirmation,
59
64
  > no remote preflight or write starts.
60
65
 
66
+ ## Release workflow overview
67
+
68
+ release-skill models the release lifecycle as a strict state machine so that every
69
+ stage has explicit entry and exit conditions and no stage can be skipped. The
70
+ normative definition lives in `references/01-state-machine.md`.
71
+
72
+ ```text
73
+ DISCOVERED -> ASSESSED -> PREPARED -> APPROVED -> PUBLISHING -> PUBLISHED -> VERIFIED
74
+ exception states: NEEDS_INPUT / BLOCKED / PARTIAL
75
+ ```
76
+
77
+ Each CLI command maps to one transition:
78
+
79
+ - `help` checks the environment; `setup` discovers the project and, after digest
80
+ confirmation, creates the config once.
81
+ - `assess` performs a read-only readiness evaluation (`DISCOVERED -> ASSESSED`).
82
+ - `prepare` runs the verification gates, freezes an immutable release plan, and
83
+ copies the configured public files into an isolated snapshot
84
+ (`ASSESSED -> PREPARED`). It writes only under `.release-skill/` and never
85
+ touches remote services.
86
+ - `approve` records human approval bound to the plan digest with a 24-hour expiry
87
+ (`PREPARED -> APPROVED`). A changed plan invalidates the approval automatically.
88
+ - `publish` executes the external write checkpoints in order
89
+ (`APPROVED -> PUBLISHING -> PUBLISHED`).
90
+ - `reconcile` recovers from `PARTIAL`; `verify` performs a fresh consumer-install
91
+ check in an isolated environment (`PUBLISHED -> VERIFIED`).
92
+
93
+ `PUBLISHED` is **not** the terminal state. Only a fresh `verify` run that confirms
94
+ remote state and exact consumer installs match the frozen plan reaches `VERIFIED`.
95
+
96
+ **Publishing checkpoint order.** `publish` runs a read-only global preflight over
97
+ all actions, then executes and observes in this fixed order: public snapshot
98
+ branch -> signed/tracked tag -> npm publish -> GitHub Release -> configured
99
+ Claude/Codex plugin-marketplace install -> run record. Any failure stops subsequent
100
+ checkpoints and the run lands in `PARTIAL`. The system never auto-deletes remote
101
+ tags, unpublishes packages, or restarts from scratch; `reconcile` queries the actual
102
+ remote state, skips already-consistent steps, and retries only safe, incomplete
103
+ actions, while remote conflicts require a human decision.
104
+
61
105
  ## Why this is safe for a hand-edited README
62
106
 
63
107
  release-skill does not regenerate or rewrite project source files. `prepare` copies
@@ -116,6 +160,29 @@ npx release-skill help
116
160
  release-skill help
117
161
  ```
118
162
 
163
+ **Install as a plugin (Claude Code / CodeBuddy / WorkBuddy / Codex / Kimi Code):**
164
+
165
+ All four plugin hosts install from the unified marketplace
166
+ `ifoohoo/artifact-skill-set` — for example, in a Claude Code session:
167
+
168
+ ```
169
+ /plugin marketplace add ifoohoo/artifact-skill-set
170
+ /plugin install release-skill@artifact-skill-set
171
+ ```
172
+
173
+ `ifoohoo/artifact-skill-set` is an **external independent marketplace**: the
174
+ plugin repository carries only the plugin manifest, while the marketplace index
175
+ is centralized in the external marketplace repository. When a release unit's
176
+ plugin distribution declares `marketplaceRepo`, `prepare --online --production`
177
+ freezes the external marketplace HEAD (Codex pins the commit sha — strong
178
+ freeze; Claude pins the default branch name — weak freeze) and verifies the
179
+ installed payload against the unit's own frozen snapshot whole-tree. **Release
180
+ ordering:** publish the external marketplace index first — its entry version
181
+ must equal the target release version — before `prepare` can freeze a
182
+ marketplace sha containing that entry. See [INSTALL.md](INSTALL.md) for the
183
+ per-platform commands and `references/06-adapter-contract.md` §2.3/§2.4 for the
184
+ contract and the advanced direct-repository options.
185
+
119
186
  **Development install (contributor fallback, from source checkout):**
120
187
 
121
188
  Set the checkout location and install dependencies:
@@ -894,11 +961,19 @@ Successful reconcile returns `PUBLISHED`, not `VERIFIED`; only the fresh
894
961
  Code (no scriptable install API) it emits a version-pinned manual install
895
962
  requirement and proves the entry Skill and payload digest only from a trusted
896
963
  attestation bound to the frozen plan digest;
964
+ - supports an external independent marketplace for Claude/Codex distributions
965
+ (`marketplaceRepo`): `prepare --online --production` freezes the external
966
+ marketplace HEAD (Codex commit sha / Claude default branch name), validates the
967
+ marketplace index entry at that sha, and verifies the installed payload against
968
+ the unit's own frozen snapshot whole-tree (`external-marketplace-v1`), while the
969
+ install-side CLI list observation fails closed on version drift;
897
970
  - ships a generated, self-contained CodeBuddy/WorkBuddy adapter
898
971
  (`adapters/workbuddy/`, manifest `.codebuddy-plugin/plugin.json`, skills
899
972
  rendered with `${CODEBUDDY_PLUGIN_ROOT}`) alongside the Claude/Codex/Kimi
900
- adapters; CodeBuddy installation is manual the automated marketplace
901
- install checkpoint does not cover CodeBuddy yet;
973
+ adapters; because the codebuddy CLI cannot pin a frozen ref there is no
974
+ automated marketplace install checkpoint, so it emits a manual install
975
+ requirement and proves the entry Skill and payload digest only from a trusted
976
+ attestation bound to the frozen plan digest;
902
977
  - distinguishes `PUBLISHED` (writes completed) from `VERIFIED` (remote and
903
978
  consumer installation evidence completed);
904
979
  - stops subsequent checkpoints on failure and writes a separate run record
@@ -985,7 +1060,8 @@ npm publish may never be hooks/gates; they remain controlled plan actions.
985
1060
  `--force-with-lease=<ref>:` solely as an atomic compare-and-set assertion that
986
1061
  the ref is absent, while existing branches use an ordinary non-force push;
987
1062
  - no automated CodeBuddy/WorkBuddy marketplace install checkpoint — the
988
- generated `adapters/workbuddy/` distribution adapter is installed manually;
1063
+ codebuddy CLI cannot pin a frozen ref, so installation is a manual step proven
1064
+ by the same attestation closed loop as Kimi Code;
989
1065
  - no promise of Windows or broad multi-platform native write support;
990
1066
  - no hidden commit, push, tag, release, or package publication.
991
1067
 
@@ -1036,6 +1112,29 @@ Conflicts still default to human intervention. The npm-installed `release-skill`
1036
1112
  CLI is the supported user entry after v0.1.1 production publication; source
1037
1113
  checkout remains the development/contributor fallback.
1038
1114
 
1115
+ ## Platform distribution
1116
+
1117
+ One deterministic core engine ships to several targets through build-only adapter
1118
+ closures. A release unit declares what reaches users via `distributions`; each
1119
+ distribution type maps to a concrete artifact:
1120
+
1121
+ | `distributions` type | Physical artifact | Install |
1122
+ |---|---|---|
1123
+ | `npm` | npm package with CLI entry | `npm install -g release-skill` |
1124
+ | `claude-plugin` | self-contained closure under `adapters/claude/` | automated marketplace checkpoint |
1125
+ | `codex-plugin` | self-contained closure under `adapters/codex/` | automated marketplace checkpoint |
1126
+ | `kimi-plugin` | self-contained closure (no scriptable install API) | manual, attestation-bound |
1127
+ | `codebuddy-plugin` | generated `adapters/workbuddy/` with `.codebuddy-plugin/plugin.json` (the codebuddy CLI cannot pin a frozen ref) | manual, attestation-bound |
1128
+
1129
+ Each adapter closure bundles its own copy of the CLI bundle, skills, and schemas so
1130
+ it runs with no external dependency after installation. The Claude/Codex marketplace
1131
+ install checkpoints are automated (preflight, execute, observe, verify); the Kimi
1132
+ Code checkpoint fails closed and produces a version-pinned manual install
1133
+ requirement; the CodeBuddy/WorkBuddy checkpoint likewise fails closed — because
1134
+ the codebuddy CLI cannot pin a frozen ref there is no automated install
1135
+ checkpoint — and produces a manual install requirement proven by a trusted
1136
+ attestation bound to the frozen plan digest.
1137
+
1039
1138
  ## License
1040
1139
 
1041
1140
  MIT. See [LICENSE](LICENSE).
package/README.zh-CN.md CHANGED
@@ -2,26 +2,31 @@
2
2
 
3
3
  [English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.2.1 -->
5
+ <!-- release-skill:release-version: 0.2.3 -->
6
6
  面向 Claude Code、Codex 和 Kimi Code 的发布准备工具,完整保留人工维护的文件内容。
7
7
 
8
8
  release-skill 帮助维护者回答三个问题:准备发布什么、还有哪些检查未通过、最终发布的内容是什么。它先冻结并供人工审阅,再从同一份冻结产物发布,不会在最后一步重新生成 README、重新打包当前工作区或覆盖人工内容。
9
9
 
10
10
  <!-- release-skill:managed:start id=latest-release -->
11
- **0.2.1** (2026-07-25)
11
+ **0.2.3** (2026-07-26)
12
12
 
13
- v0.2.1 新增第四个平台适配器 workbuddy(CodeBuddy/WorkBuddy 插件),采用 build-only 分发模式。build-adapters 生成器与平台注册表现在将 workbuddy 与 claude、codex、kimi 并列登记,在 `adapters/workbuddy/` 产出包含 `.codebuddy-plugin/plugin.json` 清单、打包 CLI 入口、native 预编译、JSON schemas 与全套技能的自包含适配器目录。sync-public-files 与 sync-version 脚本覆盖新清单,适配器契约标准补充 build-only 分发说明。README 与 INSTALL(中英四份)登记 CodeBuddy 安装入口。安装为手动步骤——自动化 marketplace 安装检查点尚未覆盖 CodeBuddy。
13
+ v0.2.3 是修复版本,解决 v0.2.2 中发现的平台验证、公共生成物和文档问题。本版本收敛平台事实源、修复消费端门禁映射错误并加强证明验证。
14
14
 
15
- **新增**
15
+ **变更**
16
16
 
17
- - **WorkBuddy/CodeBuddy build-only 分发适配器**:新增第四个平台适配器 `workbuddy`,在平台注册表和 build-adapters 生成器中登记。生成的自包含适配器目录(`adapters/workbuddy/`)附带 `.codebuddy-plugin/plugin.json` 清单、打包 CLI 入口(`bin/release-skill.bundle.mjs`)、native safe-write 预编译、JSON schemas 与全套技能。技能通过 `${CODEBUDDY_PLUGIN_ROOT}` 解析 CLI 入口,CodeBuddy 会内联展开该变量。
18
- - **适配器契约标准补充 build-only 分发模型**:父级 `standards/06-adapter-contract.md` 与公开 `references/06-adapter-contract.md` 均补充 build-only 分发范围说明——适配器由生成器产出且自包含,安装为手动步骤,CodeBuddy 的自动化 preflight/execute/observe/verify marketplace 检查点尚未接入。
19
- - **sync-public-files 与 sync-version 覆盖 `.codebuddy-plugin`**:`sync-public-files.mjs` 脚本现在将 `.codebuddy-plugin/plugin.json` 清单作为公开资产校验,`sync-version.mjs` 将包版本同步到该清单。build-adapters 生成器将 workbuddy 产物与既有三平台并列生成。
20
- - **README 与 INSTALL 登记(中英四份)**:四份公开文档(README.md、README.zh-CN.md、INSTALL.md、INSTALL.zh-CN.md)均列出 CodeBuddy/WorkBuddy 适配器、其手动安装路径以及自动化 marketplace 安装检查点尚未覆盖 CodeBuddy 的范围限制。
17
+ - **版本同步到 0.2.3**:所有插件清单(9个文件)、package.json、INSTALL.md、INSTALL.zh-CN.md、README.md 和 README.zh-CN.md 已更新。
18
+
19
+ **修复**
20
+
21
+ - **CodeBuddy marketplace-install 分发映射**:`verify.mjs` 现在正确将 `codebuddy-marketplace-install` 映射到 `codebuddy-plugin` distribution(之前错误回落到 `kimi-plugin`)。codebuddy 的 `fixedEnv` 现在只使用 `HOME`,不再包含 `KIMI_CODE_HOME`。
22
+ - **移除未知消费端回落**:`plugin-marketplace.mjs` 现在对未注册的消费端平台抛出明确错误,而非静默回落到 Kimi 配置。错误消息包含未知消费端标识和已注册平台列表。
23
+ - **CodeBuddy 证明基线排除**:`.release-skill/codebuddy-attestations/` 现在正确排除在工作区基线摘要计算之外,防止在发布生命周期中写入 codebuddy 证明文件时产生自漂移。
24
+ - **CodeBuddy 清单 skills 字段支持数组**:`normalizeCodeBuddySkillsRel()` 现在同时支持字符串和单元素数组形式的 `skills` 字段,与真实 CodeBuddy 验证器期望的形状一致。根 `.codebuddy-plugin/plugin.json` 现在使用数组形式。
25
+ - **CLI 通道证明路径验证**:`validateCodeBuddyAttestation()` 现在验证 CLI 通道的 `installPath` 以已知的 `.codebuddy/plugins/marketplaces/<marketplace>/plugins/<plugin>` 段尾结尾,关闭路径逃逸缺口。
21
26
  <!-- release-skill:managed:end id=latest-release -->
22
27
 
23
28
  <!-- release-skill:capability:external-write-boundary -->
24
- > **当前边界:** v0.2.1 是当前发布版本(v0.1.9 曾处于已发布、待独立验证状态)。
29
+ > **当前边界:** v0.2.3 是当前发布版本(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
25
30
  > v0.1.1 已完成 GitHub 与 npm 的
26
31
  > 真实生产发布,是首次生产验证的历史里程碑,并从冻结 Git ref 完成精确 npm
27
32
  > 安装及 Claude/Codex 消费者安装验证;“当前发布版本”与“首次生产验证里程碑”
@@ -48,6 +53,28 @@ v0.2.1 新增第四个平台适配器 workbuddy(CodeBuddy/WorkBuddy 插件)
48
53
  > --confirm-production <planDigest>`;`bound` 前序公开基线必须使用
49
54
  > `prepare --online --production`。没有摘要确认就不会预检或写远端。
50
55
 
56
+ ## 发布工作流概览
57
+
58
+ release-skill 把发布生命周期建模为一个严格状态机,让每个阶段都有明确的进入和退出条件,且任何阶段都不能跳过。规范定义见 `references/01-state-machine.md`。
59
+
60
+ ```text
61
+ DISCOVERED -> ASSESSED -> PREPARED -> APPROVED -> PUBLISHING -> PUBLISHED -> VERIFIED
62
+ 异常态:NEEDS_INPUT / BLOCKED / PARTIAL
63
+ ```
64
+
65
+ 每个 CLI 命令对应一次状态转换:
66
+
67
+ - `help` 检查环境;`setup` 发现项目,并在摘要确认后仅首次创建配置。
68
+ - `assess` 执行只读就绪度评估(`DISCOVERED -> ASSESSED`)。
69
+ - `prepare` 运行验证门、冻结一份不可变发布计划,并把配置的公开文件复制进隔离快照(`ASSESSED -> PREPARED`)。它只写入 `.release-skill/` 目录,从不触碰远端服务。
70
+ - `approve` 记录人工批准,绑定到计划摘要并带 24 小时有效期(`PREPARED -> APPROVED`)。计划一旦变化,批准自动失效。
71
+ - `publish` 按顺序执行外部写操作检查点(`APPROVED -> PUBLISHING -> PUBLISHED`)。
72
+ - `reconcile` 从 `PARTIAL` 恢复;`verify` 在全新隔离环境完成消费者安装验证(`PUBLISHED -> VERIFIED`)。
73
+
74
+ `PUBLISHED` **不是**终态。只有全新运行的 `verify` 确认远端状态和精确消费者安装都与冻结计划一致时,才会到达 `VERIFIED`。
75
+
76
+ **发布检查点顺序。** `publish` 先对所有动作做只读全局预检,再按固定顺序执行并观察:公开快照 branch → 签名/可追溯 tag → npm 发布 → GitHub Release → 配置的 Claude/Codex 插件市场安装 → 运行记录。任一步骤失败都会停止后续检查点并使运行进入 `PARTIAL`。系统绝不自动删除远端 tag、不 unpublish 包、不从头重跑;`reconcile` 查询实际远端状态,跳过已一致的步骤,只重试安全且未完成的动作,远端冲突则交由人工决策。
77
+
51
78
  ## 为什么人工修改的 README 不会丢失
52
79
 
53
80
  release-skill 不重新生成、也不回写项目源文件。`prepare` 从当前工作区把每个公开文件复制到隔离的本地快照,并验证复制前后的字节。README 的 slogan、示例、正文、格式,以及后续任何人工修改都会作为完整文件被保留。
@@ -89,6 +116,25 @@ npx release-skill help
89
116
  release-skill help
90
117
  ```
91
118
 
119
+ **安装为插件(Claude Code / CodeBuddy / WorkBuddy / Codex / Kimi Code):**
120
+
121
+ 四种插件宿主都从统一市场 `ifoohoo/artifact-skill-set` 安装——以 Claude
122
+ Code 会话为例:
123
+
124
+ ```
125
+ /plugin marketplace add ifoohoo/artifact-skill-set
126
+ /plugin install release-skill@artifact-skill-set
127
+ ```
128
+
129
+ `ifoohoo/artifact-skill-set` 是一个**外部独立市场**:插件仓库只含 plugin
130
+ 清单,marketplace 索引集中于外部市场仓库。当发布单元的插件 distribution 声明
131
+ `marketplaceRepo` 时,`prepare --online --production` 会冻结外部市场 HEAD
132
+ (Codex 钉 commit sha——强冻结;Claude 钉默认分支名——弱冻结),并以本单元自身
133
+ 冻结快照整树校验安装载荷。**发布时序:** 须先发布外部市场索引——其条目版本须
134
+ 等于目标发布版本——之后 `prepare` 才能冻结到含该条目的市场 sha。各平台完整命令
135
+ 见 [INSTALL.zh-CN.md](INSTALL.zh-CN.md),契约与进阶直接仓库安装方式见
136
+ `references/06-adapter-contract.md` §2.3/§2.4。
137
+
92
138
  **开发安装(贡献者回退,从源码 checkout):**
93
139
 
94
140
  ```bash
@@ -595,7 +641,8 @@ reconcile 成功只返回 `PUBLISHED`,不会返回 `VERIFIED`;只有全新
595
641
  - 用计划摘要、有效期和显式 action allowlist 绑定人工批准;
596
642
  - 从冻结 Git object 和 npm tarball 发布,并核对远端 commit/tree/tag/integrity;
597
643
  - 从冻结 Git ref 安装配置的 Claude/Codex 插件,证明入口 Skill 和安装载荷摘要;对 Kimi Code(无可脚本化安装接口)产出版本钉死的手动安装要求,仅依据绑定到冻结计划摘要的可信证明来确认入口 Skill 和载荷摘要;
598
- - Claude/Codex/Kimi 适配器一并提供生成的自包含 CodeBuddy/WorkBuddy 适配器(`adapters/workbuddy/`,清单 `.codebuddy-plugin/plugin.json`,技能以 `${CODEBUDDY_PLUGIN_ROOT}` 渲染);CodeBuddy 安装为手动步骤——自动化 marketplace 安装检查点尚未覆盖 CodeBuddy;
644
+ - Claude/Codex distribution 支持外部独立市场(`marketplaceRepo`):`prepare --online --production` 冻结外部市场 HEAD(Codex commit sha / Claude 默认分支名),校验该 sha 处的市场索引条目,并以本单元自身冻结快照整树校验安装载荷(`external-marketplace-v1`),安装侧 CLI list 观察在版本漂移时失败关闭;
645
+ - 随 Claude/Codex/Kimi 适配器一并提供生成的自包含 CodeBuddy/WorkBuddy 适配器(`adapters/workbuddy/`,清单 `.codebuddy-plugin/plugin.json`,技能以 `${CODEBUDDY_PLUGIN_ROOT}` 渲染);因 codebuddy CLI 无法钉死冻结 ref 而无自动化 marketplace 安装检查点,故产出手动安装要求,仅依据绑定到冻结计划摘要的可信证明来确认入口 Skill 和载荷摘要;
599
646
  - 明确区分 `PUBLISHED`(外写完成)与 `VERIFIED`(远端和消费者安装证据完成);
600
647
  - 中途失败停止后续动作,记录独立 run;不修改冻结 plan,不自动撤销已成功动作。
601
648
 
@@ -647,7 +694,7 @@ push、tag、默认分支修改、GitHub Release 和 npm publish 不能放进 ho
647
694
  - 不声称已经替项目完成真实生产 canary;
648
695
  - `prepare --online` 只观察 bound 前序基线;目标唯一性由 publish 全局预检完成;
649
696
  - 不覆盖已有 branch/tag/Release,不 unpublish npm;
650
- - 不提供自动化 CodeBuddy/WorkBuddy marketplace 安装检查点——生成的 `adapters/workbuddy/` 分发适配器需手动安装;
697
+ - 不提供自动化 CodeBuddy/WorkBuddy marketplace 安装检查点——codebuddy CLI 无法钉死冻结 ref,安装为手动步骤,经与 Kimi Code 相同的可信证明闭环确认;
651
698
  - 不承诺 Windows 或广泛的跨平台原生写入;
652
699
  - 不会隐藏地 commit、push、打 tag、创建 Release 或发布包。
653
700
 
@@ -687,6 +734,20 @@ push、tag、默认分支修改、GitHub Release 和 npm publish 不能放进 ho
687
734
  - `release-reconcile`:基于证据恢复 PARTIAL;冲突时人工介入。
688
735
  - `release-verify`:发布后验证;只有 `VERIFIED` 才是 happy end。
689
736
 
737
+ ## 平台分发
738
+
739
+ 同一个确定性核心引擎通过 build-only 适配器闭包分发到多个目标。发布单元用 `distributions` 声明要发布给谁;每种分发类型对应一个具体产物:
740
+
741
+ | `distributions` 类型 | 物理产物 | 安装方式 |
742
+ |---|---|---|
743
+ | `npm` | 带 CLI 入口的 npm 包 | `npm install -g release-skill` |
744
+ | `claude-plugin` | `adapters/claude/` 下的自包含闭包 | 自动化 marketplace 检查点 |
745
+ | `codex-plugin` | `adapters/codex/` 下的自包含闭包 | 自动化 marketplace 检查点 |
746
+ | `kimi-plugin` | 自包含闭包(无可脚本化安装接口) | 手动,需可信证明 |
747
+ | `codebuddy-plugin` | 生成的 `adapters/workbuddy/`,带 `.codebuddy-plugin/plugin.json`(codebuddy CLI 无法钉死冻结 ref) | 手动,需可信证明 |
748
+
749
+ 每个适配器闭包都自带一份 CLI bundle、skills 和 schemas 的副本,安装后无需外部依赖即可运行。Claude/Codex 的 marketplace 安装检查点是自动化的(preflight、execute、observe、verify);Kimi Code 检查点失败关闭,并产出版本钉死的手动安装要求;CodeBuddy/WorkBuddy 检查点同样失败关闭——因 codebuddy CLI 无法钉死冻结 ref 而无自动化安装检查点——并产出经绑定冻结计划摘要的可信证明确认的手动安装要求。
750
+
690
751
  ## 许可证
691
752
 
692
753
  MIT,见 [LICENSE](LICENSE)。
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.2.1",
12
+ "version": "0.2.3",
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.1",
3
+ "version": "0.2.3",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"