release-skill 0.9.22 → 0.9.24

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 (220) 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 +61 -2
  8. package/INSTALL.md +4 -4
  9. package/INSTALL.zh-CN.md +4 -4
  10. package/README.md +53 -32
  11. package/README.zh-CN.md +44 -27
  12. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  13. package/adapters/claude/bin/consumer-contract-vectors.json +7 -7
  14. package/adapters/claude/bin/error-codes.json +1 -1
  15. package/adapters/claude/bin/foundation-resource-binding.json +1 -1
  16. package/adapters/claude/bin/registry.json +50 -1
  17. package/adapters/claude/bin/release-skill.bundle.mjs +2680 -2180
  18. package/adapters/claude/bin/rules.json +1 -1
  19. package/adapters/claude/skills/release-assess/SKILL.md +17 -3
  20. package/adapters/claude/skills/release-config/SKILL.md +6 -0
  21. package/adapters/claude/skills/release-docs/SKILL.md +6 -0
  22. package/adapters/claude/skills/release-help/SKILL.md +7 -2
  23. package/adapters/claude/skills/release-marketplace/SKILL.md +6 -0
  24. package/adapters/claude/skills/release-prepare/SKILL.md +8 -2
  25. package/adapters/claude/skills/release-publish/SKILL.md +7 -1
  26. package/adapters/claude/skills/release-reconcile/SKILL.md +6 -0
  27. package/adapters/claude/skills/release-setup/SKILL.md +9 -1
  28. package/adapters/claude/skills/release-verify/SKILL.md +6 -0
  29. package/adapters/claude/src/schemas/file-set-apply-request.schema.json +78 -0
  30. package/adapters/claude/src/schemas/file-set-event-payload.schema.json +55 -0
  31. package/adapters/claude/src/schemas/file-set-prune-request.schema.json +17 -0
  32. package/adapters/claude/src/schemas/file-set-recovery-request.schema.json +29 -0
  33. package/adapters/claude/src/schemas/file-set-result.schema.json +79 -0
  34. package/adapters/claude/src/schemas/professional-conclusion.schema.json +132 -0
  35. package/adapters/claude/src/schemas/project-manifest.schema.json +91 -0
  36. package/adapters/claude/src/schemas/state-store-recovery-observation.schema.json +129 -0
  37. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  38. package/adapters/codex/bin/consumer-contract-vectors.json +7 -7
  39. package/adapters/codex/bin/error-codes.json +1 -1
  40. package/adapters/codex/bin/foundation-resource-binding.json +1 -1
  41. package/adapters/codex/bin/registry.json +50 -1
  42. package/adapters/codex/bin/release-skill.bundle.mjs +2680 -2180
  43. package/adapters/codex/bin/rules.json +1 -1
  44. package/adapters/codex/skills/release-assess/SKILL.md +17 -3
  45. package/adapters/codex/skills/release-config/SKILL.md +6 -0
  46. package/adapters/codex/skills/release-docs/SKILL.md +6 -0
  47. package/adapters/codex/skills/release-help/SKILL.md +9 -3
  48. package/adapters/codex/skills/release-marketplace/SKILL.md +6 -0
  49. package/adapters/codex/skills/release-prepare/SKILL.md +8 -2
  50. package/adapters/codex/skills/release-publish/SKILL.md +7 -1
  51. package/adapters/codex/skills/release-reconcile/SKILL.md +6 -0
  52. package/adapters/codex/skills/release-setup/SKILL.md +9 -1
  53. package/adapters/codex/skills/release-verify/SKILL.md +6 -0
  54. package/adapters/codex/src/schemas/file-set-apply-request.schema.json +78 -0
  55. package/adapters/codex/src/schemas/file-set-event-payload.schema.json +55 -0
  56. package/adapters/codex/src/schemas/file-set-prune-request.schema.json +17 -0
  57. package/adapters/codex/src/schemas/file-set-recovery-request.schema.json +29 -0
  58. package/adapters/codex/src/schemas/file-set-result.schema.json +79 -0
  59. package/adapters/codex/src/schemas/professional-conclusion.schema.json +132 -0
  60. package/adapters/codex/src/schemas/project-manifest.schema.json +91 -0
  61. package/adapters/codex/src/schemas/state-store-recovery-observation.schema.json +129 -0
  62. package/adapters/cursor/.cursor-plugin/plugin.json +1 -1
  63. package/adapters/cursor/bin/consumer-contract-vectors.json +7 -7
  64. package/adapters/cursor/bin/error-codes.json +1 -1
  65. package/adapters/cursor/bin/foundation-resource-binding.json +1 -1
  66. package/adapters/cursor/bin/registry.json +50 -1
  67. package/adapters/cursor/bin/release-skill.bundle.mjs +2680 -2180
  68. package/adapters/cursor/bin/rules.json +1 -1
  69. package/adapters/cursor/skills/release-assess/SKILL.md +17 -3
  70. package/adapters/cursor/skills/release-config/SKILL.md +6 -0
  71. package/adapters/cursor/skills/release-docs/SKILL.md +6 -0
  72. package/adapters/cursor/skills/release-help/SKILL.md +9 -3
  73. package/adapters/cursor/skills/release-marketplace/SKILL.md +6 -0
  74. package/adapters/cursor/skills/release-prepare/SKILL.md +8 -2
  75. package/adapters/cursor/skills/release-publish/SKILL.md +7 -1
  76. package/adapters/cursor/skills/release-reconcile/SKILL.md +6 -0
  77. package/adapters/cursor/skills/release-setup/SKILL.md +9 -1
  78. package/adapters/cursor/skills/release-verify/SKILL.md +6 -0
  79. package/adapters/cursor/src/schemas/file-set-apply-request.schema.json +78 -0
  80. package/adapters/cursor/src/schemas/file-set-event-payload.schema.json +55 -0
  81. package/adapters/cursor/src/schemas/file-set-prune-request.schema.json +17 -0
  82. package/adapters/cursor/src/schemas/file-set-recovery-request.schema.json +29 -0
  83. package/adapters/cursor/src/schemas/file-set-result.schema.json +79 -0
  84. package/adapters/cursor/src/schemas/professional-conclusion.schema.json +132 -0
  85. package/adapters/cursor/src/schemas/project-manifest.schema.json +91 -0
  86. package/adapters/cursor/src/schemas/state-store-recovery-observation.schema.json +129 -0
  87. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  88. package/adapters/kimi/bin/consumer-contract-vectors.json +7 -7
  89. package/adapters/kimi/bin/error-codes.json +1 -1
  90. package/adapters/kimi/bin/foundation-resource-binding.json +1 -1
  91. package/adapters/kimi/bin/registry.json +50 -1
  92. package/adapters/kimi/bin/release-skill.bundle.mjs +2680 -2180
  93. package/adapters/kimi/bin/rules.json +1 -1
  94. package/adapters/kimi/skills/release-assess/SKILL.md +17 -3
  95. package/adapters/kimi/skills/release-config/SKILL.md +6 -0
  96. package/adapters/kimi/skills/release-docs/SKILL.md +6 -0
  97. package/adapters/kimi/skills/release-help/SKILL.md +9 -3
  98. package/adapters/kimi/skills/release-marketplace/SKILL.md +6 -0
  99. package/adapters/kimi/skills/release-prepare/SKILL.md +8 -2
  100. package/adapters/kimi/skills/release-publish/SKILL.md +7 -1
  101. package/adapters/kimi/skills/release-reconcile/SKILL.md +6 -0
  102. package/adapters/kimi/skills/release-setup/SKILL.md +9 -1
  103. package/adapters/kimi/skills/release-verify/SKILL.md +6 -0
  104. package/adapters/kimi/src/schemas/file-set-apply-request.schema.json +78 -0
  105. package/adapters/kimi/src/schemas/file-set-event-payload.schema.json +55 -0
  106. package/adapters/kimi/src/schemas/file-set-prune-request.schema.json +17 -0
  107. package/adapters/kimi/src/schemas/file-set-recovery-request.schema.json +29 -0
  108. package/adapters/kimi/src/schemas/file-set-result.schema.json +79 -0
  109. package/adapters/kimi/src/schemas/professional-conclusion.schema.json +132 -0
  110. package/adapters/kimi/src/schemas/project-manifest.schema.json +91 -0
  111. package/adapters/kimi/src/schemas/state-store-recovery-observation.schema.json +129 -0
  112. package/adapters/qoder/.qoder-plugin/plugin.json +1 -1
  113. package/adapters/qoder/bin/consumer-contract-vectors.json +7 -7
  114. package/adapters/qoder/bin/error-codes.json +1 -1
  115. package/adapters/qoder/bin/foundation-resource-binding.json +1 -1
  116. package/adapters/qoder/bin/registry.json +50 -1
  117. package/adapters/qoder/bin/release-skill.bundle.mjs +2680 -2180
  118. package/adapters/qoder/bin/rules.json +1 -1
  119. package/adapters/qoder/skills/release-assess/SKILL.md +17 -3
  120. package/adapters/qoder/skills/release-config/SKILL.md +6 -0
  121. package/adapters/qoder/skills/release-docs/SKILL.md +6 -0
  122. package/adapters/qoder/skills/release-help/SKILL.md +9 -3
  123. package/adapters/qoder/skills/release-marketplace/SKILL.md +6 -0
  124. package/adapters/qoder/skills/release-prepare/SKILL.md +8 -2
  125. package/adapters/qoder/skills/release-publish/SKILL.md +7 -1
  126. package/adapters/qoder/skills/release-reconcile/SKILL.md +6 -0
  127. package/adapters/qoder/skills/release-setup/SKILL.md +9 -1
  128. package/adapters/qoder/skills/release-verify/SKILL.md +6 -0
  129. package/adapters/qoder/src/schemas/file-set-apply-request.schema.json +78 -0
  130. package/adapters/qoder/src/schemas/file-set-event-payload.schema.json +55 -0
  131. package/adapters/qoder/src/schemas/file-set-prune-request.schema.json +17 -0
  132. package/adapters/qoder/src/schemas/file-set-recovery-request.schema.json +29 -0
  133. package/adapters/qoder/src/schemas/file-set-result.schema.json +79 -0
  134. package/adapters/qoder/src/schemas/professional-conclusion.schema.json +132 -0
  135. package/adapters/qoder/src/schemas/project-manifest.schema.json +91 -0
  136. package/adapters/qoder/src/schemas/state-store-recovery-observation.schema.json +129 -0
  137. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  138. package/adapters/workbuddy/bin/consumer-contract-vectors.json +7 -7
  139. package/adapters/workbuddy/bin/error-codes.json +1 -1
  140. package/adapters/workbuddy/bin/foundation-resource-binding.json +1 -1
  141. package/adapters/workbuddy/bin/registry.json +50 -1
  142. package/adapters/workbuddy/bin/release-skill.bundle.mjs +2680 -2180
  143. package/adapters/workbuddy/bin/rules.json +1 -1
  144. package/adapters/workbuddy/skills/release-assess/SKILL.md +17 -3
  145. package/adapters/workbuddy/skills/release-config/SKILL.md +6 -0
  146. package/adapters/workbuddy/skills/release-docs/SKILL.md +6 -0
  147. package/adapters/workbuddy/skills/release-help/SKILL.md +7 -2
  148. package/adapters/workbuddy/skills/release-marketplace/SKILL.md +6 -0
  149. package/adapters/workbuddy/skills/release-prepare/SKILL.md +8 -2
  150. package/adapters/workbuddy/skills/release-publish/SKILL.md +7 -1
  151. package/adapters/workbuddy/skills/release-reconcile/SKILL.md +6 -0
  152. package/adapters/workbuddy/skills/release-setup/SKILL.md +9 -1
  153. package/adapters/workbuddy/skills/release-verify/SKILL.md +6 -0
  154. package/adapters/workbuddy/src/schemas/file-set-apply-request.schema.json +78 -0
  155. package/adapters/workbuddy/src/schemas/file-set-event-payload.schema.json +55 -0
  156. package/adapters/workbuddy/src/schemas/file-set-prune-request.schema.json +17 -0
  157. package/adapters/workbuddy/src/schemas/file-set-recovery-request.schema.json +29 -0
  158. package/adapters/workbuddy/src/schemas/file-set-result.schema.json +79 -0
  159. package/adapters/workbuddy/src/schemas/professional-conclusion.schema.json +132 -0
  160. package/adapters/workbuddy/src/schemas/project-manifest.schema.json +91 -0
  161. package/adapters/workbuddy/src/schemas/state-store-recovery-observation.schema.json +129 -0
  162. package/bin/consumer-contract-vectors.json +7 -7
  163. package/bin/error-codes.json +1 -1
  164. package/bin/foundation-resource-binding.json +1 -1
  165. package/bin/registry.json +50 -1
  166. package/bin/release-skill-cli.mjs +80 -5
  167. package/bin/release-skill.bundle.mjs +2680 -2180
  168. package/bin/rules.json +1 -1
  169. package/package.json +4 -4
  170. package/platform-manifest.json +4 -4
  171. package/references/05-evidence-and-errors.md +2 -2
  172. package/scripts/build-bundle.mjs +2 -1
  173. package/scripts/sync-public-files.mjs +1 -1
  174. package/skills/release-assess/SKILL.md +17 -3
  175. package/skills/release-config/SKILL.md +6 -0
  176. package/skills/release-docs/SKILL.md +6 -0
  177. package/skills/release-help/SKILL.md +7 -2
  178. package/skills/release-marketplace/SKILL.md +6 -0
  179. package/skills/release-prepare/SKILL.md +8 -2
  180. package/skills/release-publish/SKILL.md +7 -1
  181. package/skills/release-reconcile/SKILL.md +6 -0
  182. package/skills/release-setup/SKILL.md +9 -1
  183. package/skills/release-verify/SKILL.md +6 -0
  184. package/skills-src/release-assess/SKILL.md +17 -3
  185. package/skills-src/release-config/SKILL.md +6 -0
  186. package/skills-src/release-docs/SKILL.md +6 -0
  187. package/skills-src/release-help/SKILL.md +7 -2
  188. package/skills-src/release-marketplace/SKILL.md +6 -0
  189. package/skills-src/release-prepare/SKILL.md +8 -2
  190. package/skills-src/release-publish/SKILL.md +7 -1
  191. package/skills-src/release-reconcile/SKILL.md +6 -0
  192. package/skills-src/release-setup/SKILL.md +9 -1
  193. package/skills-src/release-verify/SKILL.md +6 -0
  194. package/src/adapters/plugin-marketplace.mjs +7 -12
  195. package/src/artifacts/producer-registry.mjs +4 -3
  196. package/src/commands/assess.mjs +23 -3
  197. package/src/commands/post-release-local.mjs +2 -2
  198. package/src/commands/prepare.mjs +5 -30
  199. package/src/commands/professional-proof.mjs +506 -0
  200. package/src/commands/setup.mjs +16 -5
  201. package/src/commands/verify-records.mjs +14 -0
  202. package/src/core/baseline.mjs +9 -1
  203. package/src/core/derived-artifact-gates.mjs +38 -9
  204. package/src/core/redact.mjs +12 -5
  205. package/src/core/source-authority.mjs +28 -3
  206. package/src/npm/npm-entry-closure.mjs +71 -9
  207. package/src/producers/build-adapters.mjs +18 -5
  208. package/src/producers/foundation-resource-projection.mjs +3 -3
  209. package/src/producers/render-public-assets.mjs +2 -1
  210. package/src/producers/sync-skills.mjs +2 -1
  211. package/src/schemas/file-set-apply-request.schema.json +78 -0
  212. package/src/schemas/file-set-event-payload.schema.json +55 -0
  213. package/src/schemas/file-set-prune-request.schema.json +17 -0
  214. package/src/schemas/file-set-recovery-request.schema.json +29 -0
  215. package/src/schemas/file-set-result.schema.json +79 -0
  216. package/src/schemas/professional-conclusion.schema.json +132 -0
  217. package/src/schemas/project-manifest.schema.json +91 -0
  218. package/src/schemas/state-store-recovery-observation.schema.json +129 -0
  219. package/src/snapshot/frozen.mjs +19 -14
  220. package/src/core/run-retention.mjs +0 -227
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.22",
3
+ "version": "0.9.24",
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.22",
3
+ "version": "0.9.24",
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.22",
3
+ "version": "0.9.24",
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.22.",
22
+ "Prepare a release plan for version 0.9.24.",
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.22",
3
+ "version": "0.9.24",
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.22",
3
+ "version": "0.9.24",
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.22",
3
+ "version": "0.9.24",
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,9 +1,68 @@
1
1
  # Changelog
