release-skill 0.7.6 → 0.7.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 (61) 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 +40 -0
  7. package/INSTALL.md +2 -2
  8. package/INSTALL.zh-CN.md +2 -2
  9. package/README.md +14 -11
  10. package/README.zh-CN.md +13 -10
  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 +1728 -1155
  14. package/adapters/claude/schemas/.render-manifest.json +6 -6
  15. package/adapters/claude/schemas/release-plan.schema.json +47 -0
  16. package/adapters/claude/schemas/release-project.schema.json +24 -0
  17. package/adapters/claude/schemas/release-run.schema.json +41 -1
  18. package/adapters/claude/skills/release-prepare/SKILL.md +4 -0
  19. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  20. package/adapters/codex/bin/release-skill.bundle.mjs +1728 -1155
  21. package/adapters/codex/schemas/.render-manifest.json +6 -6
  22. package/adapters/codex/schemas/release-plan.schema.json +47 -0
  23. package/adapters/codex/schemas/release-project.schema.json +24 -0
  24. package/adapters/codex/schemas/release-run.schema.json +41 -1
  25. package/adapters/codex/skills/release-prepare/SKILL.md +4 -0
  26. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  27. package/adapters/kimi/bin/release-skill.bundle.mjs +1728 -1155
  28. package/adapters/kimi/schemas/.render-manifest.json +6 -6
  29. package/adapters/kimi/schemas/release-plan.schema.json +47 -0
  30. package/adapters/kimi/schemas/release-project.schema.json +24 -0
  31. package/adapters/kimi/schemas/release-run.schema.json +41 -1
  32. package/adapters/kimi/skills/release-prepare/SKILL.md +4 -0
  33. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  34. package/adapters/workbuddy/bin/release-skill.bundle.mjs +1728 -1155
  35. package/adapters/workbuddy/schemas/.render-manifest.json +6 -6
  36. package/adapters/workbuddy/schemas/release-plan.schema.json +47 -0
  37. package/adapters/workbuddy/schemas/release-project.schema.json +24 -0
  38. package/adapters/workbuddy/schemas/release-run.schema.json +41 -1
  39. package/adapters/workbuddy/skills/release-prepare/SKILL.md +4 -0
  40. package/bin/release-skill-cli.mjs +116 -47
  41. package/bin/release-skill.bundle.mjs +1728 -1155
  42. package/package.json +1 -1
  43. package/platform-manifest.json +4 -4
  44. package/references/.render-manifest.json +6 -6
  45. package/references/01-state-machine.md +2 -2
  46. package/references/02-project-config.md +18 -0
  47. package/references/06-adapter-contract.md +4 -3
  48. package/schemas/.render-manifest.json +6 -6
  49. package/schemas/release-plan.schema.json +47 -0
  50. package/schemas/release-project.schema.json +24 -0
  51. package/schemas/release-run.schema.json +41 -1
  52. package/skills/release-prepare/SKILL.md +4 -0
  53. package/skills-src/release-prepare/SKILL.md +4 -0
  54. package/src/adapters/git-github.mjs +139 -26
  55. package/src/commands/prepare.mjs +72 -3
  56. package/src/commands/publish.mjs +51 -0
  57. package/src/commands/verify.mjs +53 -1
  58. package/src/core/config.mjs +31 -0
  59. package/src/core/plan.mjs +78 -0
  60. package/src/core/release-assets.mjs +54 -0
  61. package/src/core/source-authority.mjs +127 -3
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.7.6",
12
+ "version": "0.7.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.7.6",
3
+ "version": "0.7.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.7.6",
3
+ "version": "0.7.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.7.6",
3
+ "version": "0.7.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.7.6.",
22
+ "Prepare a release plan for version 0.7.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.7.6",
3
+ "version": "0.7.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,45 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.7.8 locale=en baseline=sha256:058929eb1d0fa2abb8488f1b7f736da9046ac494c312057767d649f792bb9b81 -->
4
+ ## [0.7.8] - 2026-08-24
5
+
6
+ v0.7.8 lets a fresh publish safely accept an npm version that already contains the exact frozen tarball, without executing npm publish again.
7
+
8
+ ### Security
9
+
10
+ - **Fail-closed integrity check**: a different, missing, blank, or unparseable observed integrity stops the run before any adapter execute. The existing classifier, approval model, and forward-recovery state machine remain unchanged.
11
+ - **Checkpoint evidence**: a matching skipped npm checkpoint records only the observed integrity in `remoteRef.integrity`; package, version, registry, expected integrity, and tarball SHA-256 remain authoritative in the frozen plan.
12
+
13
+ ### Fixed
14
+
15
+ - **Existing npm version recovery**: when npm preflight finds the target version already published, publish compares the registry observation with the immutable plan. An exact match becomes `SKIPPED`, the npm execute count stays zero, and the remaining release actions continue.
16
+
17
+ ### Upgrade Notes
18
+
19
+ No configuration or migration is required. Existing release-run files remain valid because `remoteRef.integrity` is optional.
20
+ <!-- release-skill:changelog:end version=0.7.8 locale=en -->
21
+
22
+
23
+ <!-- release-skill:changelog:start version=0.7.7 locale=en baseline=sha256:bdd8a5cd123e916f5581051c7138f56572b35b3640187551aca6faa453ea1a51 -->
24
+ ## [0.7.7] - 2026-08-24
25
+
26
+ v0.7.7 can publish a small public source-authority receipt that binds an exact source repository and commit to one or more frozen npm tarballs.
27
+
28
+ ### Security
29
+
30
+ - **Remote commit binding**: publish now requires the remotely observed source commit to equal the receipt's frozen `sourceBaseCommit` before any adapter preflight or write. Verify and reconcile retain the same constraint.
31
+ - **Actual tarball verification**: offline receipt verification reopens every frozen subject tgz with the existing no-follow, file-identity, digest, package-name, and package-version checks before accepting its receipt entry.
32
+
33
+ ### Added
34
+
35
+ - **Optional public source authority**: projects may declare `publicSourceAuthorityReceipt` with one coordinator release unit and one or more npm subject units. Production prepare freezes canonical `source-authority-receipt.json` bytes from the normalized source repository, baseline commit, package name, version, tarball filename, and SHA-256. Publish then uploads those exact bytes as a GitHub Release asset.
36
+
37
+ ### Upgrade Notes
38
+
39
+ `publicSourceAuthorityReceipt` is optional. Existing projects require no configuration or migration; enable it only when a release needs the public source-authority asset.
40
+ <!-- release-skill:changelog:end version=0.7.7 locale=en -->
41
+
42
+
3
43
  <!-- release-skill:changelog:start version=0.7.6 locale=en baseline=sha256:16665362b8c0f06b7ed94f2839f5b380216b13ca6ab5e6c51b043985f8a8c8c2 -->
