release-skill 0.7.5 → 0.7.7

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 (60) 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 +37 -0
  7. package/INSTALL.md +2 -2
  8. package/INSTALL.zh-CN.md +2 -2
  9. package/README.md +22 -11
  10. package/README.zh-CN.md +17 -8
  11. package/SECURITY.md +12 -6
  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 +1729 -1159
  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/skills/release-prepare/SKILL.md +5 -1
  18. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  19. package/adapters/codex/bin/release-skill.bundle.mjs +1729 -1159
  20. package/adapters/codex/schemas/release-plan.schema.json +47 -0
  21. package/adapters/codex/schemas/release-project.schema.json +24 -0
  22. package/adapters/codex/skills/release-assess/SKILL.md +1 -1
  23. package/adapters/codex/skills/release-config/SKILL.md +1 -1
  24. package/adapters/codex/skills/release-docs/SKILL.md +1 -1
  25. package/adapters/codex/skills/release-help/SKILL.md +1 -1
  26. package/adapters/codex/skills/release-marketplace/SKILL.md +1 -1
  27. package/adapters/codex/skills/release-prepare/SKILL.md +6 -2
  28. package/adapters/codex/skills/release-publish/SKILL.md +1 -1
  29. package/adapters/codex/skills/release-reconcile/SKILL.md +1 -1
  30. package/adapters/codex/skills/release-setup/SKILL.md +1 -1
  31. package/adapters/codex/skills/release-verify/SKILL.md +1 -1
  32. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  33. package/adapters/kimi/bin/release-skill.bundle.mjs +1729 -1159
  34. package/adapters/kimi/schemas/release-plan.schema.json +47 -0
  35. package/adapters/kimi/schemas/release-project.schema.json +24 -0
  36. package/adapters/kimi/skills/release-prepare/SKILL.md +5 -1
  37. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  38. package/adapters/workbuddy/bin/release-skill.bundle.mjs +1729 -1159
  39. package/adapters/workbuddy/schemas/release-plan.schema.json +47 -0
  40. package/adapters/workbuddy/schemas/release-project.schema.json +24 -0
  41. package/adapters/workbuddy/skills/release-prepare/SKILL.md +5 -1
  42. package/bin/release-skill-cli.mjs +116 -47
  43. package/bin/release-skill.bundle.mjs +1729 -1159
  44. package/package.json +1 -1
  45. package/platform-manifest.json +4 -4
  46. package/references/.render-manifest.json +4 -4
  47. package/references/02-project-config.md +73 -29
  48. package/schemas/release-plan.schema.json +47 -0
  49. package/schemas/release-project.schema.json +24 -0
  50. package/skills/release-prepare/SKILL.md +5 -1
  51. package/skills-src/release-prepare/SKILL.md +5 -1
  52. package/src/adapters/git-github.mjs +139 -26
  53. package/src/commands/prepare.mjs +76 -6
  54. package/src/commands/publish.mjs +36 -0
  55. package/src/commands/verify.mjs +53 -1
  56. package/src/core/config.mjs +31 -0
  57. package/src/core/plan.mjs +78 -0
  58. package/src/core/release-assets.mjs +54 -0
  59. package/src/core/source-authority.mjs +127 -3
  60. package/src/producers/build-adapters.mjs +1 -1
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.7.5",
12
+ "version": "0.7.7",
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.5",
3
+ "version": "0.7.7",
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.5",
3
+ "version": "0.7.7",
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.5",
3
+ "version": "0.7.7",
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.5.",
22
+ "Prepare a release plan for version 0.7.7.",
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.5",
3
+ "version": "0.7.7",
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,42 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.7.7 locale=en baseline=sha256:bdd8a5cd123e916f5581051c7138f56572b35b3640187551aca6faa453ea1a51 -->
4
+ ## [0.7.7] - 2026-08-24
5
+
6
+ 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.
7
+
8
+ ### Security
9
+
10
+ - **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.
11
+ - **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.
12
+
13
+ ### Added
14
+
15
+ - **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.
16
+
17
+ ### Upgrade Notes
18
+
19
+ `publicSourceAuthorityReceipt` is optional. Existing projects require no configuration or migration; enable it only when a release needs the public source-authority asset.
20
+ <!-- release-skill:changelog:end version=0.7.7 locale=en -->
21
+
22
+
23
+ <!-- release-skill:changelog:start version=0.7.6 locale=en baseline=sha256:16665362b8c0f06b7ed94f2839f5b380216b13ca6ab5e6c51b043985f8a8c8c2 -->
24
+ ## [0.7.6] - 2026-08-22
25
+
26
+ 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.
27
+
28
+ ### Changed
29
+
30
+ - **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.
31
+ - **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.
32
+
33
+ ### Fixed
34
+
35
+ - **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.
36
+ - **postPublish documentation**: the project configuration standard now places `postPublish` inside each `releaseUnits[]` item and carries a schema-validated example.
37
+ <!-- release-skill:changelog:end version=0.7.6 locale=en -->
38
+
39
+
3
40
  <!-- release-skill:changelog:start version=0.7.5 locale=en baseline=sha256:39f8f00f21c9071341106ea4becf4e8d10a732bd01b430e244dc4e3c5bf07da2 -->