2
2
 
3
- <!-- release-skill:changelog:start version=0.9.22 locale=en baseline=sha256:5b9ca7ff99b3d072831f4f114ff4830f6d76540f7c5262fd1deb97eaec9d0a57 -->
3
+ <!-- release-skill:changelog:start version=0.9.24 locale=en baseline=sha256:17152a17c71bea35445f03040022e41c7fb5a77be0024c049f96d3fb6b0053bb -->
4
+ ## [0.9.24] - 2026-10-02
5
+
6
+ 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.
7
+
8
+ ### Security
9
+
10
+ - 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.
11
+
12
+ ### Changed
13
+
14
+ - 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.
15
+
16
+ ### Removed
17
+
18
+ - 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.
19
+
20
+ ### Fixed
21
+
22
+ - 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.
23
+ - 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.
24
+
25
+ ### Upgrade Notes
26
+
27
+ 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.
28
+ <!-- release-skill:changelog:end version=0.9.24 locale=en -->
29
+
30
+
31
+ <!-- release-skill:changelog:start version=0.9.23 locale=en baseline=sha256:f8bd83211dfe0baa2fc5f55f90498973ef3050f5c78871db22d3784db0ae7442 -->
32
+ ## [0.9.23] - 2026-09-26
33
+
34
+ 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.
35
+
36
+ ### Security
37
+
38
+ - 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.
39
+
40
+ ### Added
41
+
42
+ - 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.
43
+ - 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.
44
+ - 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.
45
+ - 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.
46
+
47
+ ### Changed
48
+
49
+ - 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.
50
+
51
+ ### Fixed
52
+
53
+ - 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.
54
+ - 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.
55
+
56
+ ### Upgrade Notes
57
+
58
+ 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.
59
+ <!-- release-skill:changelog:end version=0.9.23 locale=en -->
60
+
61
+
62
+ <!-- release-skill:changelog:start version=0.9.22 locale=en baseline=sha256:ae4fc78ae5e454ee7a6cf37f6ae6130dfe7fefb5948aaa21197a7ef409ffb794 -->
4
63
  ## [0.9.22] - 2026-09-17
