release-skill 0.9.23 → 0.9.25

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 (49) 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 +51 -0
  8. package/INSTALL.md +2 -2
  9. package/INSTALL.zh-CN.md +2 -2
  10. package/README.md +19 -32
  11. package/README.zh-CN.md +18 -28
  12. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  13. package/adapters/claude/bin/release-skill.bundle.mjs +840 -1030
  14. package/adapters/claude/skills/release-help/SKILL.md +2 -2
  15. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  16. package/adapters/codex/bin/release-skill.bundle.mjs +840 -1030
  17. package/adapters/codex/skills/release-help/SKILL.md +2 -2
  18. package/adapters/cursor/.cursor-plugin/plugin.json +1 -1
  19. package/adapters/cursor/bin/release-skill.bundle.mjs +840 -1030
  20. package/adapters/cursor/skills/release-help/SKILL.md +2 -2
  21. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  22. package/adapters/kimi/bin/release-skill.bundle.mjs +840 -1030
  23. package/adapters/kimi/skills/release-help/SKILL.md +2 -2
  24. package/adapters/qoder/.qoder-plugin/plugin.json +1 -1
  25. package/adapters/qoder/bin/release-skill.bundle.mjs +840 -1030
  26. package/adapters/qoder/skills/release-help/SKILL.md +2 -2
  27. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  28. package/adapters/workbuddy/bin/release-skill.bundle.mjs +840 -1030
  29. package/adapters/workbuddy/skills/release-help/SKILL.md +2 -2
  30. package/bin/release-skill.bundle.mjs +840 -1030
  31. package/package.json +1 -1
  32. package/platform-manifest.json +4 -4
  33. package/references/05-evidence-and-errors.md +2 -2
  34. package/scripts/build-bundle.mjs +2 -1
  35. package/scripts/sync-public-files.mjs +1 -1
  36. package/skills/release-help/SKILL.md +2 -2
  37. package/skills-src/release-help/SKILL.md +2 -2
  38. package/src/artifacts/producer-registry.mjs +4 -3
  39. package/src/commands/prepare.mjs +5 -30
  40. package/src/core/baseline.mjs +9 -1
  41. package/src/core/public-surface.mjs +1 -1
  42. package/src/core/redact.mjs +12 -5
  43. package/src/core/source-authority.mjs +28 -3
  44. package/src/npm/npm-entry-closure.mjs +71 -9
  45. package/src/producers/build-adapters.mjs +2 -1
  46. package/src/producers/render-public-assets.mjs +2 -1
  47. package/src/producers/sync-skills.mjs +2 -1
  48. package/src/snapshot/frozen.mjs +19 -14
  49. package/src/core/run-retention.mjs +0 -227
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.23",
3
+ "version": "0.9.25",
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.23",
3
+ "version": "0.9.25",
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.23",
3
+ "version": "0.9.25",
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.23.",
22
+ "Prepare a release plan for version 0.9.25.",
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.23",
3
+ "version": "0.9.25",
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.23",
3
+ "version": "0.9.25",
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.23",
3
+ "version": "0.9.25",
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,56 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.9.25 locale=en baseline=sha256:7251718ad92327e37679d4db09d19657ea13f51a5720aa33369181fe5ddb3bbe -->
4
+ ## [0.9.25] - 2026-10-12
5
+
6
+ 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.
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
+
12
+ ### Changed
13
+
14
+ - 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.
15
+
16
+ ### Fixed
17
+
18
+ - 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.
19
+
20
+ ### Upgrade Notes
21
+
22
+ 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.
23
+ <!-- release-skill:changelog:end version=0.9.25 locale=en -->
24
+
25
+
26
+ <!-- release-skill:changelog:start version=0.9.24 locale=en baseline=sha256:17152a17c71bea35445f03040022e41c7fb5a77be0024c049f96d3fb6b0053bb -->
27
+ ## [0.9.24] - 2026-10-02
28
+
29
+ 0.9.24 is a local source candidate. Production prepare no longer deletes run directories. captureBaseline accepts a git status listing up to 64 MiB. Frozen commit dates treat a Git Z reading and the plan +00:00 form as the same UTC instant before comparison. The three Foundation dependencies stay pinned to 0.22.0. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
30
+
31
+ ### Security
32
+
33
+ - Hub publication remains a compare-and-swap operation bound to the observed branch head. A partial Hub publication is never rolled back or force-pushed automatically.
34
+
35
+ ### Changed
36
+
37
+ - Skill Family Hub remains the central marketplace. After release verification, its release entry still uses the existing GitHub Git Data API through the postVerify Hook.
38
+
39
+ ### Removed
40
+
41
+ - Production prepare no longer runs the run-retention cleanup. It keeps the directories already present under .release-skill/runs/, including sealed failed prepares and finished lineages. src/core/run-retention.mjs is not part of the public file list.
42
+
43
+ ### Fixed
44
+
45
+ - captureBaseline reads git status with a 64 MiB maxBuffer, the same bound computeWorkspaceDigest already uses. A status listing larger than Node's default 1 MiB no longer fails that capture.
46
+ - Frozen commit verification still requires the author and committer instants to equal the plan freeze timestamp. Git may return the same UTC instant as Z, and the plan form stays +00:00. Both sides pass through normalizeGitTimestamp before comparison. A different instant still fails.
47
+
48
+ ### Upgrade Notes
49
+
50
+ Compared with 0.9.23, this candidate needs no configuration migration. Prepare no longer reclaims disk by deleting old run directories; those directories remain until an operator removes them outside this command. An installation 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 file describes the local source candidate. Publication, host loading, and acceptance remain separate later authorizations.
51
+ <!-- release-skill:changelog:end version=0.9.24 locale=en -->
52
+
53
+
3
54
  <!-- release-skill:changelog:start version=0.9.23 locale=en baseline=sha256:f8bd83211dfe0baa2fc5f55f90498973ef3050f5c78871db22d3784db0ae7442 -->