4
41
  ## [0.7.5] - 2026-08-22
5
42
 
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.5 -->
5
+ <!-- release-skill:release-version: 0.7.7 -->
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.5
117
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.7.7
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.5 -->
5
+ <!-- release-skill:release-version: 0.7.7 -->
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.5
107
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.7.7
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.5 -->
5
+ <!-- release-skill:release-version: 0.7.7 -->
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,17 +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.5** (2026-08-22)
17
+ **0.7.7** (2026-08-24)
18
18
 
19
- v0.7.5 recognizes registered platform projections that publish a single `skill/` entry, closing the remaining false missing-host result for Skill Failure Auditor releases.
19
+ 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.
20
20
 
21
- **Fixed**
21
+ **Security**
22
22
 
23
- - **Singular platform skill surfaces**: resource closure now assigns `platforms/<host>/skill/SKILL.md` to the registered `platforms/<host>` surface, while preserving root, adapter, and plural `skills/` behavior. Unregistered platform trees still fail closed. The changed closure algorithm is identified as `skill-resource-closure-v4`, so plans frozen by earlier checker versions cannot cross the publish boundary.
23
+ - **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.
24
+ - **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.
25
+
26
+ **Added**
27
+
28
+ - **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.
29
+
30
+ **Upgrade Notes**
31
+
32
+ `publicSourceAuthorityReceipt` is optional. Existing projects require no configuration or migration; enable it only when a release needs the public source-authority asset.
24
33
  <!-- release-skill:managed:end id=latest-release -->
25
34
 
26
35
  <!-- release-skill:capability:external-write-boundary -->
27
- > **Current boundary:** v0.7.5 is the current source candidate; v0.7.4 remains
36
+ > **Current boundary:** v0.7.7 is the current source candidate; v0.7.6 remains
28
37
  > the latest published release. v0.4.1 was an earlier published milestone;
29
38
  > v0.2.2 previously held published status before the platform verification
30
39
  > convergence fix was added.
@@ -44,8 +53,8 @@ v0.7.5 recognizes registered platform projections that publish a single `skill/`
44
53
  > publish global preflight.
45
54
 
46
55
  <!-- release-skill:capability:safe-first-command -->
47
- > **Production path verified since the v0.1.1 milestone; v0.7.5 is the current
48
- > source candidate and v0.7.4 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.7 is the current
57
+ > source candidate and v0.7.6 is the latest published release.** The npm-installed CLI is the supported user entry. Source checkout
49
58
  > is the development/contributor fallback.
50
59
  >
51
60
  > **Start here:**
@@ -528,9 +537,11 @@ hooks:
528
537
  envAllowlist: []
