release-skill 0.9.25 → 0.9.26

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 (43) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +2 -2
  4. package/.cursor-plugin/plugin.json +1 -1
  5. package/.kimi-plugin/plugin.json +1 -1
  6. package/.qoder-plugin/plugin.json +1 -1
  7. package/CHANGELOG.md +25 -0
  8. package/INSTALL.md +2 -2
  9. package/INSTALL.zh-CN.md +2 -2
  10. package/README.md +16 -15
  11. package/README.zh-CN.md +18 -16
  12. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  13. package/adapters/claude/bin/release-skill.bundle.mjs +3 -2
  14. package/adapters/claude/skills/release-help/SKILL.md +7 -5
  15. package/adapters/claude/skills/release-prepare/SKILL.md +2 -2
  16. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  17. package/adapters/codex/bin/release-skill.bundle.mjs +3 -2
  18. package/adapters/codex/skills/release-help/SKILL.md +7 -5
  19. package/adapters/codex/skills/release-prepare/SKILL.md +2 -2
  20. package/adapters/cursor/.cursor-plugin/plugin.json +1 -1
  21. package/adapters/cursor/bin/release-skill.bundle.mjs +3 -2
  22. package/adapters/cursor/skills/release-help/SKILL.md +7 -5
  23. package/adapters/cursor/skills/release-prepare/SKILL.md +2 -2
  24. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  25. package/adapters/kimi/bin/release-skill.bundle.mjs +3 -2
  26. package/adapters/kimi/skills/release-help/SKILL.md +7 -5
  27. package/adapters/kimi/skills/release-prepare/SKILL.md +2 -2
  28. package/adapters/qoder/.qoder-plugin/plugin.json +1 -1
  29. package/adapters/qoder/bin/release-skill.bundle.mjs +3 -2
  30. package/adapters/qoder/skills/release-help/SKILL.md +7 -5
  31. package/adapters/qoder/skills/release-prepare/SKILL.md +2 -2
  32. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  33. package/adapters/workbuddy/bin/release-skill.bundle.mjs +3 -2
  34. package/adapters/workbuddy/skills/release-help/SKILL.md +7 -5
  35. package/adapters/workbuddy/skills/release-prepare/SKILL.md +2 -2
  36. package/bin/release-skill.bundle.mjs +3 -2
  37. package/package.json +1 -1
  38. package/platform-manifest.json +4 -4
  39. package/skills/release-help/SKILL.md +7 -5
  40. package/skills/release-prepare/SKILL.md +2 -2
  41. package/skills-src/release-help/SKILL.md +7 -5
  42. package/skills-src/release-prepare/SKILL.md +2 -2
  43. package/src/commands/post-release-local.mjs +1 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.25",
3
+ "version": "0.9.26",
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.25",
3
+ "version": "0.9.26",
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.25",
3
+ "version": "0.9.26",
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.25.",
22
+ "Prepare a release plan for version 0.9.26.",
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.25",
3
+ "version": "0.9.26",
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.25",
3
+ "version": "0.9.26",
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.25",
3
+ "version": "0.9.26",
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,30 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.9.26 locale=en baseline=sha256:233636f011ef5211286935424f64ef11eb1170dc297f40a2dd65e6572c459bb0 -->
4
+ ## [0.9.26] - 2026-10-12
5
+
6
+ 0.9.26 corrects wording that treated the current installed version as permanently a source candidate. It also makes existing WorkBuddy CLI calls in local host updates select the official lite-wb bundle. The three Foundation dependencies remain pinned to 0.22.0. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
7
+
8
+ ### Security
9
+
10
+ - Existing safety boundaries are unchanged: Hub publication remains a compare-and-swap operation bound to the observed branch head. Partial Hub publication is never rolled back or force-pushed automatically, and completed steps are not overwritten.
11
+ - Approval, publication, post-publication verification, consumer installation, real-host loading, and independent acceptance still require their own actual records. This note does not prove any of those outcomes. Selecting the WorkBuddy bundle does not establish authentication or real-host qualification.
12
+
13
+ ### Changed
14
+
15
+ - The distribution path is unchanged: Skill Family Hub remains the central marketplace, and its entry is still updated through the existing GitHub Git Data API after release verification.
16
+
17
+ ### Fixed
18
+
19
+ - The help and prepare skills, both READMEs, and README acceptance prompts describe capabilities and evidence boundaries without assigning a permanent candidate status to the current version. Version synchronization retains necessary version references without restoring that status assertion. Existing regression checks cover these boundaries.
20
+ - The WorkBuddy branch of local host update commands sets CODEBUDDY_FORCE_LITE_WB_BUNDLE=1 to select the official lite-wb bundle. Other hosts do not receive this selector. Existing authentication filtering, exact-source checks, and fail-closed behavior remain in place.
21
+
22
+ ### Upgrade Notes
23
+
24
+ For consumers already using Skill Family Hub, no configuration migration is required. Installations still using the old release-skill standalone marketplace should remove it and use the ifoohoo/skill-family-hub repository with the Hub-qualified plugin id release-skill@skill-family-hub; this migration path is unchanged. The existing --unit release-selection contract is unchanged. This update adds no automatic first-time installation capability and does not change the existing MANUAL_REQUIRED boundary.
25
+ <!-- release-skill:changelog:end version=0.9.26 locale=en -->
26
+
27
+
3
28
  <!-- release-skill:changelog:start version=0.9.25 locale=en baseline=sha256:7251718ad92327e37679d4db09d19657ea13f51a5720aa33369181fe5ddb3bbe -->
4
29
  ## [0.9.25] - 2026-10-12
5
30
 
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.25 -->
5
+ <!-- release-skill:release-version: 0.9.26 -->
6
6
  ## Prerequisites
7
7
 
8
8
  - Node.js `>=22.22.2 <23` (22.22.2 or newer, and below 23)
@@ -125,7 +125,7 @@ tag pinned to the exact version (never the bare repository URL, which installs
125
125
  the latest release or default branch), confirm the trust prompt, then reload:
126
126
 
127
127
  ```
128
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.25
128
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.26
129
129
  /plugins reload
130
130
  ```
131
131
 
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.25 -->
5
+ <!-- release-skill:release-version: 0.9.26 -->
6
6
  ## 前置条件
7
7
 
8
8
  - Node.js `>=22.22.2 <23`(22.22.2 及以上,且低于 23)
@@ -113,7 +113,7 @@ release-skill 当前只采用并验证 Kimi Code 的交互式 TUI 路径,**无
113
113
  (切勿使用裸仓库地址,它会安装最新 release 或默认分支),确认信任提示后重新加载:
114
114
 
115
115
  ```
116
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.25
116
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.26
117
117
  /plugins reload
118
118
  ```
119
119
 
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.25 -->
5
+ <!-- release-skill:release-version: 0.9.26 -->
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,13 +14,14 @@ 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.25** (2026-10-12)
17
+ **0.9.26** (2026-10-12)
18
18
 
19
- 0.9.25 is a local source candidate. It fixes a RangeError in public-file inspection when one scan root contains 128197 files. The three Foundation dependencies remain pinned to 0.22.0. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
19
+ 0.9.26 corrects wording that treated the current installed version as permanently a source candidate. It also makes existing WorkBuddy CLI calls in local host updates select the official lite-wb bundle. The three Foundation dependencies remain pinned to 0.22.0. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
20
20
 
21
21
  **Security**
22
22
 
23
23
  - Existing safety boundaries are unchanged: Hub publication remains a compare-and-swap operation bound to the observed branch head. Partial Hub publication is never rolled back or force-pushed automatically, and completed steps are not overwritten.
24
+ - Approval, publication, post-publication verification, consumer installation, real-host loading, and independent acceptance still require their own actual records. This note does not prove any of those outcomes. Selecting the WorkBuddy bundle does not establish authentication or real-host qualification.
24
25
 
25
26
  **Changed**
26
27
 
@@ -28,16 +29,17 @@ report stays in a temporary session directory.
28
29
 
29
30
  **Fixed**
30
31
 
31
- - Public-file inspection now appends files individually to avoid passing too many arguments in one call and interrupting release preparation. Scan order, file identities, public-file mappings, and include/exclude classification policy remain unchanged. A regression test runs the real scanning, classification, and mapping logic with 128197 in-memory directory entries. It reproduced the RangeError at the same location in the old implementation and passes after the fix; it does not create that many files on disk.
32
+ - The help and prepare skills, both READMEs, and README acceptance prompts describe capabilities and evidence boundaries without assigning a permanent candidate status to the current version. Version synchronization retains necessary version references without restoring that status assertion. Existing regression checks cover these boundaries.
33
+ - The WorkBuddy branch of local host update commands sets CODEBUDDY_FORCE_LITE_WB_BUNDLE=1 to select the official lite-wb bundle. Other hosts do not receive this selector. Existing authentication filtering, exact-source checks, and fail-closed behavior remain in place.
32
34
 
33
35
  **Upgrade Notes**
34
36
 
35
- No configuration migration is required. Installations still using the old release-skill standalone marketplace should remove it and use the ifoohoo/skill-family-hub repository with the Hub-qualified plugin id release-skill@skill-family-hub; this migration path is unchanged. This note does not replace execution evidence for the full release gates, publication, consumer installation, host loading, or independent acceptance.
37
+ For consumers already using Skill Family Hub, no configuration migration is required. Installations still using the old release-skill standalone marketplace should remove it and use the ifoohoo/skill-family-hub repository with the Hub-qualified plugin id release-skill@skill-family-hub; this migration path is unchanged. The existing --unit release-selection contract is unchanged. This update adds no automatic first-time installation capability and does not change the existing MANUAL_REQUIRED boundary.
36
38
  <!-- release-skill:managed:end id=latest-release -->