4
55
  ## [0.9.23] - 2026-09-26
5
56
 
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.23 -->
5
+ <!-- release-skill:release-version: 0.9.25 -->
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.23
128
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.25
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.23 -->
5
+ <!-- release-skill:release-version: 0.9.25 -->
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.23
116
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.25
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.23 -->
5
+ <!-- release-skill:release-version: 0.9.25 -->
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,37 +14,29 @@ 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.23** (2026-09-26)
17
+ **0.9.25** (2026-10-12)
18
18
 
19
- 0.9.23 is a local source candidate. The adoption check, offline static readiness, and historical record consistency can issue a shared family proof and read an existing proof. Prepare and publish skill text now builds the human-readable approval summary from the immutable plan. The three Foundation dependencies stay pinned to 0.22.0. A static-readiness pass does not mean the release is published. Consistent records do not mean the release succeeded or that it is verified. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
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.
20
20
 
21
21
  **Security**
22
22
 
23
- - Hub publication remains a compare-and-swap operation bound to the observed branch head. A partial Hub publication is never rolled back or force-pushed automatically.
24
-
25
- **Added**
26
-
27
- - setup --assess-adoption, assess --offline, and verify-records accept an optional --conclusion-output <absolute-path>. On a successful write, the command exclusively creates one new family proof and keeps the original domain status and exit code; conclusionPath is added only then. Omitting the option writes no proof file.
28
- - read-proof --proof-root <root> --proof <relative> --json reads one existing release-skill proof under that root. It does not rescan the target, follow details, or turn a failed or incomplete check into a pass.
29
- - When the declared scope is complete, ASSESSED means the static readiness check finished. Under the same condition, CONSISTENT means the supplied historical records agree, and historicalTerminalStatus stays as recorded. A native pass code is not a professional pass while that scope is incomplete. PUBLISHED and VERIFIED still use the existing conditions of the publish and verify phases.
30
- - Exclusive writing and professional-conclusion schema checks call Foundation 0.22.0. Reading also uses Foundation to keep the proof path inside the given root. Release-skill keeps the domain mapping for the three entries.
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.
31
24
 