5
64
 
6
- 0.9.22 is a local source candidate that fixes two failures found during the real-host rollout of 0.9.21. CodeBuddy and WorkBuddy keep the same frozen Hub identity and installed-payload checks. Foundation dependencies remain pinned to 0.21.0. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
65
+ 0.9.22 is a local source candidate that fixes two failures found during the real-host rollout of 0.9.21. CodeBuddy and WorkBuddy keep the same frozen Hub identity and installed-payload checks. 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
66
 
8
67
  ### Security
9
68
 
package/INSTALL.md CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.22 -->
5
+ <!-- release-skill:release-version: 0.9.24 -->
6
6
  ## Prerequisites
7
7
 
8
- - Node.js 22.0.0 or later
8
+ - Node.js `>=22.22.2 <23` (22.22.2 or newer, and below 23)
9
9
  - Git 2.30+
10
10
 
11
11
  ## Install from npm (recommended)
@@ -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.22
128
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.24
129
129
  /plugins reload
130
130
  ```
131
131
 
@@ -307,7 +307,7 @@ For development or when working from source:
307
307
  ```bash
308
308
  export RELEASE_SKILL_HOME=/absolute/path/to/release-skill
309
309
  cd "$RELEASE_SKILL_HOME"
310
- npm exec --yes pnpm@10.17.1 -- install --frozen-lockfile
310
+ npm exec --yes pnpm@10.30.0 -- install --frozen-lockfile
311
311
  ```
312
312
 
313
313
  Then use the CLI via:
package/INSTALL.zh-CN.md CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.22 -->
5
+ <!-- release-skill:release-version: 0.9.24 -->
6
6
  ## 前置条件
7
7
 
8
- - Node.js 22.0.0 或更高版本
8
+ - Node.js `>=22.22.2 <23`(22.22.2 及以上,且低于 23)
9
9
  - Git 2.30 或更高版本
10
10
 
11
11
  ## 从 npm 安装(推荐)
@@ -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.22
116
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.24
117
117
  /plugins reload
118
118
  ```