4
44
  ## [0.7.6] - 2026-08-22
5
45
 
package/INSTALL.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.7.6 -->
5
+ <!-- release-skill:release-version: 0.7.8 -->
6
6
  ## Prerequisites
7
7
 
8
8
  - Node.js 22.0.0 or later
@@ -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.7.6
117
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.7.8
118
118
  /plugins reload
119
119
  ```
120
120
 
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.7.6 -->
5
+ <!-- release-skill:release-version: 0.7.8 -->
6
6
  ## 前置条件
7
7
 
8
8
  - Node.js 22.0.0 或更高版本
@@ -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.7.6
107
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.7.8
108
108
  /plugins reload
109
109
  ```
110
110
 
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.7.6 -->
5
+ <!-- release-skill:release-version: 0.7.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,23 +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.7.6** (2026-08-22)
17
+ **0.7.8** (2026-08-24)
18
18
 
19
- v0.7.6 executes every schema-declared prepare hook and corrects the documented postPublish hierarchy while preserving the current hook authorization and Codex adapter-root semantics.
19
+ v0.7.8 lets a fresh publish safely accept an npm version that already contains the exact frozen tarball, without executing npm publish again.
20
20
 
21
- **Changed**
21
+ **Security**
22
22
 
23
- - **Codex adapter contract coverage**: isolated-copy and negative path tests now preserve the existing self-contained adapter root: the host-provided skill path matches `PLUGIN_ROOT/skills/<skill>/SKILL.md`, and the launcher remains `PLUGIN_ROOT/bin/release-skill.mjs`. This is contract hardening, not a runtime protocol change.
24
- - **Hook authorization remains unchanged**: configuring a hook and invoking its workflow authorizes execution without a separate confirmation point. The legacy acknowledgement flags remain no-effect compatibility inputs; v0.7.6 does not restore a pre-execution confirmation gate.
23
+ - **Fail-closed integrity check**: a different, missing, blank, or unparseable observed integrity stops the run before any adapter execute. The existing classifier, approval model, and forward-recovery state machine remain unchanged.
24
+ - **Checkpoint evidence**: a matching skipped npm checkpoint records only the observed integrity in `remoteRef.integrity`; package, version, registry, expected integrity, and tarball SHA-256 remain authoritative in the frozen plan.
25
25
 
26
26
  **Fixed**
27
27
 
28
- - **Prepare lint hook**: `lint` now runs before `docs`, `build`, `test`, and `typecheck`; a non-zero lint result stops prepare with `GATE_FAILED`. A schema-to-execution-table contract prevents accepted hook keys from becoming silent dead configuration.
29
- - **postPublish documentation**: the project configuration standard now places `postPublish` inside each `releaseUnits[]` item and carries a schema-validated example.
28
+ - **Existing npm version recovery**: when npm preflight finds the target version already published, publish compares the registry observation with the immutable plan. An exact match becomes `SKIPPED`, the npm execute count stays zero, and the remaining release actions continue.
29
+
30
+ **Upgrade Notes**
31
+
32
+ No configuration or migration is required. Existing release-run files remain valid because `remoteRef.integrity` is optional.
30
33
  <!-- release-skill:managed:end id=latest-release -->
31
34
 
32
35
  <!-- release-skill:capability:external-write-boundary -->