32
25
  **Changed**
33
26
 
34
- - Skill Family Hub remains the central marketplace. After release verification, its release entry still uses the existing GitHub Git Data API through the postVerify Hook.
27
+ - 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.
35
28
 
36
29
  **Fixed**
37
30
 
38
- - The prepare and publish skills read the immutable plan and build the human-readable approval summary only from the units, externalActions, waivers, and postPublish values actually present. Versions and public targets come only from values already written there. Missing fields stay missing.
39
- - Successful prepare returns the immutable planPath, planDigest, and its other result fields. Approval stays bound to that plan, and copying planDigest is not required. A postPublish checkpoint that needs its own approval remains a separate approval. The publish authorization gate uses the same reading.
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.
40
32
 
41
33
  **Upgrade Notes**
42
34
 
43
- Compared with 0.9.22, this candidate needs no additional configuration migration. An installation 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. The three checks keep their previous commands, and a proof file is written only when --conclusion-output is set. Reading an existing proof does not advance release state. This file describes the local source candidate; publication, host loading, and acceptance remain separate later authorizations.
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.
44
36
  <!-- release-skill:managed:end id=latest-release -->
45
37
 
46
38
  <!-- release-skill:capability:external-write-boundary -->
47
- > **Current boundary:** v0.9.23 is the current source candidate. This README
39
+ > **Current boundary:** v0.9.25 is the current source candidate. This README
48
40
  > records intended scope and verification boundaries; it is not evidence of
49
41
  > publication, consumer-installation verification, or independent acceptance.
50
42
  > Release availability must be established from the corresponding release records
@@ -68,7 +60,7 @@ Compared with 0.9.22, this candidate needs no additional configuration migration
68
60
  > publish global preflight.
69
61
 
70
62
  <!-- release-skill:capability:safe-first-command -->
71
- > **Production path verified since the v0.1.1 milestone; v0.9.23 is the current
63
+ > **Production path verified since the v0.1.1 milestone; v0.9.25 is the current
72
64
  > source candidate. Its README does not establish publication,
73
65
  > consumer-installation verification, or independent acceptance.**
74
66
  > The npm-installed CLI is the supported user entry. Source checkout
@@ -78,6 +70,10 @@ Compared with 0.9.22, this candidate needs no additional configuration migration
78
70
  > - npm install: `npm install -g release-skill` → `release-skill help`
79
71
  > - source checkout: `node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs" help`
80
72
 