119
119
 
@@ -248,7 +248,7 @@ node <installed-plugin-root>/bin/release-skill-local-finish.mjs \
248
248
  ```bash
249
249
  export RELEASE_SKILL_HOME=/absolute/path/to/release-skill
250
250
  cd "$RELEASE_SKILL_HOME"
251
- npm exec --yes pnpm@10.17.1 -- install --frozen-lockfile
251
+ npm exec --yes pnpm@10.30.0 -- install --frozen-lockfile
252
252
  ```
253
253
 
254
254
  通过以下数组调用命令行工具:
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.22 -->
5
+ <!-- release-skill:release-version: 0.9.24 -->
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,32 +14,34 @@ 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.22** (2026-09-17)
17
+ **0.9.24** (2026-10-02)
18
18
 
19
- 0.9.22 is a local source candidate that fixes two failures found during the real-host rollout of 0.9.21. CodeBuddy and WorkBuddy keep the same frozen Hub identity and installed-payload checks. Foundation dependencies remain pinned to 0.21.0. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
19
+ 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.
20
20
 
21
21
  **Security**
22
22
 
23
- - Hub publication remains a compare-and-swap operation. A partial Hub publication is never rolled back or force-pushed automatically.
24
- - A Hub marketplace reported as github is accepted only on the Hub-backed CodeBuddy/WorkBuddy path. The updater still verifies the checkout origin, branch, HEAD, host-specific index, installed revision, and complete frozen payload.
25
- - WorkBuddy reuses the existing strict residual_process_group envelope only when the child exited successfully and Foundation reports the exact cleanup evidence. Any field mismatch fails closed before later writes.
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.
26
24
 
27
25
  **Changed**
28
26
 
29
- - Skill Family Hub remains the central marketplace, and its release entry continues to use the existing GitHub Git Data API after release verification.
27
+ - 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.
28
+
29
+ **Removed**
30
+
31
+ - 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.
30
32
 
31
33
  **Fixed**
32
34
 
33
- - CodeBuddy 2.148.0 can now update an existing Hub plugin when its official marketplace list reports type github instead of type git.
34
- - WorkBuddy can complete the same existing-plugin update when its embedded CodeBuddy CLI exits successfully but leaves a process group that Foundation has already terminated and verified.
35
+ - 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.
36
+ - 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.
35
37
 
36
38
  **Upgrade Notes**
37
39
 
38
- Upgrade from 0.9.21 before running local host finishing for CodeBuddy or WorkBuddy. No configuration migration is required. Remove the old release-skill standalone marketplace; use the ifoohoo/skill-family-hub repository and Hub-qualified plugin id release-skill@skill-family-hub. Reload or restart each updated host before claiming that 0.9.22 is loaded.
40
+ 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.
39
41
  <!-- release-skill:managed:end id=latest-release -->
40
42
 
41
43
  <!-- release-skill:capability:external-write-boundary -->
42
- > **Current boundary:** v0.9.22 is the current source candidate. This README
44
+ > **Current boundary:** v0.9.24 is the current source candidate. This README
43
45
  > records intended scope and verification boundaries; it is not evidence of