33
- > **Current boundary:** v0.7.6 is the current source candidate; v0.7.5 remains
36
+ > **Current boundary:** v0.7.8 is the current source candidate; v0.7.7 remains
34
37
  > the latest published release. v0.4.1 was an earlier published milestone;
35
38
  > v0.2.2 previously held published status before the platform verification
36
39
  > convergence fix was added.
@@ -50,8 +53,8 @@ v0.7.6 executes every schema-declared prepare hook and corrects the documented p
50
53
  > publish global preflight.
51
54
 
52
55
  <!-- release-skill:capability:safe-first-command -->
53
- > **Production path verified since the v0.1.1 milestone; v0.7.6 is the current
54
- > source candidate and v0.7.5 is the latest published release.** The npm-installed CLI is the supported user entry. Source checkout
56
+ > **Production path verified since the v0.1.1 milestone; v0.7.8 is the current
57
+ > source candidate and v0.7.7 is the latest published release.** The npm-installed CLI is the supported user entry. Source checkout
55
58
  > is the development/contributor fallback.
56
59
  >
57
60
  > **Start here:**
package/README.zh-CN.md CHANGED
@@ -2,29 +2,32 @@
2
2
 
3
3
  [English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.7.6 -->
5
+ <!-- release-skill:release-version: 0.7.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.7.6** (2026-08-22)
11
+ **0.7.8** (2026-08-24)
12
12
 
13
- v0.7.6 执行 schema 接受的全部 prepare hook,修正 postPublish 的文档层级,并保持现行 hook 授权与 Codex 适配器根目录语义不变。
13
+ v0.7.8 允许全新的发布安全接受已经包含同一份冻结 tarball npm 版本,不会再次执行 npm publish。
14
14
 
15
- **变更**
15
+ **安全**
16
16
 
17
- - **Codex 适配器契约覆盖**:新增复制隔离与路径负例测试,锁定既有的自包含适配器根目录语义:宿主提供的技能路径匹配 `PLUGIN_ROOT/skills/<skill>/SKILL.md`,入口仍为 `PLUGIN_ROOT/bin/release-skill.mjs`。这只是加强契约测试,不是运行时协议变更。
18
- - **hook 授权语义保持不变**:配置 hook 并调用对应工作流即授权执行,不增加独立确认点。旧确认参数仍是无效果的兼容输入;v0.7.6 不恢复执行前确认门。
17
+ - **integrity 失败关闭**:观察到的 integrity 不同、缺失、空白或无法解析时,run 会在任何 Adapter execute 前停止。现有 classifier、批准模型和前向恢复状态机保持不变。
18
+ - **检查点证据**:npm 检查点一致并跳过时,只在 `remoteRef.integrity` 记录本次观察到的 integrity;包名、版本、registry、预期 integrity 和 tarball SHA-256 继续以冻结计划为准。
19
19
 
20
20
  **修复**
21
21
 
22
- - **prepare lint hook**:`lint` 现在先于 `docs`、`build`、`test` `typecheck` 执行;lint 返回非零退出码时,prepare `GATE_FAILED` 停止。schema 与执行表之间新增覆盖契约,避免合法配置再次变成静默失效的死键。
23
- - **postPublish 文档**:项目配置标准现在把 `postPublish` 放在各个 `releaseUnits[]` 条目内,并提供经过 schema 校验的完整样例。
22
+ - **已存在 npm 版本的恢复**:npm preflight 发现目标版本已经发布后,publish 会把 registry observation 与不可变计划逐项比较。完全一致时,npm 检查点进入 `SKIPPED`,npm execute 次数保持为零,其他发布动作继续执行。
23
+
24
+ **升级说明**
25
+
26
+ 无需修改配置或迁移。`remoteRef.integrity` 是可选字段,已有 release-run 文件继续有效。
24
27
  <!-- release-skill:managed:end id=latest-release -->
25
28
 
26
29
  <!-- release-skill:capability:external-write-boundary -->
27
- > **当前边界:** v0.7.6 是当前源码候选,v0.7.5 是最新已发布版本。v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
30
+ > **当前边界:** v0.7.8 是当前源码候选,v0.7.7 是最新已发布版本。v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
28
31
  > v0.1.1 已完成 GitHub 与 npm 的
29
32
  > 真实生产发布,是首次生产验证的历史里程碑,并从冻结 Git ref 完成精确 npm
30
33
  > 安装及 Claude/Codex 消费者安装验证;"当前发布版本"与"首次生产验证里程碑"
@@ -37,7 +40,7 @@ v0.7.6 执行 schema 接受的全部 prepare hook,修正 postPublish 的文档
37
40
  > 远端唯一性检查在 `publish` 全局预检执行。
38
41
 
39
42
  <!-- release-skill:capability:safe-first-command -->
40
- > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.7.6 是当前源码候选,v0.7.5 是最新已发布版本。**
43
+ > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.7.8 是当前源码候选,v0.7.7 是最新已发布版本。**
41
44
  > npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
42
45
  >
43
46
  > **第一条命令:**
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.7.6",
12
+ "version": "0.7.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.7.6",
3
+ "version": "0.7.8",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"