73
+ <a id="release-terms"></a>
74
+
75
+ A release unit is a release object with independently configured version, public files, and distribution targets. A release plan is a record for review before approval, linking target versions, frozen artifacts, and proposed external actions; see the [human review and approval steps](#release-plan-review).
76
+
81
77
  ### 0.8.0 scope and verification boundaries
82
78
 
83
79
  For `prepare --workflow config`, public-byte comparison selects the branch:
@@ -97,7 +93,7 @@ checkpoints remain intact and use matching-version recovery. Evidence v1 stays
97
93
  read-only; v2 uses a closed top level with phase extensions in `details`.
98
94
  Summaries and recovery suggestions are diagnostic, never publication authority.
99
95
 
100
- The current 0.9.23 candidate includes the narrow R-05 Hook cache v2 consumer
96
+ The current 0.9.25 candidate includes the narrow R-05 Hook cache v2 consumer
101
97
  path, the public `postverify` path, and the stable isolated install-tree record
102
98
  path (A2/A3). It also adds the explicit-input `verify-records` command and a
103
99
  self-contained Qoder projection, first-class Cursor packaging, and the
@@ -201,7 +197,7 @@ This scope summary is not a remote publication record or a consumer upgrade inst
201
197
 
202
198
  ## Quick start
203
199
 
204
- A release unit is a release object with independently configured version, public files, and distribution targets.
200
+ The release unit and release plan are defined [above](#release-terms); the review steps are the [human review and approval steps](#release-plan-review).
205
201
 
206
202
  ### Selecting a release scope
207
203
 
@@ -340,7 +336,7 @@ observes the complete frozen payload in a fresh local installation. Real
340
336
  marketplace installation and host invocation remain non-blocking post-release
341
337
  manual tasks; the system does not verify their completion.
342
338
 
343
- A release plan is a record for review before approval, linking target versions, frozen artifacts, and proposed external actions; see the [human review and approval steps](#release-plan-review).
339
+ The release unit and release plan are defined [above](#release-terms); the review steps are the [human review and approval steps](#release-plan-review).
344
340
 
345
341
  ```bash
346
342
  release-skill ship --root "$PROJECT" --target-version 1.2.3 --json
@@ -350,11 +346,7 @@ release-skill ship --root "$PROJECT" --approve --actor "$ACTOR" --json
350
346
  During development, `release-skill hooks validate` runs declared hooks and
351
347
  writes the same content-bound cache receipts that `prepare` consumes.
352
348
 
353
- Run these steps in order. Steps 1-3 are read-only. In step 4, release-skill's own
354
- prepare pipeline is local-only and never invokes remote publish adapters; configured
355
- hooks and gates remain arbitrary unsandboxed processes and can perform local or remote
356
- side effects. Step 4 is therefore local-only only when those processes are absent or
357
- separately audited and explicitly acknowledged. Steps 5-9 require explicit human gates.
349
+ Run these steps in order. The `help` call in step 1, the default `setup` diagnosis in step 2 without `--write`, and the `assess` call shown in step 3 are read-only diagnoses. When step 2 explicitly runs `setup --write --confirm-setup`, it creates project configuration; that same step also creates, writes, and deletes local temporary session files. Those are local writes, not remote publication. In step 4, release-skill's own prepare pipeline is local-only and never invokes remote publish adapters; configured hooks and gates remain arbitrary unsandboxed processes and can perform local or remote side effects. Step 4 is therefore local-only only when those processes are absent or separately audited and explicitly acknowledged. Steps 5-9 require explicit human gates.
358
350
 
359
351
  ```bash
360
352
  CLI=(release-skill) # or: CLI=(node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs")
@@ -919,13 +911,8 @@ verify an exact current installation offline; Codex reinstalls when its list
919
911
  does not expose an installation root. Existing frozen installation actions
920
912
  and the Qoder and Cursor paths remain supported without duplicate execution.
921
913
 
922
- Production `prepare` also performs one best-effort retention pass after its new
923
- run evidence exists and before expensive snapshot and hook work. It removes
924
- only superseded complete run lineages and sealed failed prepare directories
925
- that have no valid plan or external-write trace. The current plan, the newest
926
- complete lineage, and every non-terminal, partial, corrupt, ambiguous, or
927
- out-of-bounds lineage remain protected. Retention failures never change the
928
- prepare result.
914
+ Production `prepare` keeps the run directories already present under
915
+ `.release-skill/runs/`, including sealed failed prepares and finished lineages.
929
916
 
930
917
  New `codebuddy-plugin` project configurations must declare `marketplace`
931
918
  explicitly so product families cannot silently inherit another family's Hub.
package/README.zh-CN.md CHANGED
@@ -2,43 +2,35 @@
2
2
 
3
3
  [English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.23 -->
5
+ <!-- release-skill:release-version: 0.9.25 -->
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.23** (2026-09-26)
11
+ **0.9.25** (2026-10-12)
12
12
 
13
- 0.9.23 是一个本地源码候选。接入检查、离线静态准备度和历史记录一致性可以出具本族共同证明,也可以读取已有证明。prepare 与 publish 的技能说明改为从不可变计划整理人可读批准摘要。Foundation 三个依赖继续固定为 0.22.0。静态准备度通过不表示已经发布。记录一致不表示发布已经成功,也不表示已经验证。本说明不代表已经发布、完成真实宿主验收、完成消费者安装验证或通过独立验收。
13
+ 0.9.25 是一个本地源码候选。本次修复公开文件检查在单个扫描根含 128197 个文件时触发的 RangeError。Foundation 三个依赖继续固定为 0.22.0。本说明不代表已经发布、完成真实宿主验收、完成消费者安装验证或通过独立验收。
14
14
 
15
15
  **安全**
16
16
 
17
- - Hub 发布仍绑定已观察的分支头执行比较后写入。部分发布时不回滚、不覆盖已成功的远端步骤,也不自动强推。
18
-
19
- **新增**
20
-
21
- - `setup --assess-adoption`、`assess --offline` 和 `verify-records` 可以附加 `--conclusion-output <absolute-path>`。写入成功时,命令排他创建一份新的本族证明,并保留原领域状态和退出码;结果这时才带 `conclusionPath`。未传该参数时不写证明文件。
22
- - `read-proof --proof-root <root> --proof <relative> --json` 只读取该根下已有的 release-skill 证明。读取不重新检查目标,不跟随 `details`,也不把失败或未完成的检查变成通过。
23
- - 声明范围已经完成时,`ASSESSED` 表示静态准备度检查完成。同一条件下,`CONSISTENT` 表示所给历史记录一致,`historicalTerminalStatus` 保持原值。范围尚未完成时,原生通过码不算专业通过。`PUBLISHED` 和 `VERIFIED` 继续使用发布阶段和验证阶段各自的通过条件。
24
- - 证明的排他写入和 professional-conclusion 结构校验调用 Foundation 0.22.0。读取时同样由 Foundation 把证明路径限制在给定根目录内。三个入口的领域映射仍留在 release-skill。
17
+ - 既有安全边界保持不变:Hub 写入继续绑定已观察的分支头,按 compare-and-swap 比较后写入。部分发布时不回滚、不覆盖已成功步骤,也不自动强推。
25
18
 
26
19
  **变更**
27
20
 
28
- - Skill Family Hub 继续作为统一市场。发布验证完成后,postVerify Hook 仍使用既有 GitHub Git Data API 更新 Hub 的发布条目。
21
+ - 分发路径保持不变:Skill Family Hub 仍是统一市场,发布验证完成后,仍通过既有 GitHub Git Data API 更新 Hub 条目。
29
22
 
30
23
  **修复**
31
24
 
32
- - prepare 与 publish 技能改为读取不可变计划。人可读批准摘要只使用计划中实际存在的 `units`、`externalActions`、`waivers` 和 `postPublish`。版本与公开目标只取这些对象里已经写下的值,没有的字段不补写。
33
- - 成功的 prepare 返回不可变 `planPath`、`planDigest` 等字段。批准仍绑定这份计划,不必复制 `planDigest`。需要独立批准的 postPublish checkpoint 仍另行批准。publish 授权门使用同一读法。
25
+ - 公开文件检查改为逐项追加,避免一次调用传入过多参数而阻断发布准备;原扫描顺序、文件身份、公开文件映射及包含/排除分类策略保持不变。新增回归用 128197 个内存目录项执行真实扫描、分类和映射逻辑,在旧实现上精确复现同位置的 RangeError,修复后通过;该回归没有创建同等规模的真实磁盘文件。
34
26
 
35
27
  **升级说明**
36
28
 
37
- 本候选相对 0.9.22 无需额外迁移配置。若安装仍使用独立的 `release-skill` 市场,应将其移除,改用 ifoohoo/skill-family-hub 仓库与 Hub 限定插件名 release-skill@skill-family-hub。三个检查的原命令保持可用,只有传入 `--conclusion-output` 才写出证明。读取已有证明不会推进发布状态。本文件只说明本地源码候选;正式发布、宿主加载和验收留待后续单独授权。
29
+ 升级无需迁移配置。若仍使用旧版独立的 `release-skill` 市场,应移除旧市场,改用 ifoohoo/skill-family-hub 仓库与 Hub 限定插件名 release-skill@skill-family-hub;这条迁移路径保持不变。本说明不能代替完整发布门禁、正式发布、消费者安装、宿主加载或独立验收的实际证据。
38
30
  <!-- release-skill:managed:end id=latest-release -->
39
31
 
40
32
  <!-- release-skill:capability:external-write-boundary -->
41
- > **当前边界:** v0.9.23 只是当前源码候选。本 README 记录预期范围与验证边界,
33
+ > **当前边界:** v0.9.25 只是当前源码候选。本 README 记录预期范围与验证边界,
42
34
  > 不代表已经发布、完成消费者安装验证或通过独立验收。
43
35
  > 版本可用性以对应发布记录及发布后验证结果为准。
44
36
  > v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
@@ -54,13 +46,17 @@ release-skill 帮助维护者回答三个问题:准备发布什么、还有哪
54
46
  > 远端唯一性检查在 `publish` 全局预检执行。
55
47
 
56
48
  <!-- release-skill:capability:safe-first-command -->
57
- > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.9.23 是当前源码候选,本 README 不证明该候选已经发布、完成消费者安装验证或通过独立验收。**
49
+ > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.9.25 是当前源码候选,本 README 不证明该候选已经发布、完成消费者安装验证或通过独立验收。**
58
50
  > npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
59
51
  >
60
52
  > **第一条命令:**
61
53
  > - npm 安装:`npm install -g release-skill` → `release-skill help`
62
54
  > - 源码 checkout:`node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs" help`
63
55
 
56
+ <a id="release-terms"></a>
57
+
58
+ 发布单元是独立配置版本、公开文件和分发目标的发布对象。发布计划是供批准前审阅的记录,将目标版本、冻结产物和拟执行的外部动作关联起来;详见[人工审阅与批准步骤](#release-plan-review)。
59
+
64
60
  ### 0.8.0 范围与验证边界
65
61
 
66
62
  `prepare --workflow config` 按公开字节是否变化分支:
@@ -72,7 +68,7 @@ marketplace 委托目标工作区发布的边界不变。
72
68
 
73
69
  旧 production 计划缺少 `sourceAuthority` 时,在外部写入前拒绝。未发生外部写入的计划必须重新 prepare 并批准新摘要,不能补写旧计划或迁移批准。已有 `PARTIAL` 保留检查点,走匹配版本的恢复路径。evidence v1 只读;v2 顶层封闭,阶段扩展放在 `details`。摘要和恢复建议只作诊断,不构成发布权威。
74
70
 
75
- 当前 0.9.23 候选包含窄范围的 R-05 Hook cache v2 消费路径、公开 `postverify`
71
+ 当前 0.9.25 候选包含窄范围的 R-05 Hook cache v2 消费路径、公开 `postverify`
76
72
  路径和稳定隔离安装树记录路径(A2/A3),并增加只接受显式输入的 `verify-records`
77
73
  命令、自包含 Qoder 投影、Cursor 正式打包,以及基于 Foundation 的宿主核验桥。
78
74
  Skill Family Hub 仍是唯一市场来源。
@@ -157,7 +153,7 @@ CodeBuddy 映射为兼容的 `workbuddy`。`observed` 与 `payloadMatches` 只
157
153
 
158
154
  ## 快速开始
159
155
 
160
- 发布单元是独立配置版本、公开文件和分发目标的发布对象。
156
+ 发布单元和发布计划的定义见[上文](#release-terms),审阅步骤见[人工审阅与批准步骤](#release-plan-review)。
161
157
 
162
158
  ### 选择本轮发布范围
163
159
 
@@ -275,7 +271,7 @@ hook 授权等待态。受限的 postPublish hook 仍须独立批准,计划批
275
271
  观察完整冻结载荷。真实市场安装和宿主调用仍是发布完成后的非阻塞人工后续任务,
276
272
  系统不核验其完成结果。
277
273
 
278
- 发布计划是供批准前审阅的记录,将目标版本、冻结产物和拟执行的外部动作关联起来;详见[人工审阅与批准步骤](#release-plan-review)。
274
+ 发布单元和发布计划的定义见[上文](#release-terms),审阅步骤见[人工审阅与批准步骤](#release-plan-review)。
279
275
 
280
276
  ```bash
281
277
  release-skill ship --root "$PROJECT" --target-version 1.2.3 --json
@@ -285,10 +281,7 @@ release-skill ship --root "$PROJECT" --approve --actor "$ACTOR" --json
285
281
  开发阶段可运行 `release-skill hooks validate`;它会执行声明的 hooks,并写入
286
282
  `prepare` 可复用的内容绑定收据。
287
283
 
288
- 按以下顺序执行。步骤 1-3 只读。步骤 4 中,release-skill 自身的 prepare 流水线仅在本地写入,
289
- 且不会调用远端发布适配器;配置的 hook 和 gate 仍是可产生本地或远端副作用的任意无沙箱进程。
290
- 只有这些进程不存在,或已单独审计并显式确认副作用时,步骤 4 才能视为“仅本地”。步骤 5-9
291
- 需要显式人工门禁。
284
+ 按以下顺序执行。步骤 1 的 `help`、步骤 2 不带 `--write` 的默认 `setup` 诊断,以及步骤 3 所示的 `assess`,是只读诊断。步骤 2 显式执行 `setup --write --confirm-setup` 时,会在项目中创建配置;同一步骤还会创建、写入并删除本地临时会话文件,这些操作属于本地写入,不涉及远端发布。步骤 4 中,release-skill 自身的 prepare 流水线仅在本地写入,且不会调用远端发布适配器;配置的 hook 和 gate 仍是可产生本地或远端副作用的任意无沙箱进程。只有这些进程不存在,或已单独审计并显式确认副作用时,步骤 4 才能视为“仅本地”。步骤 5-9 需要显式人工门禁。
292
285
 
293
286
  ```bash
294
287
  CLI=(release-skill) # 或:CLI=(node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs")
@@ -764,10 +757,7 @@ GitHub Release 和受控终端交互,保留三个代理变量;只有仓库 U
764
757
  精确当前安装;Codex 列表没有安装根时仍须正式重装。旧安装动作与 Qoder、Cursor
765
758
  路径继续可用,身份一致的重复目标只执行一次。
766
759
 
767
- 生产 prepare 还会在本轮运行证据建立后、高成本快照和 Hook 之前执行一次尽力清理。
768
- 它只删除已被更新完整谱系取代的终态运行目录,以及没有有效计划或外部写入迹象的封口
769
- 失败 prepare。当前计划、最近完整谱系,以及所有非终态、部分成功、损坏、含糊或越界
770
- 谱系都受保护。清理失败不会改变 prepare 结果。
760
+ 生产 prepare 保留 `.release-skill/runs/` 中已有的运行目录,包括封口失败的 prepare 和已经结束的谱系。
771
761
 
772
762
  新的 `codebuddy-plugin` 项目配置必须显式声明 `marketplace`,避免不同产品线误用同一市场;`marketplaceSource`(消费者添加市场所用的 URL)仍可按需声明。只有已经冻结、且未携带该字段的历史计划会继续按旧规则解释为 `artifact-skill-set`,以保证 reconcile 可以重放原计划。
773
763
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.23",
3
+ "version": "0.9.25",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"