44
46
  > publication, consumer-installation verification, or independent acceptance.
45
47
  > Release availability must be established from the corresponding release records
@@ -63,7 +65,7 @@ Upgrade from 0.9.21 before running local host finishing for CodeBuddy or WorkBud
63
65
  > publish global preflight.
64
66
 
65
67
  <!-- release-skill:capability:safe-first-command -->
66
- > **Production path verified since the v0.1.1 milestone; v0.9.22 is the current
68
+ > **Production path verified since the v0.1.1 milestone; v0.9.24 is the current
67
69
  > source candidate. Its README does not establish publication,
68
70
  > consumer-installation verification, or independent acceptance.**
69
71
  > The npm-installed CLI is the supported user entry. Source checkout
@@ -73,6 +75,10 @@ Upgrade from 0.9.21 before running local host finishing for CodeBuddy or WorkBud
73
75
  > - npm install: `npm install -g release-skill` → `release-skill help`
74
76
  > - source checkout: `node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs" help`
75
77
 
78
+ <a id="release-terms"></a>
79
+
80
+ 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).
81
+
76
82
  ### 0.8.0 scope and verification boundaries
77
83
 
78
84
  For `prepare --workflow config`, public-byte comparison selects the branch:
@@ -92,7 +98,7 @@ checkpoints remain intact and use matching-version recovery. Evidence v1 stays
92
98
  read-only; v2 uses a closed top level with phase extensions in `details`.
93
99
  Summaries and recovery suggestions are diagnostic, never publication authority.
94
100
 
95
- The current 0.9.22 candidate includes the narrow R-05 Hook cache v2 consumer
101
+ The current 0.9.24 candidate includes the narrow R-05 Hook cache v2 consumer
96
102
  path, the public `postverify` path, and the stable isolated install-tree record
97
103
  path (A2/A3). It also adds the explicit-input `verify-records` command and a
98
104
  self-contained Qoder projection, first-class Cursor packaging, and the
@@ -107,7 +113,7 @@ the selected host has loaded the released plugin. This candidate still excludes
107
113
  R-02 safe full-tree inventory. Marketplace installation and live invocation
108
114
  remain host-level post-release checks; Cursor is distributed through its
109
115
  supported local-plugin directory rather than a Hub marketplace entry.
110
- Foundation dependencies are pinned to the three released 0.21.0 packages.
116
+ Foundation dependencies are pinned to the three released 0.22.0 packages.
111
117
  For Kimi/CodeBuddy plans that still use the bundled-family distribution form,
112
118
  verify calls the released
113
119
  `runPluginVerification` entry with the complete frozen payload and records a
@@ -196,7 +202,7 @@ This scope summary is not a remote publication record or a consumer upgrade inst
196
202
 
197
203
  ## Quick start
198
204
 