37
39
 
38
40
  <!-- release-skill:capability:external-write-boundary -->
39
- > **Current boundary:** v0.9.25 is the current source candidate. This README
40
- > records intended scope and verification boundaries; it is not evidence of
41
+ > **Current boundary:** v0.9.26: this README records capabilities and verification boundaries;
42
+ > it is not evidence of
41
43
  > publication, consumer-installation verification, or independent acceptance.
42
44
  > Release availability must be established from the corresponding release records
43
45
  > and post-publish verification results.
@@ -60,9 +62,9 @@ No configuration migration is required. Installations still using the old releas
60
62
  > publish global preflight.
61
63
 
62
64
  <!-- release-skill:capability:safe-first-command -->
63
- > **Production path verified since the v0.1.1 milestone; v0.9.25 is the current
64
- > source candidate. Its README does not establish publication,
65
- > consumer-installation verification, or independent acceptance.**
65
+ > **Production path verified since the v0.1.1 milestone; for v0.9.26,
66
+ > publication, consumer-installation verification, and independent acceptance
67
+ > require version-specific release records and verification results.**
66
68
  > The npm-installed CLI is the supported user entry. Source checkout
67
69
  > is the development/contributor fallback.
68
70
  >
@@ -93,18 +95,17 @@ checkpoints remain intact and use matching-version recovery. Evidence v1 stays
93
95
  read-only; v2 uses a closed top level with phase extensions in `details`.
94
96
  Summaries and recovery suggestions are diagnostic, never publication authority.
95
97
 
96
- The current 0.9.25 candidate includes the narrow R-05 Hook cache v2 consumer
98
+ release-skill includes the narrow R-05 Hook cache v2 consumer
97
99
  path, the public `postverify` path, and the stable isolated install-tree record
98
- path (A2/A3). It also adds the explicit-input `verify-records` command and a
100
+ path (A2/A3). It also includes the explicit-input `verify-records` command and a
99
101
  self-contained Qoder projection, first-class Cursor packaging, and the
100
102
  Foundation-backed host verification bridge. Skill Family Hub remains the single
101
- marketplace source. The candidate
102
- also makes the `release-prepare` Skill organize existing assessment, refresh,
103
+ marketplace source. The `release-prepare` Skill organizes existing assessment, refresh,
103
104
  focused-check, and prepare entry points without adding another execution
104
105
  engine. `prepare --help` and `prepare -h` now return before configuration,
105
106
  locks, runs, or hooks can observe the request. The `release-finish` Skill can
106
107
  also report the source branch and continue into a configured setup entry after
107
- the selected host has loaded the released plugin. This candidate still excludes
108
+ the selected host has loaded the released plugin. This scope still excludes
108
109
  R-02 safe full-tree inventory. Marketplace installation and live invocation
109
110
  remain host-level post-release checks; Cursor is distributed through its
110
111
  supported local-plugin directory rather than a Hub marketplace entry.
package/README.zh-CN.md CHANGED
@@ -2,51 +2,53 @@
2
2
 