529
538
  ```
530
539
 
531
- Hooks run when `prepare` is invoked; the command call itself authorizes
532
- execution. Gates are the controlled extension point for release calibration
533
- (see `references/02-project-config.md`).
540
+ Hooks run when `prepare` is invoked. Configuring the command and invoking the
541
+ workflow authorizes execution without an extra confirmation point. The legacy
542
+ `--acknowledge-hook-side-effects` and `--acknowledge-gate-side-effects` flags
543
+ remain accepted as no-effect compatibility inputs. Gates are the controlled
544
+ extension point for release calibration (see `references/02-project-config.md`).
534
545
 
535
546
  ### postPublish hooks
536
547
 
package/README.zh-CN.md CHANGED
@@ -2,23 +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.5 -->
5
+ <!-- release-skill:release-version: 0.7.7 -->
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.5** (2026-08-22)
11
+ **0.7.7** (2026-08-24)
12
12
 
13
- v0.7.5 能识别只发布一个 `skill/` 入口的平台注册投影,消除了 Skill Failure Auditor 发布中剩余的宿主面误判。
13
+ v0.7.7 可以发布精简的公开源码权威收据,把精确的源码仓库与提交绑定到一个或多个已冻结的 npm tarball。
14
14
 
15
- **修复**
15
+ **安全**
16
16
 
17
- - **单数平台技能目录**:资源闭包现在会把 `platforms/<host>/skill/SKILL.md` 归入已登记的 `platforms/<host>` 投影面,同时保持根目录、adapter 和复数 `skills/` 布局的原有行为。未登记的平台目录仍会失败关闭。闭包算法标识升级为 `skill-resource-closure-v4`,早期检查器冻结的计划不能越过发布边界。
17
+ - **远端提交绑定**:publish 现在会在任何 adapter preflight 或写入前,要求远端实际提交与收据中的源码基线字段 `sourceBaseCommit` 一致。verify reconcile 保留相同约束。
18
+ - **实际 tarball 验证**:离线验证会重新打开每个主体的真实冻结 tgz。既有检查会核对符号链接、文件身份、摘要、包名和版本,通过后才接受对应的收据条目。
19
+
20
+ **新增**
21
+
22
+ - **可选的公开源码权威收据**:项目可以通过可选配置 `publicSourceAuthorityReceipt` 声明一个协调发布单元和一个或多个 npm 主体单元。生产 prepare 根据规范化后的源码仓库、基线提交、包名、版本、tarball 文件名和 SHA-256,生成 canonical JSON(规范化 JSON)格式的公开收据文件 `source-authority-receipt.json`。publish 随后把完全相同的字节作为 GitHub Release 资产上传。
23
+
24
+ **升级说明**
25
+
26
+ `publicSourceAuthorityReceipt` 是可选配置。现有项目不需要修改配置或迁移;只有发布需要公开源码权威资产时才启用。
18
27
  <!-- release-skill:managed:end id=latest-release -->
19
28
 
20
29
  <!-- release-skill:capability:external-write-boundary -->
21
- > **当前边界:** v0.7.5 是当前源码候选,v0.7.4 是最新已发布版本。v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
30
+ > **当前边界:** v0.7.7 是当前源码候选,v0.7.6 是最新已发布版本。v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
22
31
  > v0.1.1 已完成 GitHub 与 npm 的
23
32
  > 真实生产发布,是首次生产验证的历史里程碑,并从冻结 Git ref 完成精确 npm
24
33
  > 安装及 Claude/Codex 消费者安装验证;"当前发布版本"与"首次生产验证里程碑"
@@ -31,7 +40,7 @@ v0.7.5 能识别只发布一个 `skill/` 入口的平台注册投影,消除了
31
40
  > 远端唯一性检查在 `publish` 全局预检执行。
32
41
 
33
42
  <!-- release-skill:capability:safe-first-command -->
34
- > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.7.5 是当前源码候选,v0.7.4 是最新已发布版本。**
43
+ > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.7.7 是当前源码候选,v0.7.6 是最新已发布版本。**
35
44
  > npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
36
45
  >
37
46
  > **第一条命令:**
@@ -474,7 +483,7 @@ hooks:
474
483
  envAllowlist: []
475
484
  ```
476
485
 
477
- hook 在 `prepare` 调用时运行,命令调用本身即授权执行。gate 是发布校准的受控扩展点(见 `references/02-project-config.md`)。
486
+ hook 在 `prepare` 调用时运行;配置命令并调用工作流即授权执行,不再增加触发前确认点。旧参数 `--acknowledge-hook-side-effects` 和 `--acknowledge-gate-side-effects` 只作为无效果的兼容输入保留。gate 是发布校准的受控扩展点(见 `references/02-project-config.md`)。
478
487
 
479
488
  ### postPublish hook
480
489
 
package/SECURITY.md CHANGED
@@ -4,7 +4,8 @@
4
4
 
5
5
  | Version | Supported |
6
6
  | ------- | --------- |
7
- | 0.1.x | Yes |
7
+ | 0.7.x | Yes |
8
+ | 0.6.x and earlier | No |
8
9
 
9
10
  ## Reporting a Vulnerability
10
11
 
@@ -30,12 +31,17 @@ release-skill is designed with the following security guarantees:
30
31
 
31
32
  - **No automatic external writes**: The `prepare` phase never pushes,
32
33
  creates releases, or publishes packages itself. User-configured hooks
33
- may produce arbitrary side effects; pass `--acknowledge-hook-side-effects`
34
- to authorize hook execution.
34
+ and gates may produce arbitrary side effects. Configuring a command and
35
+ invoking the workflow authorizes its execution without an extra confirmation
36
+ point. The legacy `--acknowledge-hook-side-effects` and
37
+ `--acknowledge-gate-side-effects` flags remain accepted only as no-effect
38
+ compatibility inputs.
35
39
  - **Approval-gated publishing**: The `publish` phase requires an explicit,
36
- non-expired approval record bound to a frozen release plan. Approval
37
- expires after 24 hours and auto-invalidates when the plan, tree hash,
38
- target version, or remote conflict state changes.
40
+ non-expired approval record bound to an immutable plan v2, its frozen
41
+ artifact, release action, and target version. Approval expires after 24
42
+ hours. Workspace tree or hash drift is retained as audit evidence rather
43
+ than an approval binding, while a remote conflict blocks publish preflight
44
+ instead of changing the approval record.
39
45
  - **Checkpoint-based execution**: Every external write is a checkpoint.
40
46
  Failure stops subsequent actions and enters a `PARTIAL` state. The system
41
47
  never auto-deletes remote tags, overwrites releases, unpublishes npm
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.7.5",
12
+ "version": "0.7.7",
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.5",
3
+ "version": "0.7.7",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"