199
- A release unit is a release object with independently configured version, public files, and distribution targets.
205
+ The release unit and release plan are defined [above](#release-terms); the review steps are the [human review and approval steps](#release-plan-review).
200
206
 
201
207
  ### Selecting a release scope
202
208
 
@@ -290,6 +296,23 @@ Use the existing Skills and choose only the check the request needs:
290
296
 
291
297
  These entry points run release-skill's read-only analyzers. Governance diagnosis does not run target Skills, hooks, builds, or release actions, and it does not treat `prepare`, `verify`, or `release-finish` as static governance checks. When a maintainer asks to set up or publish instead, continue through the existing product Skill with the authorization and safety contract for that action.
292
298
 
299
+ All three entry points accept the optional `--conclusion-output <absolute-path>`
300
+ to save a proof of the check. Without it, no proof is written. With it, the
301
+ command exclusively creates a new file and preserves the original domain result
302
+ and exit code. For example:
303
+
304
+ ```text
305
+ release-skill assess --root <project-root> --offline --conclusion-output <absolute-path> --json
306
+ release-skill read-proof --proof-root <root> --proof <relative> --json
307
+ ```
308
+
309
+ `read-proof` reads an existing release-skill proof beneath the specified root.
310
+ It does not follow `details` references, check the current target again, or
311
+ authenticate the author or publication. A readable proof may record a failed or
312
+ incomplete check; reading it successfully does not make that check pass. To
313
+ refresh the conclusion, rerun the original check with a new output path and
314
+ retain the old proof.
315
+
293
316
  ### Offline historical record verification
294
317
 
295
318
  Use the public command below when a consumer already has an explicit plan,
@@ -301,9 +324,11 @@ release-skill verify-records --plan <path> --approval <path> --target-run <path>
301
324
 
302
325
  The command reads only those paths and emits one JSON object. `CONSISTENT`
303
326
  exits 0, `CONTRADICTED` exits 1, and `INSUFFICIENT` exits 2. It does not scan
304
- `.release-skill`, follow paths embedded in a record, contact a remote, write a
305
- file, or advance release state. A consistent historical chain does not prove
306
- that its records are globally latest or that remote objects still exist.
327
+ `.release-skill`, follow paths embedded in a record, contact a remote, or advance
328
+ release state. Without `--conclusion-output`, it does not write a file. A
329
+ consistent historical chain does not mean `VERIFIED` or that the current target
330
+ passes all checks; it does not prove that its records are globally latest or
331
+ that remote objects still exist.
307
332
 
308
333
  ### Main workflow
309
334
 
@@ -316,7 +341,7 @@ observes the complete frozen payload in a fresh local installation. Real
316
341
  marketplace installation and host invocation remain non-blocking post-release
317
342
  manual tasks; the system does not verify their completion.
318
343
 
319
- 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).
344
+ The release unit and release plan are defined [above](#release-terms); the review steps are the [human review and approval steps](#release-plan-review).
320
345
 
321
346
  ```bash
322
347
  release-skill ship --root "$PROJECT" --target-version 1.2.3 --json
@@ -326,11 +351,7 @@ release-skill ship --root "$PROJECT" --approve --actor "$ACTOR" --json
326
351
  During development, `release-skill hooks validate` runs declared hooks and
327
352
  writes the same content-bound cache receipts that `prepare` consumes.
328
353
 
329
- Run these steps in order. Steps 1-3 are read-only. In step 4, release-skill's own
330
- prepare pipeline is local-only and never invokes remote publish adapters; configured
331
- hooks and gates remain arbitrary unsandboxed processes and can perform local or remote
332
- side effects. Step 4 is therefore local-only only when those processes are absent or
333
- separately audited and explicitly acknowledged. Steps 5-9 require explicit human gates.
354
+ 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.
334
355
 
335
356
  ```bash
336
357
  CLI=(release-skill) # or: CLI=(node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs")
@@ -340,8 +361,13 @@ ACTOR=your-name
340
361
 
341
362
  1. **help** — check the environment:
342
363
  ```bash
343
- "${CLI[@]}" help
364
+ "${CLI[@]}" help --json
344
365
  ```
366
+ Local preparation requires both `status: "READY"` and exit code 0. Check
367
+ `readiness.localPreparation` for local gaps and `readiness.productionPublish`
368
+ for production requirements. `AUTH_CHECK_REQUIRED` still requires authentication
369
+ and permission checks; local readiness does not establish those checks or
370
+ release approval.
345
371
  2. **setup** — first-use only (read-only discovery, then create-once config):
346
372
  ```bash
347
373
  SETUP_SESSION="$(mktemp -d "${TMPDIR:-/tmp}/release-setup.XXXXXX")"
@@ -890,13 +916,8 @@ verify an exact current installation offline; Codex reinstalls when its list
890
916
  does not expose an installation root. Existing frozen installation actions
891
917
  and the Qoder and Cursor paths remain supported without duplicate execution.
892
918
 
893
- Production `prepare` also performs one best-effort retention pass after its new
894
- run evidence exists and before expensive snapshot and hook work. It removes
895
- only superseded complete run lineages and sealed failed prepare directories
896
- that have no valid plan or external-write trace. The current plan, the newest
897
- complete lineage, and every non-terminal, partial, corrupt, ambiguous, or
898
- out-of-bounds lineage remain protected. Retention failures never change the
899
- prepare result.
919
+ Production `prepare` keeps the run directories already present under
920
+ `.release-skill/runs/`, including sealed failed prepares and finished lineages.
900
921
 
901
922
  New `codebuddy-plugin` project configurations must declare `marketplace`
902
923
  explicitly so product families cannot silently inherit another family's Hub.
package/README.zh-CN.md CHANGED
@@ -2,38 +2,40 @@
2
2
 
3
3
  [English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.22 -->
5
+ <!-- release-skill:release-version: 0.9.24 -->
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.22** (2026-09-17)
11
+ **0.9.24** (2026-10-02)
12
12
 
13
- 0.9.22 是一个本地源码候选,修复 0.9.21 真实宿主收尾暴露的两处问题。CodeBuddy 与 WorkBuddy 继续使用同一份冻结 Hub 身份和安装载荷检查。Foundation 依赖保持固定为 0.21.0。本说明不代表已经发布、完成真实宿主验收、完成消费者安装验证或通过独立验收。
13
+ 0.9.24 是一个本地源码候选。生产 prepare 不再删除运行目录。captureBaseline 可以接收不超过 64 MiB 的 git status 列表。冻结提交日期在比较前把 Git 读出的 Z 与计划中的 +00:00 视为同一 UTC 时刻。Foundation 三个依赖继续固定为 0.22.0。本说明不代表已经发布、完成真实宿主验收、完成消费者安装验证或通过独立验收。
14
14
 
15
15
  **安全**
16
16
 
17
- - Hub 发布继续绑定已观察的分支头执行比较后写入。部分发布时不回滚、不覆盖已经成功的远端步骤。
18
- - 只有 Hub-backed CodeBuddy/WorkBuddy 路径接受 github 市场类型。更新器仍核对 checkout 的 origin、分支、HEAD、宿主专用索引、安装修订号和完整冻结载荷。
19
- - WorkBuddy 只复用现有的严格 residual_process_group 信封。子进程必须成功退出,Foundation 也必须返回精确的清理证据;任一字段不符时,在后续写入前失败关闭。
17
+ - Hub 发布仍绑定已观察的分支头执行比较后写入。部分发布时不回滚、不覆盖已成功的远端步骤,也不自动强推。
20
18
 
21
19
  **变更**
22
20
 
23
- - Skill Family Hub 继续作为统一市场;发布完成验证后,仍通过既有 GitHub Git Data API 更新 Hub 条目。
21
+ - Skill Family Hub 继续作为统一市场。发布验证完成后,postVerify Hook 仍使用既有 GitHub Git Data API 更新 Hub 的发布条目。
22
+
23
+ **移除**
24
+
25
+ - 生产 prepare 不再执行 run-retention 清理。它保留 .release-skill/runs/ 中已有的目录,包括封口失败的 prepare 和已经结束的谱系。src/core/run-retention.mjs 不再属于公开文件清单。
24
26
 
25
27
  **修复**
26
28
 
27
- - CodeBuddy 2.148.0 的官方市场列表返回 github 类型时,现在可以继续更新既有 Hub 插件。
28
- - WorkBuddy 的内嵌 CodeBuddy CLI 成功退出,且 Foundation 已清理并验证残留进程组时,现在可以完成同一条既有插件更新路径。
29
+ - captureBaseline 读取 git status 时使用 64 MiB maxBuffer,与 computeWorkspaceDigest 已有的上限相同。状态列表超过 Node 默认的 1 MiB 时,这次采集不再因此失败。
30
+ - 冻结提交校验仍要求作者和提交者时刻等于计划冻结时间。Git 可能把同一 UTC 时刻读成 Z,计划形式仍是 +00:00。两边都先经过 normalizeGitTimestamp 再比较。不同的时刻仍然失败。
29
31
 
30
32
  **升级说明**
31
33
 
32
- 执行 CodeBuddy 或 WorkBuddy 本机宿主收尾前,请从 0.9.21 升级到 0.9.22,无需迁移配置。请移除独立的 `release-skill` 市场,改用 ifoohoo/skill-family-hub 仓库与 Hub 限定插件名 release-skill@skill-family-hub。更新后必须重新加载或重启宿主,确认实际加载 0.9.22 后再报告完成。
34
+ 本候选相对 0.9.23 无需迁移配置。prepare 不再通过删除旧运行目录回收磁盘;这些目录会保留,直到操作者在该命令之外移除。若安装仍使用独立的 `release-skill` 市场,应将其移除,改用 ifoohoo/skill-family-hub 仓库与 Hub 限定插件名 release-skill@skill-family-hub。本文件只说明本地源码候选;正式发布、宿主加载和验收留待后续单独授权。
33
35
  <!-- release-skill:managed:end id=latest-release -->
34
36
 
35
37
  <!-- release-skill:capability:external-write-boundary -->
36
- > **当前边界:** v0.9.22 只是当前源码候选。本 README 记录预期范围与验证边界,
38
+ > **当前边界:** v0.9.24 只是当前源码候选。本 README 记录预期范围与验证边界,
37
39
  > 不代表已经发布、完成消费者安装验证或通过独立验收。
38
40
  > 版本可用性以对应发布记录及发布后验证结果为准。
39
41
  > v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
@@ -49,13 +51,17 @@ release-skill 帮助维护者回答三个问题:准备发布什么、还有哪
49
51
  > 远端唯一性检查在 `publish` 全局预检执行。
50
52
 
51
53
  <!-- release-skill:capability:safe-first-command -->
52
- > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.9.22 是当前源码候选,本 README 不证明该候选已经发布、完成消费者安装验证或通过独立验收。**
54
+ > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.9.24 是当前源码候选,本 README 不证明该候选已经发布、完成消费者安装验证或通过独立验收。**
53
55
  > npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
54
56
  >
55
57
  > **第一条命令:**
56
58
  > - npm 安装:`npm install -g release-skill` → `release-skill help`
57
59
  > - 源码 checkout:`node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs" help`
58
60
 
61
+ <a id="release-terms"></a>
62
+
63
+ 发布单元是独立配置版本、公开文件和分发目标的发布对象。发布计划是供批准前审阅的记录,将目标版本、冻结产物和拟执行的外部动作关联起来;详见[人工审阅与批准步骤](#release-plan-review)。
64
+
59
65
  ### 0.8.0 范围与验证边界
60
66
 
61
67
  `prepare --workflow config` 按公开字节是否变化分支:
@@ -67,7 +73,7 @@ marketplace 委托目标工作区发布的边界不变。
67
73
 
68
74
  旧 production 计划缺少 `sourceAuthority` 时,在外部写入前拒绝。未发生外部写入的计划必须重新 prepare 并批准新摘要,不能补写旧计划或迁移批准。已有 `PARTIAL` 保留检查点,走匹配版本的恢复路径。evidence v1 只读;v2 顶层封闭,阶段扩展放在 `details`。摘要和恢复建议只作诊断,不构成发布权威。
69
75
 
70
- 当前 0.9.22 候选包含窄范围的 R-05 Hook cache v2 消费路径、公开 `postverify`
76
+ 当前 0.9.24 候选包含窄范围的 R-05 Hook cache v2 消费路径、公开 `postverify`
71
77
  路径和稳定隔离安装树记录路径(A2/A3),并增加只接受显式输入的 `verify-records`
72
78
  命令、自包含 Qoder 投影、Cursor 正式打包,以及基于 Foundation 的宿主核验桥。
73
79
  Skill Family Hub 仍是唯一市场来源。
@@ -77,7 +83,7 @@ Skill Family Hub 仍是唯一市场来源。
77
83
  当前仍不包含 R-02 安全整树盘点。市场安装与真实调用继续作为各宿主的发布后检查;Cursor
78
84
  通过其支持的本机插件目录分发,不进入 Hub 市场条目。本范围说明不构成远端发布记录或消费者升级指引。
79
85
 
80
- Foundation 三包精确依赖已发布的 0.21.0。仍采用 bundled-family 分发形态的
86
+ Foundation 三包精确依赖已发布的 0.22.0。仍采用 bundled-family 分发形态的
81
87
  Kimi/CodeBuddy 计划会在 verify 阶段调用正式 `runPluginVerification`,把完整冻结载荷
82
88
  交给 Foundation,并记录最小的 `install-only` 观察收据。Kimi 映射为 `kimi-code`,
83
89
  CodeBuddy 映射为兼容的 `workbuddy`。`observed` 与 `payloadMatches` 只表示机制观察结果,
@@ -152,7 +158,7 @@ CodeBuddy 映射为兼容的 `workbuddy`。`observed` 与 `payloadMatches` 只
152
158
 
153
159
  ## 快速开始
154
160
 
155
- 发布单元是独立配置版本、公开文件和分发目标的发布对象。
161
+ 发布单元和发布计划的定义见[上文](#release-terms),审阅步骤见[人工审阅与批准步骤](#release-plan-review)。
156
162
 
157
163
  ### 选择本轮发布范围
158
164
 
@@ -236,6 +242,18 @@ CodeBuddy、Codex、Kimi Code、Qoder 和 Cursor 的完整命令见 [INSTALL.zh-
236
242
 
237
243
  这些入口只运行 release-skill 自身的只读分析。治理诊断不运行目标 Skill、hook、构建或发布动作,也不把 `prepare`、`verify` 或 `release-finish` 当作静态治理检查。维护者要求实际接入或发布时,继续使用原有业务 Skill,并沿用该动作的授权与安全合同。
238
244
 
245
+ 三个入口均可选用 `--conclusion-output <absolute-path>` 保存本次检查的证明。
246
+ 未指定时不出证;指定时只排他创建新文件,并保留原业务结果和退出码。例如:
247
+
248
+ ```text
249
+ release-skill assess --root <project-root> --offline --conclusion-output <absolute-path> --json
250
+ release-skill read-proof --proof-root <root> --proof <relative> --json
251
+ ```
252
+
253
+ `read-proof` 读取指定根目录下已有的 release-skill 证明。它不跟随 `details` 引用,
254
+ 不重新检查当前目标,也不认证作者或发布事实。可读取的证明也可能记录失败或未完成的检查,
255
+ 读取成功不代表该检查通过。需要刷新结论时,重新运行原检查并写入新路径,保留旧证明。
256
+
239
257
  ### 离线核验历史发布记录
240
258
 
241
259
  消费者已经持有明确的计划、批准、目标 run 和该目标引用的全部前驱 run 时,可以运行:
@@ -246,8 +264,9 @@ release-skill verify-records --plan <path> --approval <path> --target-run <path>
246
264
 
247
265
  该命令只读取这些路径,并输出一个 JSON 对象。`CONSISTENT` 的退出码是 0,
248
266
  `CONTRADICTED` 的退出码是 1,`INSUFFICIENT` 的退出码是 2。它不会扫描
249
- `.release-skill`、跟随记录内嵌路径、访问远端、写文件或推进发布状态。历史链一致也不能
250
- 证明这些记录是全局最新,或远端对象仍然存在。
267
+ `.release-skill`、跟随记录内嵌路径、访问远端或推进发布状态。未指定 `--conclusion-output`
268
+ 时不会写文件。历史链一致不代表 `VERIFIED` 或当前目标全面通过,也不能证明这些记录
269
+ 是全局最新,或远端对象仍然存在。
251
270
 
252
271
  ### 主流程
253
272
 
@@ -257,7 +276,7 @@ hook 授权等待态。受限的 postPublish hook 仍须独立批准,计划批
257
276
  观察完整冻结载荷。真实市场安装和宿主调用仍是发布完成后的非阻塞人工后续任务,
258
277
  系统不核验其完成结果。
259
278
 
260
- 发布计划是供批准前审阅的记录,将目标版本、冻结产物和拟执行的外部动作关联起来;详见[人工审阅与批准步骤](#release-plan-review)。
279
+ 发布单元和发布计划的定义见[上文](#release-terms),审阅步骤见[人工审阅与批准步骤](#release-plan-review)。
261
280
 
262
281
  ```bash
263
282
  release-skill ship --root "$PROJECT" --target-version 1.2.3 --json
@@ -267,10 +286,7 @@ release-skill ship --root "$PROJECT" --approve --actor "$ACTOR" --json
267
286
  开发阶段可运行 `release-skill hooks validate`;它会执行声明的 hooks,并写入
268
287
  `prepare` 可复用的内容绑定收据。
269
288
 
270
- 按以下顺序执行。步骤 1-3 只读。步骤 4 中,release-skill 自身的 prepare 流水线仅在本地写入,
271
- 且不会调用远端发布适配器;配置的 hook 和 gate 仍是可产生本地或远端副作用的任意无沙箱进程。
272
- 只有这些进程不存在,或已单独审计并显式确认副作用时,步骤 4 才能视为“仅本地”。步骤 5-9
273
- 需要显式人工门禁。
289
+ 按以下顺序执行。步骤 1 的 `help`、步骤 2 不带 `--write` 的默认 `setup` 诊断,以及步骤 3 所示的 `assess`,是只读诊断。步骤 2 显式执行 `setup --write --confirm-setup` 时,会在项目中创建配置;同一步骤还会创建、写入并删除本地临时会话文件,这些操作属于本地写入,不涉及远端发布。步骤 4 中,release-skill 自身的 prepare 流水线仅在本地写入,且不会调用远端发布适配器;配置的 hook 和 gate 仍是可产生本地或远端副作用的任意无沙箱进程。只有这些进程不存在,或已单独审计并显式确认副作用时,步骤 4 才能视为“仅本地”。步骤 5-9 需要显式人工门禁。
274
290
 
275
291
  ```bash
276
292
  CLI=(release-skill) # 或:CLI=(node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs")
@@ -280,8 +296,12 @@ ACTOR=your-name
280
296
 
281
297
  1. **help** — 环境检查:
282
298
  ```bash
283
- "${CLI[@]}" help
299
+ "${CLI[@]}" help --json
284
300
  ```
301
+ 本地准备就绪须同时满足 `status: "READY"` 和退出码 0。通过
302
+ `readiness.localPreparation` 查看本地缺口,通过 `readiness.productionPublish`
303
+ 查看生产要求。`AUTH_CHECK_REQUIRED` 表示仍需检查认证和权限;本地就绪不代表
304
+ 这些检查已通过,也不代表获得发布批准。
285
305
  2. **setup** — 首次接入(只读发现,然后 create-once 配置):
286
306
  ```bash
287
307
  SETUP_SESSION="$(mktemp -d "${TMPDIR:-/tmp}/release-setup.XXXXXX")"
@@ -742,10 +762,7 @@ GitHub Release 和受控终端交互,保留三个代理变量;只有仓库 U
742
762
  精确当前安装;Codex 列表没有安装根时仍须正式重装。旧安装动作与 Qoder、Cursor
743
763
  路径继续可用,身份一致的重复目标只执行一次。
744
764
 
745
- 生产 prepare 还会在本轮运行证据建立后、高成本快照和 Hook 之前执行一次尽力清理。
746
- 它只删除已被更新完整谱系取代的终态运行目录,以及没有有效计划或外部写入迹象的封口
747
- 失败 prepare。当前计划、最近完整谱系,以及所有非终态、部分成功、损坏、含糊或越界
748
- 谱系都受保护。清理失败不会改变 prepare 结果。
765
+ 生产 prepare 保留 `.release-skill/runs/` 中已有的运行目录,包括封口失败的 prepare 和已经结束的谱系。
749
766
 
750
767
  新的 `codebuddy-plugin` 项目配置必须显式声明 `marketplace`,避免不同产品线误用同一市场;`marketplaceSource`(消费者添加市场所用的 URL)仍可按需声明。只有已经冻结、且未携带该字段的历史计划会继续按旧规则解释为 `artifact-skill-set`,以保证 reconcile 可以重放原计划。
751
768
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.22",
3
+ "version": "0.9.24",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"