3
3
  [English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.25 -->
5
+ <!-- release-skill:release-version: 0.9.26 -->
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.25** (2026-10-12)
11
+ **0.9.26** (2026-10-12)
12
12
 
13
- 0.9.25 是一个本地源码候选。本次修复公开文件检查在单个扫描根含 128197 个文件时触发的 RangeError。Foundation 三个依赖继续固定为 0.22.0。本说明不代表已经发布、完成真实宿主验收、完成消费者安装验证或通过独立验收。
13
+ 0.9.26 修正了将当前安装版本永久描述为“源码候选”的措辞,并让本机宿主更新中的既有 WorkBuddy CLI 调用选择官方 lite-wb 包。Foundation 三个依赖继续固定为 0.22.0。本说明不代表已经发布、完成真实宿主验收、完成消费者安装验证或通过独立验收。
14
14
 
15
15
  **安全**
16
16
 
17
17
  - 既有安全边界保持不变:Hub 写入继续绑定已观察的分支头,按 compare-and-swap 比较后写入。部分发布时不回滚、不覆盖已成功步骤,也不自动强推。
18
+ - 批准、发布、发布后验证、消费者安装、真实宿主加载和独立验收仍分别需要实际记录。本说明不能证明这些结果,选择 WorkBuddy 包也不能证明认证已成立或真实宿主资格已经通过。
18
19
 
19
20
  **变更**
20
21
 
21
- - 分发路径保持不变:Skill Family Hub 仍是统一市场,发布验证完成后,仍通过既有 GitHub Git Data API 更新 Hub 条目。
22
+ - 分发路径保持不变:Skill Family Hub 仍是统一市场;发布验证完成后,Hub 条目仍通过既有 GitHub Git Data API 更新。
22
23
 
23
24
  **修复**
24
25
 
25
- - 公开文件检查改为逐项追加,避免一次调用传入过多参数而阻断发布准备;原扫描顺序、文件身份、公开文件映射及包含/排除分类策略保持不变。新增回归用 128197 个内存目录项执行真实扫描、分类和映射逻辑,在旧实现上精确复现同位置的 RangeError,修复后通过;该回归没有创建同等规模的真实磁盘文件。
26
+ - help 和 prepare 技能、两份 README 及 README 验收提示现在说明能力与证据边界,不再给当前版本固定候选身份。版本同步继续保留必要的版本引用,但不再恢复这一状态断言。既有回归检查覆盖这些边界。
27
+ - 本机宿主更新命令的 WorkBuddy 分支通过 CODEBUDDY_FORCE_LITE_WB_BUNDLE=1 选择官方 lite-wb 包;其他宿主不接收该选择器。原有认证信息过滤、精确来源检查和失败关闭行为保持不变。
26
28
 
27
29
  **升级说明**
28
30
 
29
- 升级无需迁移配置。若仍使用旧版独立的 `release-skill` 市场,应移除旧市场,改用 ifoohoo/skill-family-hub 仓库与 Hub 限定插件名 release-skill@skill-family-hub;这条迁移路径保持不变。本说明不能代替完整发布门禁、正式发布、消费者安装、宿主加载或独立验收的实际证据。
31
+ 已使用 Skill Family Hub 的消费者升级时无需迁移配置。若仍使用旧版独立的 `release-skill` 市场,应移除旧市场,改用 ifoohoo/skill-family-hub 仓库与 Hub 限定插件名 release-skill@skill-family-hub;这条迁移路径保持不变。既有 --unit 选择合同保持不变。本次不增加首次自动安装能力,也不改变原 MANUAL_REQUIRED 边界。
30
32
  <!-- release-skill:managed:end id=latest-release -->
31
33
 
32
34
  <!-- release-skill:capability:external-write-boundary -->
33
- > **当前边界:** v0.9.25 只是当前源码候选。本 README 记录预期范围与验证边界,
35
+ > **当前边界:** v0.9.26 的能力范围与验证边界见本 README,
34
36
  > 不代表已经发布、完成消费者安装验证或通过独立验收。
35
37
  > 版本可用性以对应发布记录及发布后验证结果为准。
36
38
  > v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
37
- > v0.1.1 已完成 GitHub 与 npm 的
38
- > 真实生产发布,是首次生产验证的历史里程碑,并从冻结 Git ref 完成精确 npm
39
- > 安装及 Claude/Codex 消费者安装验证;"当前发布版本"与"首次生产验证里程碑"
40
- > 是两个不同的事实,不得混写成同一含义。同一工作流还通过了本地
41
- > 生产等价协议套件:测试运行真实 release-skill CLI 和冻结制品,Git 目标是
42
- > 本地 bare remote,`gh`、`npm`、Claude、Codex 使用协议级 fake。该套件没有
39
+ > v0.1.1 已完成 GitHub 与 npm 的真实生产发布,是首次生产验证的历史里程碑。
40
+ > 该版本还从冻结 Git ref 完成精确 npm 安装及 Claude/Codex 消费者安装验证。
41
+ > “当前发布版本”与“首次生产验证里程碑”是两个不同的事实,不能混为一谈。
42
+ > 同一工作流还通过了本地生产等价协议套件:测试使用真实 release-skill CLI 和
43
+ > 冻结制品,Git 目标为本地 bare remote,`gh`、`npm`、Claude、Codex 使用
44
+ > 协议级 fake。该套件没有
43
45
  > 提供 OS 级网络隔离,也不能证明其他项目的认证、权限、限流和最终一致性行为
44
46
  > 与本次发布相同;每个项目的第一次生产发布仍应作为受监控 canary。
45
47
  > `prepare --online` 观察 bound 前序公开基线,漂移或不可观察时失败关闭;
46
48
  > 远端唯一性检查在 `publish` 全局预检执行。
47
49
 
48
50
  <!-- release-skill:capability:safe-first-command -->
49
- > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.9.25 是当前源码候选,本 README 不证明该候选已经发布、完成消费者安装验证或通过独立验收。**
51
+ > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.9.26 的发布、消费者安装验证和独立验收状态须由该版本的发布记录及验证结果确认。**
50
52
  > npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
51
53
  >
52
54
  > **第一条命令:**
@@ -68,8 +70,8 @@ marketplace 委托目标工作区发布的边界不变。
68
70
 
69
71
  旧 production 计划缺少 `sourceAuthority` 时,在外部写入前拒绝。未发生外部写入的计划必须重新 prepare 并批准新摘要,不能补写旧计划或迁移批准。已有 `PARTIAL` 保留检查点,走匹配版本的恢复路径。evidence v1 只读;v2 顶层封闭,阶段扩展放在 `details`。摘要和恢复建议只作诊断,不构成发布权威。
70
72
 
71
- 当前 0.9.25 候选包含窄范围的 R-05 Hook cache v2 消费路径、公开 `postverify`
72
- 路径和稳定隔离安装树记录路径(A2/A3),并增加只接受显式输入的 `verify-records`
73
+ release-skill 包含窄范围的 R-05 Hook cache v2 消费路径、公开 `postverify`
74
+ 路径和稳定隔离安装树记录路径(A2/A3),还包含只接受显式输入的 `verify-records`
73
75
  命令、自包含 Qoder 投影、Cursor 正式打包,以及基于 Foundation 的宿主核验桥。
74
76
  Skill Family Hub 仍是唯一市场来源。
75
77
  `release-prepare` Skill 现在会组织项目已有的评估、刷新、聚焦检查和 prepare 入口,不新增执行引擎。
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.25",
3
+ "version": "0.9.26",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.25"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.26"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "42145a246d5fd5adff3a1218e94fbfc06df377290431628aa3270e2414b8183e";
14
+ const __bundleSourceDigest = "e423ce89a99a1ec7350c5243cca4a6570684945b0ba83452cc9892789985489d";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -135457,6 +135457,7 @@ function hostEnvironment(host, { kimiHome } = {}) {
135457
135457
  if (host === "workbuddy") {
135458
135458
  env.CODEBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135459
135459
  env.WORKBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135460
+ env.CODEBUDDY_FORCE_LITE_WB_BUNDLE = "1";
135460
135461
  }
135461
135462
  if (host === "kimi" && kimiHome) env.KIMI_CODE_HOME = kimiHome;
135462
135463
  return env;
@@ -29,15 +29,17 @@ description: "Discoverable entry point for release-skill: dependency and environ
29
29
 
30
30
  治理诊断只运行 release-skill 自己的只读检查程序,不运行目标 Skill、业务脚本、构建、hook 或发布动作,也不把 `prepare`、`verify`、`release-finish` 当作静态治理入口。用户要求实际接入或发布时,把已有授权带到对应原业务入口;各入口继续执行原有确认、副作用和状态机合同。
31
31
 
32
- ## 0.9.25 候选边界
32
+ ## 0.9.26 能力与证据边界
33
33
 
34
- 当前 0.9.25 候选精确消费 Foundation 0.22.0 的公开包根 API。0.9.25 仍是源码候选,不能从本说明推断已批准、发布或验证。
34
+ release-skill 0.9.26 精确依赖 Foundation 0.22.0 的公开包根 API。本节说明当前版本的能力范围与证据边界;批准、发布和验证状态以对应计划、批准及执行记录为准,不能由本说明推断。
35
35
 
36
- 冻结前,`prepare` 或新建 `ship` 状态可重复传入 `--unit <id>`;不传则选择全部单元。延期单元不进入计划,也不获得发布状态。完整配置、生成物新鲜度和顶层 Hook 仍覆盖全项目;`publicSourceAuthorityReceipt` 的 coordinator 与 subjects 必须共同选择。冻结后以 `plan.units` 为唯一范围,publish、reconcile、verify、distribute 不再接受 `--unit`。
36
+ 在冻结前,`prepare` 或新建 `ship` 状态时可重复传入 `--unit <id>`;未传入则默认选择全部单元。延期单元不进入发布计划,亦不获得发布状态。完整配置、生成物新鲜度检查及顶层 Hook 仍作用于全项目范围。`publicSourceAuthorityReceipt` 的 coordinator 与全部 subjects 必须共同选择。
37
37
 
38
- 每个单元都要声明 `previousPublicBaseline`:确认没有前序版本才用 `none`,否则使用带 repo/ref/commit 的 `bound`。`none` 不绕过 publish 的唯一性预检。
38
+ 冻结后,发布流程(publish、reconcile、verify、distribute)不再接受 `--unit` 参数,仅以 `plan.units` 为唯一有效范围。
39
39
 
40
- Hook cache v2 只复用绝对路径,或已用真实 cwd 核验的 cwd-relative executable identity;裸 PATH、PATHEXT、Windows 或观察不可用时冷执行,并失败关闭。稳定隔离安装树只在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接只记录、不跟随,声明载荷中的 symlink 失败关闭。
40
+ 每个单元必须声明 `previousPublicBaseline`:只有确认没有前序公开版本时,才使用 `none`;否则必须提供 `bound`,并包含 `repo/ref/commit` 信息。`none` 不绕过 publish 阶段的唯一性预检。
41
+
42
+ Hook 缓存 v2 仅复用绝对路径,或已通过真实 cwd 核验的 cwd-relative 可执行文件身份;若依赖裸 PATH、PATHEXT、Windows 环境或观察不可用,将触发冷执行并失败关闭。稳定隔离安装树仅在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接仅记录,不跟随;声明载荷中出现 symlink 将导致失败关闭。
41
43
 
42
44
  ## 最短路径
43
45
 
@@ -13,7 +13,7 @@ description: Freeze an immutable release plan with local configuration, document
13
13
 
14
14
  运行项目构建/测试 hook,生成公开快照并扫描泄漏,冻结不可变发布计划。prepare 自身不调用发布 adapter,但会执行用户配置的 hook。
15
15
 
16
- 0.9.4 候选允许多发布单元项目在冻结前显式选择本轮范围。`--unit <id>` 可以重复传入;未传时仍选择全部单元。显式选择只跳过延期单元的单元级工作,完整配置校验、生成物新鲜度和顶层 Hook 仍全部执行。计划冻结后以 `plan.units` 为唯一范围权威,publish、reconcile、verify 和 distribute 不接受单元选择。
16
+ 自 0.9.4 起,多发布单元项目可在计划冻结前显式指定本轮发布范围。重复传入 `--unit <id>` 可选择多个单元;未传入该参数时,默认选择全部单元。显式选择只跳过延期单元的单元级工作;完整配置校验、生成物新鲜度检查及顶层 Hook 仍全部执行。冻结后,`plan.units` 是唯一范围权威,publish、reconcile、verify 和 distribute 不再接受单元选择。
17
17
 
18
18
  0.9.3 引入的 Hook cache v2 继续只复用有完整身份和输入证据的成功 Hook 结果。裸 PATH、PATHEXT、Windows、TTL、损坏记录或 Foundation 观察不可用时,缓存保持失败关闭,Hook 仍按完整路径冷执行;该机制不改变 prepare 的计划、批准和发布权威。
19
19
 
@@ -31,7 +31,7 @@ description: Freeze an immutable release plan with local configuration, document
31
31
 
32
32
  **发布文档新鲜度门**: 配置了 `releaseDocuments` 的单元在 hook 授权门前先执行同一只读规划器:`clean` 继续;`changes` 抛 `RELEASE_DOCS_STALE`,详情列出相对路径、语种、`refreshDigest` 和精确演练/写入参数数组。prepare 只检查、不写工作树。正式 prepare 前先运行只读演练;有变化时向用户展示文件/语种/版本/`refreshDigest`,只有在用户明确授权"本地发布文档写入"后,才执行带 `--write --confirm-refresh <refreshDigest> --ack-local-document-write` 三项绑定的写入,随后运行聚焦校验,要求维护者审阅并提交刷新结果,再重新 prepare。该授权不扩展为 hook、提交、push 或 publish 授权。
33
33
 
34
- **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才把这些 ID 逐个传给 `--unit`。release-skill 不根据失败自动排除单元。选择命中 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须包含收据声明的完整单元闭包;缺少单元时按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
34
+ **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才逐个传入 `--unit`;不得根据失败自动排除单元。选中的单元包含 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须同时包含收据声明的完整单元闭包。缺少单元时,按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
35
35
 
36
36
  ## 正向执行路径
37
37
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.25",
3
+ "version": "0.9.26",
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.25.",
22
+ "Prepare a release plan for version 0.9.26.",
23
23
  "Help me understand the release workflow."
24
24
  ]
25
25
  }
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.25"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.26"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "42145a246d5fd5adff3a1218e94fbfc06df377290431628aa3270e2414b8183e";
14
+ const __bundleSourceDigest = "e423ce89a99a1ec7350c5243cca4a6570684945b0ba83452cc9892789985489d";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -135457,6 +135457,7 @@ function hostEnvironment(host, { kimiHome } = {}) {
135457
135457
  if (host === "workbuddy") {
135458
135458
  env.CODEBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135459
135459
  env.WORKBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135460
+ env.CODEBUDDY_FORCE_LITE_WB_BUNDLE = "1";
135460
135461
  }
135461
135462
  if (host === "kimi" && kimiHome) env.KIMI_CODE_HOME = kimiHome;
135462
135463
  return env;
@@ -37,15 +37,17 @@ description: "Discoverable entry point for release-skill: dependency and environ
37
37
 
38
38
  治理诊断只运行 release-skill 自己的只读检查程序,不运行目标 Skill、业务脚本、构建、hook 或发布动作,也不把 `prepare`、`verify`、`release-finish` 当作静态治理入口。用户要求实际接入或发布时,把已有授权带到对应原业务入口;各入口继续执行原有确认、副作用和状态机合同。
39
39
 
40
- ## 0.9.25 候选边界
40
+ ## 0.9.26 能力与证据边界
41
41
 
42
- 当前 0.9.25 候选精确消费 Foundation 0.22.0 的公开包根 API。0.9.25 仍是源码候选,不能从本说明推断已批准、发布或验证。
42
+ release-skill 0.9.26 精确依赖 Foundation 0.22.0 的公开包根 API。本节说明当前版本的能力范围与证据边界;批准、发布和验证状态以对应计划、批准及执行记录为准,不能由本说明推断。
43
43
 
44
- 冻结前,`prepare` 或新建 `ship` 状态可重复传入 `--unit <id>`;不传则选择全部单元。延期单元不进入计划,也不获得发布状态。完整配置、生成物新鲜度和顶层 Hook 仍覆盖全项目;`publicSourceAuthorityReceipt` 的 coordinator 与 subjects 必须共同选择。冻结后以 `plan.units` 为唯一范围,publish、reconcile、verify、distribute 不再接受 `--unit`。
44
+ 在冻结前,`prepare` 或新建 `ship` 状态时可重复传入 `--unit <id>`;未传入则默认选择全部单元。延期单元不进入发布计划,亦不获得发布状态。完整配置、生成物新鲜度检查及顶层 Hook 仍作用于全项目范围。`publicSourceAuthorityReceipt` 的 coordinator 与全部 subjects 必须共同选择。
45
45
 
46
- 每个单元都要声明 `previousPublicBaseline`:确认没有前序版本才用 `none`,否则使用带 repo/ref/commit 的 `bound`。`none` 不绕过 publish 的唯一性预检。
46
+ 冻结后,发布流程(publish、reconcile、verify、distribute)不再接受 `--unit` 参数,仅以 `plan.units` 为唯一有效范围。
47
47
 
48
- Hook cache v2 只复用绝对路径,或已用真实 cwd 核验的 cwd-relative executable identity;裸 PATH、PATHEXT、Windows 或观察不可用时冷执行,并失败关闭。稳定隔离安装树只在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接只记录、不跟随,声明载荷中的 symlink 失败关闭。
48
+ 每个单元必须声明 `previousPublicBaseline`:只有确认没有前序公开版本时,才使用 `none`;否则必须提供 `bound`,并包含 `repo/ref/commit` 信息。`none` 不绕过 publish 阶段的唯一性预检。
49
+
50
+ Hook 缓存 v2 仅复用绝对路径,或已通过真实 cwd 核验的 cwd-relative 可执行文件身份;若依赖裸 PATH、PATHEXT、Windows 环境或观察不可用,将触发冷执行并失败关闭。稳定隔离安装树仅在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接仅记录,不跟随;声明载荷中出现 symlink 将导致失败关闭。
49
51
 
50
52
  ## 最短路径
51
53
 
@@ -20,7 +20,7 @@ description: Freeze an immutable release plan with local configuration, document
20
20
 
21
21
  运行项目构建/测试 hook,生成公开快照并扫描泄漏,冻结不可变发布计划。prepare 自身不调用发布 adapter,但会执行用户配置的 hook。
22
22
 
23
- 0.9.4 候选允许多发布单元项目在冻结前显式选择本轮范围。`--unit <id>` 可以重复传入;未传时仍选择全部单元。显式选择只跳过延期单元的单元级工作,完整配置校验、生成物新鲜度和顶层 Hook 仍全部执行。计划冻结后以 `plan.units` 为唯一范围权威,publish、reconcile、verify 和 distribute 不接受单元选择。
23
+ 自 0.9.4 起,多发布单元项目可在计划冻结前显式指定本轮发布范围。重复传入 `--unit <id>` 可选择多个单元;未传入该参数时,默认选择全部单元。显式选择只跳过延期单元的单元级工作;完整配置校验、生成物新鲜度检查及顶层 Hook 仍全部执行。冻结后,`plan.units` 是唯一范围权威,publish、reconcile、verify 和 distribute 不再接受单元选择。
24
24
 
25
25
  0.9.3 引入的 Hook cache v2 继续只复用有完整身份和输入证据的成功 Hook 结果。裸 PATH、PATHEXT、Windows、TTL、损坏记录或 Foundation 观察不可用时,缓存保持失败关闭,Hook 仍按完整路径冷执行;该机制不改变 prepare 的计划、批准和发布权威。
26
26
 
@@ -38,7 +38,7 @@ description: Freeze an immutable release plan with local configuration, document
38
38
 
39
39
  **发布文档新鲜度门**: 配置了 `releaseDocuments` 的单元在 hook 授权门前先执行同一只读规划器:`clean` 继续;`changes` 抛 `RELEASE_DOCS_STALE`,详情列出相对路径、语种、`refreshDigest` 和精确演练/写入参数数组。prepare 只检查、不写工作树。正式 prepare 前先运行只读演练;有变化时向用户展示文件/语种/版本/`refreshDigest`,只有在用户明确授权"本地发布文档写入"后,才执行带 `--write --confirm-refresh <refreshDigest> --ack-local-document-write` 三项绑定的写入,随后运行聚焦校验,要求维护者审阅并提交刷新结果,再重新 prepare。该授权不扩展为 hook、提交、push 或 publish 授权。
40
40
 
41
- **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才把这些 ID 逐个传给 `--unit`。release-skill 不根据失败自动排除单元。选择命中 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须包含收据声明的完整单元闭包;缺少单元时按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
41
+ **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才逐个传入 `--unit`;不得根据失败自动排除单元。选中的单元包含 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须同时包含收据声明的完整单元闭包。缺少单元时,按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
42
42
 
43
43
  ## 正向执行路径
44
44
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.25",
3
+ "version": "0.9.26",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.25"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.26"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "42145a246d5fd5adff3a1218e94fbfc06df377290431628aa3270e2414b8183e";
14
+ const __bundleSourceDigest = "e423ce89a99a1ec7350c5243cca4a6570684945b0ba83452cc9892789985489d";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -135457,6 +135457,7 @@ function hostEnvironment(host, { kimiHome } = {}) {
135457
135457
  if (host === "workbuddy") {
135458
135458
  env.CODEBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135459
135459
  env.WORKBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135460
+ env.CODEBUDDY_FORCE_LITE_WB_BUNDLE = "1";
135460
135461
  }
135461
135462
  if (host === "kimi" && kimiHome) env.KIMI_CODE_HOME = kimiHome;
135462
135463
  return env;
@@ -38,15 +38,17 @@ description: "Discoverable entry point for release-skill: dependency and environ
38
38
 
39
39
  治理诊断只运行 release-skill 自己的只读检查程序,不运行目标 Skill、业务脚本、构建、hook 或发布动作,也不把 `prepare`、`verify`、`release-finish` 当作静态治理入口。用户要求实际接入或发布时,把已有授权带到对应原业务入口;各入口继续执行原有确认、副作用和状态机合同。
40
40
 
41
- ## 0.9.25 候选边界
41
+ ## 0.9.26 能力与证据边界
42
42
 
43
- 当前 0.9.25 候选精确消费 Foundation 0.22.0 的公开包根 API。0.9.25 仍是源码候选,不能从本说明推断已批准、发布或验证。
43
+ release-skill 0.9.26 精确依赖 Foundation 0.22.0 的公开包根 API。本节说明当前版本的能力范围与证据边界;批准、发布和验证状态以对应计划、批准及执行记录为准,不能由本说明推断。
44
44
 
45
- 冻结前,`prepare` 或新建 `ship` 状态可重复传入 `--unit <id>`;不传则选择全部单元。延期单元不进入计划,也不获得发布状态。完整配置、生成物新鲜度和顶层 Hook 仍覆盖全项目;`publicSourceAuthorityReceipt` 的 coordinator 与 subjects 必须共同选择。冻结后以 `plan.units` 为唯一范围,publish、reconcile、verify、distribute 不再接受 `--unit`。
45
+ 在冻结前,`prepare` 或新建 `ship` 状态时可重复传入 `--unit <id>`;未传入则默认选择全部单元。延期单元不进入发布计划,亦不获得发布状态。完整配置、生成物新鲜度检查及顶层 Hook 仍作用于全项目范围。`publicSourceAuthorityReceipt` 的 coordinator 与全部 subjects 必须共同选择。
46
46
 
47
- 每个单元都要声明 `previousPublicBaseline`:确认没有前序版本才用 `none`,否则使用带 repo/ref/commit 的 `bound`。`none` 不绕过 publish 的唯一性预检。
47
+ 冻结后,发布流程(publish、reconcile、verify、distribute)不再接受 `--unit` 参数,仅以 `plan.units` 为唯一有效范围。
48
48
 
49
- Hook cache v2 只复用绝对路径,或已用真实 cwd 核验的 cwd-relative executable identity;裸 PATH、PATHEXT、Windows 或观察不可用时冷执行,并失败关闭。稳定隔离安装树只在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接只记录、不跟随,声明载荷中的 symlink 失败关闭。
49
+ 每个单元必须声明 `previousPublicBaseline`:只有确认没有前序公开版本时,才使用 `none`;否则必须提供 `bound`,并包含 `repo/ref/commit` 信息。`none` 不绕过 publish 阶段的唯一性预检。
50
+
51
+ Hook 缓存 v2 仅复用绝对路径,或已通过真实 cwd 核验的 cwd-relative 可执行文件身份;若依赖裸 PATH、PATHEXT、Windows 环境或观察不可用,将触发冷执行并失败关闭。稳定隔离安装树仅在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接仅记录,不跟随;声明载荷中出现 symlink 将导致失败关闭。
50
52
 
51
53
  ## 最短路径
52
54
 
@@ -21,7 +21,7 @@ description: Freeze an immutable release plan with local configuration, document
21
21
 
22
22
  运行项目构建/测试 hook,生成公开快照并扫描泄漏,冻结不可变发布计划。prepare 自身不调用发布 adapter,但会执行用户配置的 hook。
23
23
 
24
- 0.9.4 候选允许多发布单元项目在冻结前显式选择本轮范围。`--unit <id>` 可以重复传入;未传时仍选择全部单元。显式选择只跳过延期单元的单元级工作,完整配置校验、生成物新鲜度和顶层 Hook 仍全部执行。计划冻结后以 `plan.units` 为唯一范围权威,publish、reconcile、verify 和 distribute 不接受单元选择。
24
+ 自 0.9.4 起,多发布单元项目可在计划冻结前显式指定本轮发布范围。重复传入 `--unit <id>` 可选择多个单元;未传入该参数时,默认选择全部单元。显式选择只跳过延期单元的单元级工作;完整配置校验、生成物新鲜度检查及顶层 Hook 仍全部执行。冻结后,`plan.units` 是唯一范围权威,publish、reconcile、verify 和 distribute 不再接受单元选择。
25
25
 
26
26
  0.9.3 引入的 Hook cache v2 继续只复用有完整身份和输入证据的成功 Hook 结果。裸 PATH、PATHEXT、Windows、TTL、损坏记录或 Foundation 观察不可用时,缓存保持失败关闭,Hook 仍按完整路径冷执行;该机制不改变 prepare 的计划、批准和发布权威。
27
27
 
@@ -39,7 +39,7 @@ description: Freeze an immutable release plan with local configuration, document
39
39
 
40
40
  **发布文档新鲜度门**: 配置了 `releaseDocuments` 的单元在 hook 授权门前先执行同一只读规划器:`clean` 继续;`changes` 抛 `RELEASE_DOCS_STALE`,详情列出相对路径、语种、`refreshDigest` 和精确演练/写入参数数组。prepare 只检查、不写工作树。正式 prepare 前先运行只读演练;有变化时向用户展示文件/语种/版本/`refreshDigest`,只有在用户明确授权"本地发布文档写入"后,才执行带 `--write --confirm-refresh <refreshDigest> --ack-local-document-write` 三项绑定的写入,随后运行聚焦校验,要求维护者审阅并提交刷新结果,再重新 prepare。该授权不扩展为 hook、提交、push 或 publish 授权。
41
41
 
42
- **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才把这些 ID 逐个传给 `--unit`。release-skill 不根据失败自动排除单元。选择命中 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须包含收据声明的完整单元闭包;缺少单元时按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
42
+ **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才逐个传入 `--unit`;不得根据失败自动排除单元。选中的单元包含 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须同时包含收据声明的完整单元闭包。缺少单元时,按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
43
43
 
44
44
  ## 正向执行路径
45
45
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.25",
3
+ "version": "0.9.26",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.25"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.26"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "42145a246d5fd5adff3a1218e94fbfc06df377290431628aa3270e2414b8183e";
14
+ const __bundleSourceDigest = "e423ce89a99a1ec7350c5243cca4a6570684945b0ba83452cc9892789985489d";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -135457,6 +135457,7 @@ function hostEnvironment(host, { kimiHome } = {}) {
135457
135457
  if (host === "workbuddy") {
135458
135458
  env.CODEBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135459
135459
  env.WORKBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135460
+ env.CODEBUDDY_FORCE_LITE_WB_BUNDLE = "1";
135460
135461
  }
135461
135462
  if (host === "kimi" && kimiHome) env.KIMI_CODE_HOME = kimiHome;
135462
135463
  return env;
@@ -37,15 +37,17 @@ description: "Discoverable entry point for release-skill: dependency and environ
37
37
 
38
38
  治理诊断只运行 release-skill 自己的只读检查程序,不运行目标 Skill、业务脚本、构建、hook 或发布动作,也不把 `prepare`、`verify`、`release-finish` 当作静态治理入口。用户要求实际接入或发布时,把已有授权带到对应原业务入口;各入口继续执行原有确认、副作用和状态机合同。
39
39
 
40
- ## 0.9.25 候选边界
40
+ ## 0.9.26 能力与证据边界
41
41
 
42
- 当前 0.9.25 候选精确消费 Foundation 0.22.0 的公开包根 API。0.9.25 仍是源码候选,不能从本说明推断已批准、发布或验证。
42
+ release-skill 0.9.26 精确依赖 Foundation 0.22.0 的公开包根 API。本节说明当前版本的能力范围与证据边界;批准、发布和验证状态以对应计划、批准及执行记录为准,不能由本说明推断。
43
43
 
44
- 冻结前,`prepare` 或新建 `ship` 状态可重复传入 `--unit <id>`;不传则选择全部单元。延期单元不进入计划,也不获得发布状态。完整配置、生成物新鲜度和顶层 Hook 仍覆盖全项目;`publicSourceAuthorityReceipt` 的 coordinator 与 subjects 必须共同选择。冻结后以 `plan.units` 为唯一范围,publish、reconcile、verify、distribute 不再接受 `--unit`。
44
+ 在冻结前,`prepare` 或新建 `ship` 状态时可重复传入 `--unit <id>`;未传入则默认选择全部单元。延期单元不进入发布计划,亦不获得发布状态。完整配置、生成物新鲜度检查及顶层 Hook 仍作用于全项目范围。`publicSourceAuthorityReceipt` 的 coordinator 与全部 subjects 必须共同选择。
45
45
 
46
- 每个单元都要声明 `previousPublicBaseline`:确认没有前序版本才用 `none`,否则使用带 repo/ref/commit 的 `bound`。`none` 不绕过 publish 的唯一性预检。
46
+ 冻结后,发布流程(publish、reconcile、verify、distribute)不再接受 `--unit` 参数,仅以 `plan.units` 为唯一有效范围。
47
47
 
48
- Hook cache v2 只复用绝对路径,或已用真实 cwd 核验的 cwd-relative executable identity;裸 PATH、PATHEXT、Windows 或观察不可用时冷执行,并失败关闭。稳定隔离安装树只在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接只记录、不跟随,声明载荷中的 symlink 失败关闭。
48
+ 每个单元必须声明 `previousPublicBaseline`:只有确认没有前序公开版本时,才使用 `none`;否则必须提供 `bound`,并包含 `repo/ref/commit` 信息。`none` 不绕过 publish 阶段的唯一性预检。
49
+
50
+ Hook 缓存 v2 仅复用绝对路径,或已通过真实 cwd 核验的 cwd-relative 可执行文件身份;若依赖裸 PATH、PATHEXT、Windows 环境或观察不可用,将触发冷执行并失败关闭。稳定隔离安装树仅在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接仅记录,不跟随;声明载荷中出现 symlink 将导致失败关闭。
49
51
 
50
52
  ## 最短路径
51
53
 
@@ -20,7 +20,7 @@ description: Freeze an immutable release plan with local configuration, document
20
20
 
21
21
  运行项目构建/测试 hook,生成公开快照并扫描泄漏,冻结不可变发布计划。prepare 自身不调用发布 adapter,但会执行用户配置的 hook。
22
22
 
23
- 0.9.4 候选允许多发布单元项目在冻结前显式选择本轮范围。`--unit <id>` 可以重复传入;未传时仍选择全部单元。显式选择只跳过延期单元的单元级工作,完整配置校验、生成物新鲜度和顶层 Hook 仍全部执行。计划冻结后以 `plan.units` 为唯一范围权威,publish、reconcile、verify 和 distribute 不接受单元选择。
23
+ 自 0.9.4 起,多发布单元项目可在计划冻结前显式指定本轮发布范围。重复传入 `--unit <id>` 可选择多个单元;未传入该参数时,默认选择全部单元。显式选择只跳过延期单元的单元级工作;完整配置校验、生成物新鲜度检查及顶层 Hook 仍全部执行。冻结后,`plan.units` 是唯一范围权威,publish、reconcile、verify 和 distribute 不再接受单元选择。
24
24
 
25
25
  0.9.3 引入的 Hook cache v2 继续只复用有完整身份和输入证据的成功 Hook 结果。裸 PATH、PATHEXT、Windows、TTL、损坏记录或 Foundation 观察不可用时,缓存保持失败关闭,Hook 仍按完整路径冷执行;该机制不改变 prepare 的计划、批准和发布权威。
26
26
 
@@ -38,7 +38,7 @@ description: Freeze an immutable release plan with local configuration, document
38
38
 
39
39
  **发布文档新鲜度门**: 配置了 `releaseDocuments` 的单元在 hook 授权门前先执行同一只读规划器:`clean` 继续;`changes` 抛 `RELEASE_DOCS_STALE`,详情列出相对路径、语种、`refreshDigest` 和精确演练/写入参数数组。prepare 只检查、不写工作树。正式 prepare 前先运行只读演练;有变化时向用户展示文件/语种/版本/`refreshDigest`,只有在用户明确授权"本地发布文档写入"后,才执行带 `--write --confirm-refresh <refreshDigest> --ack-local-document-write` 三项绑定的写入,随后运行聚焦校验,要求维护者审阅并提交刷新结果,再重新 prepare。该授权不扩展为 hook、提交、push 或 publish 授权。
40
40
 
41
- **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才把这些 ID 逐个传给 `--unit`。release-skill 不根据失败自动排除单元。选择命中 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须包含收据声明的完整单元闭包;缺少单元时按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
41
+ **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才逐个传入 `--unit`;不得根据失败自动排除单元。选中的单元包含 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须同时包含收据声明的完整单元闭包。缺少单元时,按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
42
42
 
43
43
  ## 正向执行路径
44
44
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.25",
3
+ "version": "0.9.26",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.25"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.26"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "42145a246d5fd5adff3a1218e94fbfc06df377290431628aa3270e2414b8183e";
14
+ const __bundleSourceDigest = "e423ce89a99a1ec7350c5243cca4a6570684945b0ba83452cc9892789985489d";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -135457,6 +135457,7 @@ function hostEnvironment(host, { kimiHome } = {}) {
135457
135457
  if (host === "workbuddy") {
135458
135458
  env.CODEBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135459
135459
  env.WORKBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135460
+ env.CODEBUDDY_FORCE_LITE_WB_BUNDLE = "1";
135460
135461
  }
135461
135462
  if (host === "kimi" && kimiHome) env.KIMI_CODE_HOME = kimiHome;
135462
135463
  return env;
@@ -37,15 +37,17 @@ description: "Discoverable entry point for release-skill: dependency and environ
37
37
 
38
38
  治理诊断只运行 release-skill 自己的只读检查程序,不运行目标 Skill、业务脚本、构建、hook 或发布动作,也不把 `prepare`、`verify`、`release-finish` 当作静态治理入口。用户要求实际接入或发布时,把已有授权带到对应原业务入口;各入口继续执行原有确认、副作用和状态机合同。
39
39
 
40
- ## 0.9.25 候选边界
40
+ ## 0.9.26 能力与证据边界
41
41
 
42
- 当前 0.9.25 候选精确消费 Foundation 0.22.0 的公开包根 API。0.9.25 仍是源码候选,不能从本说明推断已批准、发布或验证。
42
+ release-skill 0.9.26 精确依赖 Foundation 0.22.0 的公开包根 API。本节说明当前版本的能力范围与证据边界;批准、发布和验证状态以对应计划、批准及执行记录为准,不能由本说明推断。
43
43
 
44
- 冻结前,`prepare` 或新建 `ship` 状态可重复传入 `--unit <id>`;不传则选择全部单元。延期单元不进入计划,也不获得发布状态。完整配置、生成物新鲜度和顶层 Hook 仍覆盖全项目;`publicSourceAuthorityReceipt` 的 coordinator 与 subjects 必须共同选择。冻结后以 `plan.units` 为唯一范围,publish、reconcile、verify、distribute 不再接受 `--unit`。
44
+ 在冻结前,`prepare` 或新建 `ship` 状态时可重复传入 `--unit <id>`;未传入则默认选择全部单元。延期单元不进入发布计划,亦不获得发布状态。完整配置、生成物新鲜度检查及顶层 Hook 仍作用于全项目范围。`publicSourceAuthorityReceipt` 的 coordinator 与全部 subjects 必须共同选择。
45
45
 
46
- 每个单元都要声明 `previousPublicBaseline`:确认没有前序版本才用 `none`,否则使用带 repo/ref/commit 的 `bound`。`none` 不绕过 publish 的唯一性预检。
46
+ 冻结后,发布流程(publish、reconcile、verify、distribute)不再接受 `--unit` 参数,仅以 `plan.units` 为唯一有效范围。
47
47
 
48
- Hook cache v2 只复用绝对路径,或已用真实 cwd 核验的 cwd-relative executable identity;裸 PATH、PATHEXT、Windows 或观察不可用时冷执行,并失败关闭。稳定隔离安装树只在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接只记录、不跟随,声明载荷中的 symlink 失败关闭。
48
+ 每个单元必须声明 `previousPublicBaseline`:只有确认没有前序公开版本时,才使用 `none`;否则必须提供 `bound`,并包含 `repo/ref/commit` 信息。`none` 不绕过 publish 阶段的唯一性预检。
49
+
50
+ Hook 缓存 v2 仅复用绝对路径,或已通过真实 cwd 核验的 cwd-relative 可执行文件身份;若依赖裸 PATH、PATHEXT、Windows 环境或观察不可用,将触发冷执行并失败关闭。稳定隔离安装树仅在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接仅记录,不跟随;声明载荷中出现 symlink 将导致失败关闭。
49
51
 
50
52
  ## 最短路径
51
53
 
@@ -20,7 +20,7 @@ description: Freeze an immutable release plan with local configuration, document
20
20
 
21
21
  运行项目构建/测试 hook,生成公开快照并扫描泄漏,冻结不可变发布计划。prepare 自身不调用发布 adapter,但会执行用户配置的 hook。
22
22
 
23
- 0.9.4 候选允许多发布单元项目在冻结前显式选择本轮范围。`--unit <id>` 可以重复传入;未传时仍选择全部单元。显式选择只跳过延期单元的单元级工作,完整配置校验、生成物新鲜度和顶层 Hook 仍全部执行。计划冻结后以 `plan.units` 为唯一范围权威,publish、reconcile、verify 和 distribute 不接受单元选择。
23
+ 自 0.9.4 起,多发布单元项目可在计划冻结前显式指定本轮发布范围。重复传入 `--unit <id>` 可选择多个单元;未传入该参数时,默认选择全部单元。显式选择只跳过延期单元的单元级工作;完整配置校验、生成物新鲜度检查及顶层 Hook 仍全部执行。冻结后,`plan.units` 是唯一范围权威,publish、reconcile、verify 和 distribute 不再接受单元选择。
24
24
 
25
25
  0.9.3 引入的 Hook cache v2 继续只复用有完整身份和输入证据的成功 Hook 结果。裸 PATH、PATHEXT、Windows、TTL、损坏记录或 Foundation 观察不可用时,缓存保持失败关闭,Hook 仍按完整路径冷执行;该机制不改变 prepare 的计划、批准和发布权威。
26
26
 
@@ -38,7 +38,7 @@ description: Freeze an immutable release plan with local configuration, document
38
38
 
39
39
  **发布文档新鲜度门**: 配置了 `releaseDocuments` 的单元在 hook 授权门前先执行同一只读规划器:`clean` 继续;`changes` 抛 `RELEASE_DOCS_STALE`,详情列出相对路径、语种、`refreshDigest` 和精确演练/写入参数数组。prepare 只检查、不写工作树。正式 prepare 前先运行只读演练;有变化时向用户展示文件/语种/版本/`refreshDigest`,只有在用户明确授权"本地发布文档写入"后,才执行带 `--write --confirm-refresh <refreshDigest> --ack-local-document-write` 三项绑定的写入,随后运行聚焦校验,要求维护者审阅并提交刷新结果,再重新 prepare。该授权不扩展为 hook、提交、push 或 publish 授权。
40
40
 
41
- **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才把这些 ID 逐个传给 `--unit`。release-skill 不根据失败自动排除单元。选择命中 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须包含收据声明的完整单元闭包;缺少单元时按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
41
+ **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才逐个传入 `--unit`;不得根据失败自动排除单元。选中的单元包含 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须同时包含收据声明的完整单元闭包。缺少单元时,按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
42
42
 
43
43
  ## 正向执行路径
44
44
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.25",
3
+ "version": "0.9.26",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.25"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.26"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "42145a246d5fd5adff3a1218e94fbfc06df377290431628aa3270e2414b8183e";
14
+ const __bundleSourceDigest = "e423ce89a99a1ec7350c5243cca4a6570684945b0ba83452cc9892789985489d";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -135457,6 +135457,7 @@ function hostEnvironment(host, { kimiHome } = {}) {
135457
135457
  if (host === "workbuddy") {
135458
135458
  env.CODEBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135459
135459
  env.WORKBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135460
+ env.CODEBUDDY_FORCE_LITE_WB_BUNDLE = "1";
135460
135461
  }
135461
135462
  if (host === "kimi" && kimiHome) env.KIMI_CODE_HOME = kimiHome;
135462
135463
  return env;
@@ -29,15 +29,17 @@ description: "Discoverable entry point for release-skill: dependency and environ
29
29
 
30
30
  治理诊断只运行 release-skill 自己的只读检查程序,不运行目标 Skill、业务脚本、构建、hook 或发布动作,也不把 `prepare`、`verify`、`release-finish` 当作静态治理入口。用户要求实际接入或发布时,把已有授权带到对应原业务入口;各入口继续执行原有确认、副作用和状态机合同。
31
31
 
32
- ## 0.9.25 候选边界
32
+ ## 0.9.26 能力与证据边界
33
33
 
34
- 当前 0.9.25 候选精确消费 Foundation 0.22.0 的公开包根 API。0.9.25 仍是源码候选,不能从本说明推断已批准、发布或验证。
34
+ release-skill 0.9.26 精确依赖 Foundation 0.22.0 的公开包根 API。本节说明当前版本的能力范围与证据边界;批准、发布和验证状态以对应计划、批准及执行记录为准,不能由本说明推断。
35
35
 
36
- 冻结前,`prepare` 或新建 `ship` 状态可重复传入 `--unit <id>`;不传则选择全部单元。延期单元不进入计划,也不获得发布状态。完整配置、生成物新鲜度和顶层 Hook 仍覆盖全项目;`publicSourceAuthorityReceipt` 的 coordinator 与 subjects 必须共同选择。冻结后以 `plan.units` 为唯一范围,publish、reconcile、verify、distribute 不再接受 `--unit`。
36
+ 在冻结前,`prepare` 或新建 `ship` 状态时可重复传入 `--unit <id>`;未传入则默认选择全部单元。延期单元不进入发布计划,亦不获得发布状态。完整配置、生成物新鲜度检查及顶层 Hook 仍作用于全项目范围。`publicSourceAuthorityReceipt` 的 coordinator 与全部 subjects 必须共同选择。
37
37
 
38
- 每个单元都要声明 `previousPublicBaseline`:确认没有前序版本才用 `none`,否则使用带 repo/ref/commit 的 `bound`。`none` 不绕过 publish 的唯一性预检。
38
+ 冻结后,发布流程(publish、reconcile、verify、distribute)不再接受 `--unit` 参数,仅以 `plan.units` 为唯一有效范围。
39
39
 
40
- Hook cache v2 只复用绝对路径,或已用真实 cwd 核验的 cwd-relative executable identity;裸 PATH、PATHEXT、Windows 或观察不可用时冷执行,并失败关闭。稳定隔离安装树只在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接只记录、不跟随,声明载荷中的 symlink 失败关闭。
40
+ 每个单元必须声明 `previousPublicBaseline`:只有确认没有前序公开版本时,才使用 `none`;否则必须提供 `bound`,并包含 `repo/ref/commit` 信息。`none` 不绕过 publish 阶段的唯一性预检。
41
+
42
+ Hook 缓存 v2 仅复用绝对路径,或已通过真实 cwd 核验的 cwd-relative 可执行文件身份;若依赖裸 PATH、PATHEXT、Windows 环境或观察不可用,将触发冷执行并失败关闭。稳定隔离安装树仅在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接仅记录,不跟随;声明载荷中出现 symlink 将导致失败关闭。
41
43
 
42
44
  ## 最短路径
43
45
 
@@ -13,7 +13,7 @@ description: Freeze an immutable release plan with local configuration, document
13
13
 
14
14
  运行项目构建/测试 hook,生成公开快照并扫描泄漏,冻结不可变发布计划。prepare 自身不调用发布 adapter,但会执行用户配置的 hook。
15
15
 
16
- 0.9.4 候选允许多发布单元项目在冻结前显式选择本轮范围。`--unit <id>` 可以重复传入;未传时仍选择全部单元。显式选择只跳过延期单元的单元级工作,完整配置校验、生成物新鲜度和顶层 Hook 仍全部执行。计划冻结后以 `plan.units` 为唯一范围权威,publish、reconcile、verify 和 distribute 不接受单元选择。
16
+ 自 0.9.4 起,多发布单元项目可在计划冻结前显式指定本轮发布范围。重复传入 `--unit <id>` 可选择多个单元;未传入该参数时,默认选择全部单元。显式选择只跳过延期单元的单元级工作;完整配置校验、生成物新鲜度检查及顶层 Hook 仍全部执行。冻结后,`plan.units` 是唯一范围权威,publish、reconcile、verify 和 distribute 不再接受单元选择。
17
17
 
18
18
  0.9.3 引入的 Hook cache v2 继续只复用有完整身份和输入证据的成功 Hook 结果。裸 PATH、PATHEXT、Windows、TTL、损坏记录或 Foundation 观察不可用时,缓存保持失败关闭,Hook 仍按完整路径冷执行;该机制不改变 prepare 的计划、批准和发布权威。
19
19
 
@@ -31,7 +31,7 @@ description: Freeze an immutable release plan with local configuration, document
31
31
 
32
32
  **发布文档新鲜度门**: 配置了 `releaseDocuments` 的单元在 hook 授权门前先执行同一只读规划器:`clean` 继续;`changes` 抛 `RELEASE_DOCS_STALE`,详情列出相对路径、语种、`refreshDigest` 和精确演练/写入参数数组。prepare 只检查、不写工作树。正式 prepare 前先运行只读演练;有变化时向用户展示文件/语种/版本/`refreshDigest`,只有在用户明确授权"本地发布文档写入"后,才执行带 `--write --confirm-refresh <refreshDigest> --ack-local-document-write` 三项绑定的写入,随后运行聚焦校验,要求维护者审阅并提交刷新结果,再重新 prepare。该授权不扩展为 hook、提交、push 或 publish 授权。
33
33
 
34
- **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才把这些 ID 逐个传给 `--unit`。release-skill 不根据失败自动排除单元。选择命中 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须包含收据声明的完整单元闭包;缺少单元时按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
34
+ **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才逐个传入 `--unit`;不得根据失败自动排除单元。选中的单元包含 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须同时包含收据声明的完整单元闭包。缺少单元时,按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
35
35
 
36
36
  ## 正向执行路径
37
37
 
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.25"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.9.26"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "42145a246d5fd5adff3a1218e94fbfc06df377290431628aa3270e2414b8183e";
14
+ const __bundleSourceDigest = "e423ce89a99a1ec7350c5243cca4a6570684945b0ba83452cc9892789985489d";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -135457,6 +135457,7 @@ function hostEnvironment(host, { kimiHome } = {}) {
135457
135457
  if (host === "workbuddy") {
135458
135458
  env.CODEBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135459
135459
  env.WORKBUDDY_CONFIG_DIR = join29(env.HOME, ".workbuddy");
135460
+ env.CODEBUDDY_FORCE_LITE_WB_BUNDLE = "1";
135460
135461
  }
135461
135462
  if (host === "kimi" && kimiHome) env.KIMI_CODE_HOME = kimiHome;
135462
135463
  return env;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.25",
3
+ "version": "0.9.26",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -2,11 +2,11 @@
2
2
  "schemaVersion": "1.0.0",
3
3
  "platformId": "release-skill",
4
4
  "platformName": "release-skill Plugin Platform",
5
- "version": "0.9.25",
5
+ "version": "0.9.26",
6
6
  "logicalRoot": "skills-src/",
7
- "logicalRootDigest": "7b62f9ded9aea774298ad86a781d58ad83f4092f3c3220b4a75dfe11ad19f809",
8
- "projectionDigest": "bb92d4a3f57842000aa404a0698c5e38c111f05408027491e0904912af81d716",
9
- "projectionId": "release-skill:platform:0.9.25",
7
+ "logicalRootDigest": "b32605fb6cf0bac83c6313cdfc8216073a1a3a11f83bb4e4c59016a0b93b5a43",
8
+ "projectionDigest": "544fb531a089493618b276dde92ca98c1ae3bf91bd1c5101a0f2d2b344133b56",
9
+ "projectionId": "release-skill:platform:0.9.26",
10
10
  "manifestRequired": true,
11
11
  "projectionSources": {
12
12
  "skills-src-root": {
@@ -29,15 +29,17 @@ description: "Discoverable entry point for release-skill: dependency and environ
29
29
 
30
30
  治理诊断只运行 release-skill 自己的只读检查程序,不运行目标 Skill、业务脚本、构建、hook 或发布动作,也不把 `prepare`、`verify`、`release-finish` 当作静态治理入口。用户要求实际接入或发布时,把已有授权带到对应原业务入口;各入口继续执行原有确认、副作用和状态机合同。
31
31
 
32
- ## 0.9.25 候选边界
32
+ ## 0.9.26 能力与证据边界
33
33
 
34
- 当前 0.9.25 候选精确消费 Foundation 0.22.0 的公开包根 API。0.9.25 仍是源码候选,不能从本说明推断已批准、发布或验证。
34
+ release-skill 0.9.26 精确依赖 Foundation 0.22.0 的公开包根 API。本节说明当前版本的能力范围与证据边界;批准、发布和验证状态以对应计划、批准及执行记录为准,不能由本说明推断。
35
35
 
36
- 冻结前,`prepare` 或新建 `ship` 状态可重复传入 `--unit <id>`;不传则选择全部单元。延期单元不进入计划,也不获得发布状态。完整配置、生成物新鲜度和顶层 Hook 仍覆盖全项目;`publicSourceAuthorityReceipt` 的 coordinator 与 subjects 必须共同选择。冻结后以 `plan.units` 为唯一范围,publish、reconcile、verify、distribute 不再接受 `--unit`。
36
+ 在冻结前,`prepare` 或新建 `ship` 状态时可重复传入 `--unit <id>`;未传入则默认选择全部单元。延期单元不进入发布计划,亦不获得发布状态。完整配置、生成物新鲜度检查及顶层 Hook 仍作用于全项目范围。`publicSourceAuthorityReceipt` 的 coordinator 与全部 subjects 必须共同选择。
37
37
 
38
- 每个单元都要声明 `previousPublicBaseline`:确认没有前序版本才用 `none`,否则使用带 repo/ref/commit 的 `bound`。`none` 不绕过 publish 的唯一性预检。
38
+ 冻结后,发布流程(publish、reconcile、verify、distribute)不再接受 `--unit` 参数,仅以 `plan.units` 为唯一有效范围。
39
39
 
40
- Hook cache v2 只复用绝对路径,或已用真实 cwd 核验的 cwd-relative executable identity;裸 PATH、PATHEXT、Windows 或观察不可用时冷执行,并失败关闭。稳定隔离安装树只在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接只记录、不跟随,声明载荷中的 symlink 失败关闭。
40
+ 每个单元必须声明 `previousPublicBaseline`:只有确认没有前序公开版本时,才使用 `none`;否则必须提供 `bound`,并包含 `repo/ref/commit` 信息。`none` 不绕过 publish 阶段的唯一性预检。
41
+
42
+ Hook 缓存 v2 仅复用绝对路径,或已通过真实 cwd 核验的 cwd-relative 可执行文件身份;若依赖裸 PATH、PATHEXT、Windows 环境或观察不可用,将触发冷执行并失败关闭。稳定隔离安装树仅在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接仅记录,不跟随;声明载荷中出现 symlink 将导致失败关闭。
41
43
 
42
44
  ## 最短路径
43
45
 
@@ -13,7 +13,7 @@ description: Freeze an immutable release plan with local configuration, document
13
13
 
14
14
  运行项目构建/测试 hook,生成公开快照并扫描泄漏,冻结不可变发布计划。prepare 自身不调用发布 adapter,但会执行用户配置的 hook。
15
15
 
16
- 0.9.4 候选允许多发布单元项目在冻结前显式选择本轮范围。`--unit <id>` 可以重复传入;未传时仍选择全部单元。显式选择只跳过延期单元的单元级工作,完整配置校验、生成物新鲜度和顶层 Hook 仍全部执行。计划冻结后以 `plan.units` 为唯一范围权威,publish、reconcile、verify 和 distribute 不接受单元选择。
16
+ 自 0.9.4 起,多发布单元项目可在计划冻结前显式指定本轮发布范围。重复传入 `--unit <id>` 可选择多个单元;未传入该参数时,默认选择全部单元。显式选择只跳过延期单元的单元级工作;完整配置校验、生成物新鲜度检查及顶层 Hook 仍全部执行。冻结后,`plan.units` 是唯一范围权威,publish、reconcile、verify 和 distribute 不再接受单元选择。
17
17
 
18
18
  0.9.3 引入的 Hook cache v2 继续只复用有完整身份和输入证据的成功 Hook 结果。裸 PATH、PATHEXT、Windows、TTL、损坏记录或 Foundation 观察不可用时,缓存保持失败关闭,Hook 仍按完整路径冷执行;该机制不改变 prepare 的计划、批准和发布权威。
19
19
 
@@ -31,7 +31,7 @@ description: Freeze an immutable release plan with local configuration, document
31
31
 
32
32
  **发布文档新鲜度门**: 配置了 `releaseDocuments` 的单元在 hook 授权门前先执行同一只读规划器:`clean` 继续;`changes` 抛 `RELEASE_DOCS_STALE`,详情列出相对路径、语种、`refreshDigest` 和精确演练/写入参数数组。prepare 只检查、不写工作树。正式 prepare 前先运行只读演练;有变化时向用户展示文件/语种/版本/`refreshDigest`,只有在用户明确授权"本地发布文档写入"后,才执行带 `--write --confirm-refresh <refreshDigest> --ack-local-document-write` 三项绑定的写入,随后运行聚焦校验,要求维护者审阅并提交刷新结果,再重新 prepare。该授权不扩展为 hook、提交、push 或 publish 授权。
33
33
 
34
- **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才把这些 ID 逐个传给 `--unit`。release-skill 不根据失败自动排除单元。选择命中 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须包含收据声明的完整单元闭包;缺少单元时按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
34
+ **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才逐个传入 `--unit`;不得根据失败自动排除单元。选中的单元包含 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须同时包含收据声明的完整单元闭包。缺少单元时,按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
35
35
 
36
36
  ## 正向执行路径
37
37
 
@@ -29,15 +29,17 @@ description: "Discoverable entry point for release-skill: dependency and environ
29
29
 
30
30
  治理诊断只运行 release-skill 自己的只读检查程序,不运行目标 Skill、业务脚本、构建、hook 或发布动作,也不把 `prepare`、`verify`、`release-finish` 当作静态治理入口。用户要求实际接入或发布时,把已有授权带到对应原业务入口;各入口继续执行原有确认、副作用和状态机合同。
31
31
 
32
- ## 0.9.25 候选边界
32
+ ## 0.9.26 能力与证据边界
33
33
 
34
- 当前 0.9.25 候选精确消费 Foundation 0.22.0 的公开包根 API。0.9.25 仍是源码候选,不能从本说明推断已批准、发布或验证。
34
+ release-skill 0.9.26 精确依赖 Foundation 0.22.0 的公开包根 API。本节说明当前版本的能力范围与证据边界;批准、发布和验证状态以对应计划、批准及执行记录为准,不能由本说明推断。
35
35
 
36
- 冻结前,`prepare` 或新建 `ship` 状态可重复传入 `--unit <id>`;不传则选择全部单元。延期单元不进入计划,也不获得发布状态。完整配置、生成物新鲜度和顶层 Hook 仍覆盖全项目;`publicSourceAuthorityReceipt` 的 coordinator 与 subjects 必须共同选择。冻结后以 `plan.units` 为唯一范围,publish、reconcile、verify、distribute 不再接受 `--unit`。
36
+ 在冻结前,`prepare` 或新建 `ship` 状态时可重复传入 `--unit <id>`;未传入则默认选择全部单元。延期单元不进入发布计划,亦不获得发布状态。完整配置、生成物新鲜度检查及顶层 Hook 仍作用于全项目范围。`publicSourceAuthorityReceipt` 的 coordinator 与全部 subjects 必须共同选择。
37
37
 
38
- 每个单元都要声明 `previousPublicBaseline`:确认没有前序版本才用 `none`,否则使用带 repo/ref/commit 的 `bound`。`none` 不绕过 publish 的唯一性预检。
38
+ 冻结后,发布流程(publish、reconcile、verify、distribute)不再接受 `--unit` 参数,仅以 `plan.units` 为唯一有效范围。
39
39
 
40
- Hook cache v2 只复用绝对路径,或已用真实 cwd 核验的 cwd-relative executable identity;裸 PATH、PATHEXT、Windows 或观察不可用时冷执行,并失败关闭。稳定隔离安装树只在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接只记录、不跟随,声明载荷中的 symlink 失败关闭。
40
+ 每个单元必须声明 `previousPublicBaseline`:只有确认没有前序公开版本时,才使用 `none`;否则必须提供 `bound`,并包含 `repo/ref/commit` 信息。`none` 不绕过 publish 阶段的唯一性预检。
41
+
42
+ Hook 缓存 v2 仅复用绝对路径,或已通过真实 cwd 核验的 cwd-relative 可执行文件身份;若依赖裸 PATH、PATHEXT、Windows 环境或观察不可用,将触发冷执行并失败关闭。稳定隔离安装树仅在宿主命令退出、目录隔离且扫描期间无并发写入时记录;附加链接仅记录,不跟随;声明载荷中出现 symlink 将导致失败关闭。
41
43
 
42
44
  ## 最短路径
43
45
 
@@ -13,7 +13,7 @@ description: Freeze an immutable release plan with local configuration, document
13
13
 
14
14
  运行项目构建/测试 hook,生成公开快照并扫描泄漏,冻结不可变发布计划。prepare 自身不调用发布 adapter,但会执行用户配置的 hook。
15
15
 
16
- 0.9.4 候选允许多发布单元项目在冻结前显式选择本轮范围。`--unit <id>` 可以重复传入;未传时仍选择全部单元。显式选择只跳过延期单元的单元级工作,完整配置校验、生成物新鲜度和顶层 Hook 仍全部执行。计划冻结后以 `plan.units` 为唯一范围权威,publish、reconcile、verify 和 distribute 不接受单元选择。
16
+ 自 0.9.4 起,多发布单元项目可在计划冻结前显式指定本轮发布范围。重复传入 `--unit <id>` 可选择多个单元;未传入该参数时,默认选择全部单元。显式选择只跳过延期单元的单元级工作;完整配置校验、生成物新鲜度检查及顶层 Hook 仍全部执行。冻结后,`plan.units` 是唯一范围权威,publish、reconcile、verify 和 distribute 不再接受单元选择。
17
17
 
18
18
  0.9.3 引入的 Hook cache v2 继续只复用有完整身份和输入证据的成功 Hook 结果。裸 PATH、PATHEXT、Windows、TTL、损坏记录或 Foundation 观察不可用时,缓存保持失败关闭,Hook 仍按完整路径冷执行;该机制不改变 prepare 的计划、批准和发布权威。
19
19
 
@@ -31,7 +31,7 @@ description: Freeze an immutable release plan with local configuration, document
31
31
 
32
32
  **发布文档新鲜度门**: 配置了 `releaseDocuments` 的单元在 hook 授权门前先执行同一只读规划器:`clean` 继续;`changes` 抛 `RELEASE_DOCS_STALE`,详情列出相对路径、语种、`refreshDigest` 和精确演练/写入参数数组。prepare 只检查、不写工作树。正式 prepare 前先运行只读演练;有变化时向用户展示文件/语种/版本/`refreshDigest`,只有在用户明确授权"本地发布文档写入"后,才执行带 `--write --confirm-refresh <refreshDigest> --ack-local-document-write` 三项绑定的写入,随后运行聚焦校验,要求维护者审阅并提交刷新结果,再重新 prepare。该授权不扩展为 hook、提交、push 或 publish 授权。
33
33
 
34
- **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才把这些 ID 逐个传给 `--unit`。release-skill 不根据失败自动排除单元。选择命中 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须包含收据声明的完整单元闭包;缺少单元时按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
34
+ **显式发布范围**: 只有用户已经指出本轮要发布哪些单元时,才逐个传入 `--unit`;不得根据失败自动排除单元。选中的单元包含 `publicSourceAuthorityReceipt` 的 coordinator 或 subject 时,必须同时包含收据声明的完整单元闭包。缺少单元时,按命令返回的精确 argv 重新选择,不自动扩选。成功后展示 `releaseScope.selectedUnitIds`、`releaseScope.deferredUnitIds` 和批准摘要。延期仅表示没有进入本轮计划,不表示通过或失败。
35
35
 
36
36
  ## 正向执行路径
37
37
 
@@ -601,6 +601,7 @@ function hostEnvironment(host, { kimiHome } = {}) {
601
601
  if (host === 'workbuddy') {
602
602
  env.CODEBUDDY_CONFIG_DIR = join(env.HOME, '.workbuddy');
603
603
  env.WORKBUDDY_CONFIG_DIR = join(env.HOME, '.workbuddy');
604
+ env.CODEBUDDY_FORCE_LITE_WB_BUNDLE = '1';
604
605
  }
605
606
  if (host === 'kimi' && kimiHome) env.KIMI_CODE_HOME = kimiHome;
606
607
  return env;