release-skill 0.9.1 → 0.9.4

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 (151) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codebuddy-plugin/plugin.json +1 -1
  4. package/.codex-plugin/plugin.json +2 -2
  5. package/.kimi-plugin/plugin.json +1 -1
  6. package/CHANGELOG.md +78 -0
  7. package/INSTALL.md +2 -2
  8. package/INSTALL.zh-CN.md +2 -2
  9. package/README.md +56 -26
  10. package/README.zh-CN.md +47 -23
  11. package/adapters/claude/.claude-plugin/marketplace.json +1 -1
  12. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  13. package/adapters/claude/bin/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 +22 -1
  17. package/adapters/claude/bin/release-skill.bundle.mjs +4564 -1997
  18. package/adapters/claude/bin/rules.json +1 -1
  19. package/adapters/claude/schemas/release-project.schema.json +4 -0
  20. package/adapters/claude/schemas/release-run.schema.json +41 -1
  21. package/adapters/claude/skills/release-config/SKILL.md +5 -3
  22. package/adapters/claude/skills/release-docs/SKILL.md +4 -2
  23. package/adapters/claude/skills/release-finish/SKILL.md +2 -0
  24. package/adapters/claude/skills/release-help/SKILL.md +18 -3
  25. package/adapters/claude/skills/release-marketplace/SKILL.md +3 -1
  26. package/adapters/claude/skills/release-prepare/SKILL.md +12 -2
  27. package/adapters/claude/skills/release-publish/SKILL.md +17 -10
  28. package/adapters/claude/skills/release-verify/SKILL.md +2 -0
  29. package/adapters/claude/src/schemas/executable-identity-observation.schema.json +162 -0
  30. package/adapters/claude/src/schemas/filesystem-tree-observation.schema.json +18 -2
  31. package/adapters/claude/src/schemas/plugin-verification-request.schema.json +147 -22
  32. package/adapters/claude/src/schemas/plugin-verification-result.schema.json +436 -18
  33. package/adapters/claude/src/schemas/skill-family-directory-verification-request.schema.json +100 -0
  34. package/adapters/claude/src/schemas/skill-family-directory-verification-result.schema.json +193 -0
  35. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  36. package/adapters/codex/bin/consumer-contract-vectors.json +7 -7
  37. package/adapters/codex/bin/error-codes.json +1 -1
  38. package/adapters/codex/bin/foundation-resource-binding.json +1 -1
  39. package/adapters/codex/bin/registry.json +22 -1
  40. package/adapters/codex/bin/release-skill.bundle.mjs +4564 -1997
  41. package/adapters/codex/bin/rules.json +1 -1
  42. package/adapters/codex/schemas/release-project.schema.json +4 -0
  43. package/adapters/codex/schemas/release-run.schema.json +41 -1
  44. package/adapters/codex/skills/release-config/SKILL.md +5 -3
  45. package/adapters/codex/skills/release-docs/SKILL.md +4 -2
  46. package/adapters/codex/skills/release-finish/SKILL.md +2 -0
  47. package/adapters/codex/skills/release-help/SKILL.md +18 -3
  48. package/adapters/codex/skills/release-marketplace/SKILL.md +3 -1
  49. package/adapters/codex/skills/release-prepare/SKILL.md +12 -2
  50. package/adapters/codex/skills/release-publish/SKILL.md +17 -10
  51. package/adapters/codex/skills/release-verify/SKILL.md +2 -0
  52. package/adapters/codex/src/schemas/executable-identity-observation.schema.json +162 -0
  53. package/adapters/codex/src/schemas/filesystem-tree-observation.schema.json +18 -2
  54. package/adapters/codex/src/schemas/plugin-verification-request.schema.json +147 -22
  55. package/adapters/codex/src/schemas/plugin-verification-result.schema.json +436 -18
  56. package/adapters/codex/src/schemas/skill-family-directory-verification-request.schema.json +100 -0
  57. package/adapters/codex/src/schemas/skill-family-directory-verification-result.schema.json +193 -0
  58. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  59. package/adapters/kimi/bin/consumer-contract-vectors.json +7 -7
  60. package/adapters/kimi/bin/error-codes.json +1 -1
  61. package/adapters/kimi/bin/foundation-resource-binding.json +1 -1
  62. package/adapters/kimi/bin/registry.json +22 -1
  63. package/adapters/kimi/bin/release-skill.bundle.mjs +4564 -1997
  64. package/adapters/kimi/bin/rules.json +1 -1
  65. package/adapters/kimi/schemas/release-project.schema.json +4 -0
  66. package/adapters/kimi/schemas/release-run.schema.json +41 -1
  67. package/adapters/kimi/skills/release-config/SKILL.md +5 -3
  68. package/adapters/kimi/skills/release-docs/SKILL.md +4 -2
  69. package/adapters/kimi/skills/release-finish/SKILL.md +2 -0
  70. package/adapters/kimi/skills/release-help/SKILL.md +18 -3
  71. package/adapters/kimi/skills/release-marketplace/SKILL.md +3 -1
  72. package/adapters/kimi/skills/release-prepare/SKILL.md +12 -2
  73. package/adapters/kimi/skills/release-publish/SKILL.md +17 -10
  74. package/adapters/kimi/skills/release-verify/SKILL.md +2 -0
  75. package/adapters/kimi/src/schemas/executable-identity-observation.schema.json +162 -0
  76. package/adapters/kimi/src/schemas/filesystem-tree-observation.schema.json +18 -2
  77. package/adapters/kimi/src/schemas/plugin-verification-request.schema.json +147 -22
  78. package/adapters/kimi/src/schemas/plugin-verification-result.schema.json +436 -18
  79. package/adapters/kimi/src/schemas/skill-family-directory-verification-request.schema.json +100 -0
  80. package/adapters/kimi/src/schemas/skill-family-directory-verification-result.schema.json +193 -0
  81. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  82. package/adapters/workbuddy/bin/consumer-contract-vectors.json +7 -7
  83. package/adapters/workbuddy/bin/error-codes.json +1 -1
  84. package/adapters/workbuddy/bin/foundation-resource-binding.json +1 -1
  85. package/adapters/workbuddy/bin/registry.json +22 -1
  86. package/adapters/workbuddy/bin/release-skill.bundle.mjs +4564 -1997
  87. package/adapters/workbuddy/bin/rules.json +1 -1
  88. package/adapters/workbuddy/schemas/release-project.schema.json +4 -0
  89. package/adapters/workbuddy/schemas/release-run.schema.json +41 -1
  90. package/adapters/workbuddy/skills/release-config/SKILL.md +5 -3
  91. package/adapters/workbuddy/skills/release-docs/SKILL.md +4 -2
  92. package/adapters/workbuddy/skills/release-finish/SKILL.md +2 -0
  93. package/adapters/workbuddy/skills/release-help/SKILL.md +18 -3
  94. package/adapters/workbuddy/skills/release-marketplace/SKILL.md +3 -1
  95. package/adapters/workbuddy/skills/release-prepare/SKILL.md +12 -2
  96. package/adapters/workbuddy/skills/release-publish/SKILL.md +17 -10
  97. package/adapters/workbuddy/skills/release-verify/SKILL.md +2 -0
  98. package/adapters/workbuddy/src/schemas/executable-identity-observation.schema.json +162 -0
  99. package/adapters/workbuddy/src/schemas/filesystem-tree-observation.schema.json +18 -2
  100. package/adapters/workbuddy/src/schemas/plugin-verification-request.schema.json +147 -22
  101. package/adapters/workbuddy/src/schemas/plugin-verification-result.schema.json +436 -18
  102. package/adapters/workbuddy/src/schemas/skill-family-directory-verification-request.schema.json +100 -0
  103. package/adapters/workbuddy/src/schemas/skill-family-directory-verification-result.schema.json +193 -0
  104. package/bin/consumer-contract-vectors.json +7 -7
  105. package/bin/error-codes.json +1 -1
  106. package/bin/foundation-resource-binding.json +1 -1
  107. package/bin/registry.json +22 -1
  108. package/bin/release-skill-cli.mjs +58 -2
  109. package/bin/release-skill.bundle.mjs +4564 -1997
  110. package/bin/rules.json +1 -1
  111. package/package.json +5 -5
  112. package/platform-manifest.json +4 -4
  113. package/references/.render-manifest.json +4 -4
  114. package/references/01-state-machine.md +34 -1
  115. package/references/02-project-config.md +20 -0
  116. package/references/05-evidence-and-errors.md +2 -2
  117. package/schemas/release-project.schema.json +4 -0
  118. package/schemas/release-run.schema.json +41 -1
  119. package/skills/release-config/SKILL.md +5 -3
  120. package/skills/release-docs/SKILL.md +4 -2
  121. package/skills/release-finish/SKILL.md +2 -0
  122. package/skills/release-help/SKILL.md +18 -3
  123. package/skills/release-marketplace/SKILL.md +3 -1
  124. package/skills/release-prepare/SKILL.md +12 -2
  125. package/skills/release-publish/SKILL.md +17 -10
  126. package/skills/release-verify/SKILL.md +2 -0
  127. package/skills-src/release-config/SKILL.md +5 -3
  128. package/skills-src/release-docs/SKILL.md +4 -2
  129. package/skills-src/release-finish/SKILL.md +2 -0
  130. package/skills-src/release-help/SKILL.md +18 -3
  131. package/skills-src/release-marketplace/SKILL.md +3 -1
  132. package/skills-src/release-prepare/SKILL.md +12 -2
  133. package/skills-src/release-publish/SKILL.md +17 -10
  134. package/skills-src/release-verify/SKILL.md +2 -0
  135. package/src/commands/post-release-local.mjs +169 -16
  136. package/src/commands/prepare.mjs +321 -11
  137. package/src/commands/route.mjs +597 -18
  138. package/src/commands/setup.mjs +2 -0
  139. package/src/commands/ship.mjs +183 -2
  140. package/src/commands/verify.mjs +21 -0
  141. package/src/core/adoption-assessment.mjs +59 -0
  142. package/src/core/foundation-plugin-verification.mjs +233 -1
  143. package/src/core/hook-cache.mjs +318 -26
  144. package/src/core/hooks.mjs +8 -1
  145. package/src/producers/foundation-resource-projection.mjs +3 -3
  146. package/src/schemas/executable-identity-observation.schema.json +162 -0
  147. package/src/schemas/filesystem-tree-observation.schema.json +18 -2
  148. package/src/schemas/plugin-verification-request.schema.json +147 -22
  149. package/src/schemas/plugin-verification-result.schema.json +436 -18
  150. package/src/schemas/skill-family-directory-verification-request.schema.json +100 -0
  151. package/src/schemas/skill-family-directory-verification-result.schema.json +193 -0
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.9.1",
12
+ "version": "0.9.4",
13
13
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
14
14
  "author": {
15
15
  "name": "广州市风荷科技有限公司"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.1",
3
+ "version": "0.9.4",
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.1",
3
+ "version": "0.9.4",
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.1",
3
+ "version": "0.9.4",
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.1.",
22
+ "Prepare a release plan for version 0.9.4.",
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.1",
3
+ "version": "0.9.4",
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,83 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.9.4 locale=en baseline=sha256:bd122e1e4f28539503d3bdd702f73cbabc675dc7006f750cc38ff08544b72dc5 -->
4
+ ## [0.9.4] - 2026-09-01
5
+
6
+ 0.9.4 is a local source candidate that lets multi-unit projects freeze and approve an explicit safe release scope while deferring unrelated units. It consumes the three Foundation packages at the exact 0.16.0 release. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
7
+
8
+ ### Security
9
+
10
+ - Ship persists an explicit unit request only before plan freeze and rejects attempts to change it while resuming the same state. Once external writes begin, partial success remains `PARTIAL` and recovery stays forward-only within the original plan.
11
+ - Any host plan remains a qualified frozen-plan path and requires a VERIFIED-run before host acceptance; this source candidate does not provide that acceptance.
12
+
13
+ ### Added
14
+
15
+ - Add repeatable `--unit <id>` selection to prepare and the pre-freeze ship path. Successful explicit selection reports selected and deferred unit IDs plus the exact next prepare command for deferred units.
16
+ - Require an explicitly selected scope to include the complete existing `publicSourceAuthorityReceipt` dependency closure. The command reports missing units and stops before hooks, snapshots, or plan writes instead of expanding the scope automatically.
17
+
18
+ ### Changed
19
+
20
+ - Run unit-scoped document, version, snapshot, distribution, and verification-gate work only for selected units. Project configuration validation, generated-artifact freshness checks, and top-level hooks still cover the whole project.
21
+ - Keep `plan.units` as the only frozen release-scope authority. Publish, reconcile, verify, and distribute continue to consume the complete frozen plan and do not accept a new unit selector.
22
+ - Consume skill-family-contracts, skill-family-harness-node, and skill-family-engineering-kit at the exact 0.16.0 release through their public package-root APIs. The CodeBuddy plugin declares marketplace: release-skill, and both release-finish local-finish examples pass --root <project-root>.
23
+ - For CodeBuddy, treat only the closed plugin-management command set as eligible to consume complete read-only output when the CLI reports childExitCode 0 but leaves a residual process group; retain the Foundation anomaly and completed SIGTERM cleanup as observable facts, run each write command at most once, and require the final plugin version and commit to match exactly. This handling does not extend to WorkBuddy or change release status.
24
+ - Improve Kimi TUI prompt matching for ANSI boxed prompts and `>` characters in command output, so trust-and-install and reload prompts are recognized without treating ordinary output as an input prompt.
25
+
26
+ ### Upgrade Notes
27
+
28
+ Existing commands that omit `--unit` keep the full configured release scope. Multi-unit projects may repeat `--unit` on prepare or on a new ship state to defer unrelated units. Review `releaseScope.deferredUnitIds` and the approval summary before approving. A scope that touches `publicSourceAuthorityReceipt` must include its coordinator and every subject. Do not add `--unit` to publish, reconcile, verify, or distribute; those commands must execute the complete frozen plan. Real-host acceptance can begin only after 0.9.4 is officially published and VERIFIED; the official 0.9.4 entry must be installed or reloaded first. A source candidate, an older installed entry, or the mere existence of plan and run files cannot complete real-host acceptance. Each selected host must complete a first successful update. On the second run, Claude, Kimi, CodeBuddy, and WorkBuddy must report `ALREADY_CURRENT`; Codex may report `UPDATED` only when it reinstalls the same exact 0.9.4 frozen reference, payload validation passes, and `restartRequired=true` is declared.
29
+ <!-- release-skill:changelog:end version=0.9.4 locale=en -->
30
+
31
+
32
+ <!-- release-skill:changelog:start version=0.9.3 locale=en baseline=sha256:96e5f9167abb13203ba308ebacbb081452f8c23e26ff0b377514556338ebdfff -->
33
+ ## [0.9.3] - 2026-08-31
34
+
35
+ 0.9.3 is a local source candidate for the four workflow safeguards and the narrow Hook cache v2 and isolated-install-tree integrations. It consumes the three Foundation packages at the exact 0.15.0 release. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
36
+
37
+ ### Security
38
+
39
+ - Unknown, corrupt, non-stable, or unsupported observations remain fail-closed. A cache hit never replaces a Hook execution when the authority or identity evidence is unavailable, and no TTL or ambient PATH inference is used.
40
+ - Any host plan remains a qualified frozen-plan path and requires a VERIFIED-run before host acceptance; this source candidate does not provide that acceptance.
41
+
42
+ ### Added
43
+
44
+ - Add the opt-in pre-hook public-surface check, ship help and target-version conflict guard, verify lineage guidance, and evidence-based adoption suggestions without adding a new command, state, or approval authority.
45
+ - Add the narrow Hook cache v2 consumer path: absolute-path and validated cwd-relative executable identity, closed input and environment binding, no TTL, and fail-closed cache reuse for bare PATH, PATHEXT, Windows, and unavailable observations while Hooks still execute cold.
46
+ - Add the narrow isolated install-tree record path after a completed host command, recording host-added links without following them and rejecting declared-payload symlinks while preserving legacy full-tree semantics.
47
+
48
+ ### Changed
49
+
50
+ - Consume skill-family-contracts, skill-family-harness-node, and skill-family-engineering-kit at the exact 0.15.0 release through their public package-root APIs.
51
+ - Keep the 0.9.2 production plan PREPARED and immutable as an unpublished historical record now replaced by the 0.9.3 candidate; with an explicit target, only unfinished records that pass complete run, plan, digest/binding, and lineage validation and whose plan target matches participate in current recovery, while all other history remains diagnostics. Without a target, route still shows full-history diagnostics, but workflow selection remains based on the current diff and baseline.
52
+ - The CodeBuddy plugin explicitly declares marketplace: release-skill, and both release-finish local-finish examples pass --root <project-root>.
53
+
54
+ ### Upgrade Notes
55
+
56
+ Real-host acceptance can begin only after 0.9.3 is officially published and VERIFIED; the official 0.9.3 entry must be installed or reloaded first. A source candidate, an older installed entry, or the mere existence of plan and run files cannot complete real-host acceptance. Each selected host must complete a first successful update. On the second run, Claude, Kimi, CodeBuddy, and WorkBuddy must report `ALREADY_CURRENT`; Codex may report `UPDATED` only when it reinstalls the same exact 0.9.3 frozen reference, payload validation passes, and `restartRequired=true` is declared. The 0.9.2 plan was never published and remains an immutable historical record. With an explicit target, only unfinished records that pass complete run, plan, digest/binding, and lineage validation and whose plan target matches participate in current recovery; all other history remains diagnostics. Without a target, route still shows full-history diagnostics, but workflow selection remains based on the current diff and baseline.
57
+ <!-- release-skill:changelog:end version=0.9.3 locale=en -->
58
+
59
+
60
+ <!-- release-skill:changelog:start version=0.9.2 locale=en baseline=sha256:748e2f51de3ee9b773ddc2f0f2ffccb3756065c814ec218dffc738364ad25630 -->
61
+ ## [0.9.2] - 2026-08-30
62
+
63
+ 0.9.2 is a local source candidate for two release-finish maintenance updates and a route recovery maintenance update. Foundation remains pinned to 0.14.0, whose public temporary-workspace and raw-output APIs pass the default Node.js 22 macOS consumer composition. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
64
+
65
+ ### Security
66
+
67
+ - The release-finish maintenance keeps the qualified frozen-plan boundary and the VERIFIED-run requirement; the consumer test combines the public withTemporaryWorkspace and superviseProcess.rawSink APIs under the default Node.js 22 macOS temporary directory.
68
+
69
+ ### Changed
70
+
71
+ - Self-bootstrap now declares marketplace: release-skill explicitly for the CodeBuddy plugin.
72
+ - Both release-finish local-finish examples now pass --root <project-root> explicitly.
73
+ - Route recovery now skips only failed publish attempts that the current evidence-v2 writer contract proves never acquired release authority; unknown or corrupt history remains blocking DIAGNOSE with an exact path and formal next action.
74
+
75
+ ### Upgrade Notes
76
+
77
+ Real-host acceptance can begin only after 0.9.2 is officially published and VERIFIED; the official 0.9.2 entry must be installed or reloaded first. A source candidate, an older installed entry, or the mere existence of plan and run files cannot complete real-host acceptance. Each selected host must complete a first successful update. On the second run, Claude, Kimi, CodeBuddy, and WorkBuddy must report `ALREADY_CURRENT`; Codex may report `UPDATED` only when it reinstalls the same exact 0.9.2 frozen reference, payload validation passes, and `restartRequired=true` is declared. In the current workspace, route still reports 63 DIAGNOSE records and 2 VERIFY records; the first UNKNOWN legacy record has no automatic safe recovery entry and requires the formal diagnostic action.
78
+ <!-- release-skill:changelog:end version=0.9.2 locale=en -->
79
+
80
+
3
81
  <!-- release-skill:changelog:start version=0.9.1 locale=en baseline=sha256:71720f2bbde891ebccda25baf35ef03593d1f6aee1077aeccb3b4af4d2eddfc0 -->
4
82
  ## [0.9.1] - 2026-08-28
5
83
 
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.1 -->
5
+ <!-- release-skill:release-version: 0.9.4 -->
6
6
  ## Prerequisites
7
7
 
8
8
  - Node.js 22.0.0 or later
@@ -114,7 +114,7 @@ tag pinned to the exact version (never the bare repository URL, which installs
114
114
  the latest release or default branch), confirm the trust prompt, then reload:
115
115
 
116
116
  ```
117
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.1
117
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.4
118
118
  /plugins reload
119
119
  ```
120
120
 
package/INSTALL.zh-CN.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.1 -->
5
+ <!-- release-skill:release-version: 0.9.4 -->
6
6
  ## 前置条件
7
7
 
8
8
  - Node.js 22.0.0 或更高版本
@@ -104,7 +104,7 @@ Kimi Code 有交互式插件市场,但**没有可脚本化的非交互安装
104
104
  (切勿使用裸仓库地址,它会安装最新 release 或默认分支),确认信任提示后重新加载:
105
105
 
106
106
  ```
107
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.1
107
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.4
108
108
  /plugins reload
109
109
  ```
110
110
 
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](README.zh-CN.md) · Installation: [English](INSTALL.md) / [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.1 -->
5
+ <!-- release-skill:release-version: 0.9.4 -->
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,38 +14,35 @@ 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.1** (2026-08-28)
17
+ **0.9.4** (2026-09-01)
18
18
 
19
- 0.9.1 is a local source candidate for safer post-release host finishing. It now pins Foundation 0.14.0, whose public temporary-workspace and raw-output APIs pass the default Node.js 22 macOS consumer composition. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
19
+ 0.9.4 is a local source candidate that lets multi-unit projects freeze and approve an explicit safe release scope while deferring unrelated units. It consumes the three Foundation packages at the exact 0.16.0 release. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
20
20
 
21
21
  **Security**
22
22
 
23
- - Real-host acceptance requires a qualified frozen release plan and a VERIFIED run from the same release lineage. The workflow confirms the exact plan digest and selected hosts before any host write. release-skill's optional local finishing never changes the terminal release state.
23
+ - Ship persists an explicit unit request only before plan freeze and rejects attempts to change it while resuming the same state. Once external writes begin, partial success remains `PARTIAL` and recovery stays forward-only within the original plan.
24
+ - Any host plan remains a qualified frozen-plan path and requires a VERIFIED-run before host acceptance; this source candidate does not provide that acceptance.
24
25
 
25
- **Changed**
26
+ **Added**
26
27
 
27
- - Pin skill-family-contracts, skill-family-harness-node, and skill-family-engineering-kit together at 0.14.0. A consumer test now combines the public withTemporaryWorkspace and superviseProcess.rawSink APIs under the default Node.js 22 macOS temporary directory.
28
- - Derive platform-manifest.json version ownership from package.json.version and check manifest freshness before prepare runs hooks, including docs-only and config-only workflows.
29
- - Expand ship's plan-approval summary from the frozen plan so reviewers can see public repositories, branch strategies, tags, npm targets, GitHub Releases, external action targets, waivers, and separately gated postPublish hooks.
30
- - Claude now re-observes the installed plugin after marketplace rebinding before deciding whether a plugin update is still required. Codex keeps the formal frozen-marketplace reinstall path.
31
- - Kimi accepts a managed installation without a .git directory when the package name, version, release tag, installed revision, managed root, and real payload all match. Legacy local-path entries are removed and reinstalled from the pinned release tag in one controlled TUI session.
32
- - CodeBuddy/WorkBuddy can update an existing bundled-family entry only when one remote query proves that the frozen tag and mutable marketplace branch both resolve to the frozen commit. The final installed list must contain exactly one entry with the expected marketplace, version, and revision.
28
+ - Add repeatable `--unit <id>` selection to prepare and the pre-freeze ship path. Successful explicit selection reports selected and deferred unit IDs plus the exact next prepare command for deferred units.
29
+ - Require an explicitly selected scope to include the complete existing `publicSourceAuthorityReceipt` dependency closure. The command reports missing units and stops before hooks, snapshots, or plan writes instead of expanding the scope automatically.
33
30
 
34
- **Fixed**
31
+ **Changed**
35
32
 
36
- - Prevent prepare from freezing a stale platform manifest into the public snapshot or npm tarball.
37
- - Remove the misleading claim that plan approval includes a requiresApproval postPublish checkpoint. Plan approval remains the single normal release-level approval; each gated postPublish hook needs its own approval record, bound to the plan digest and hook id for at most 24 hours.
38
- - Avoid a redundant Claude plugin update after marketplace rebinding has already removed or replaced the old installed entry.
39
- - Classify legacy Kimi local-path installations before managed-root checks so they can follow the explicit migration path.
40
- - Keep CodeBuddy/WorkBuddy host state unchanged when the target is absent, standalone, inaccessible, ambiguous, or inconsistent with the frozen release identity.
33
+ - Run unit-scoped document, version, snapshot, distribution, and verification-gate work only for selected units. Project configuration validation, generated-artifact freshness checks, and top-level hooks still cover the whole project.
34
+ - Keep `plan.units` as the only frozen release-scope authority. Publish, reconcile, verify, and distribute continue to consume the complete frozen plan and do not accept a new unit selector.
35
+ - Consume skill-family-contracts, skill-family-harness-node, and skill-family-engineering-kit at the exact 0.16.0 release through their public package-root APIs. The CodeBuddy plugin declares marketplace: release-skill, and both release-finish local-finish examples pass --root <project-root>.
36
+ - For CodeBuddy, treat only the closed plugin-management command set as eligible to consume complete read-only output when the CLI reports childExitCode 0 but leaves a residual process group; retain the Foundation anomaly and completed SIGTERM cleanup as observable facts, run each write command at most once, and require the final plugin version and commit to match exactly. This handling does not extend to WorkBuddy or change release status.
37
+ - Improve Kimi TUI prompt matching for ANSI boxed prompts and `>` characters in command output, so trust-and-install and reload prompts are recognized without treating ordinary output as an input prompt.
41
38
 
42
39
  **Upgrade Notes**
43
40
 
44
- Real-host acceptance can begin only after 0.9.1 is officially published and VERIFIED; the official 0.9.1 entry must be installed or reloaded first. A source candidate, an older installed entry, or the mere existence of plan and run files cannot complete real-host acceptance. Each selected host must complete a first successful update and a second run that reports `ALREADY_CURRENT`.
41
+ Existing commands that omit `--unit` keep the full configured release scope. Multi-unit projects may repeat `--unit` on prepare or on a new ship state to defer unrelated units. Review `releaseScope.deferredUnitIds` and the approval summary before approving. A scope that touches `publicSourceAuthorityReceipt` must include its coordinator and every subject. Do not add `--unit` to publish, reconcile, verify, or distribute; those commands must execute the complete frozen plan. Real-host acceptance can begin only after 0.9.4 is officially published and VERIFIED; the official 0.9.4 entry must be installed or reloaded first. A source candidate, an older installed entry, or the mere existence of plan and run files cannot complete real-host acceptance. Each selected host must complete a first successful update. On the second run, Claude, Kimi, CodeBuddy, and WorkBuddy must report `ALREADY_CURRENT`; Codex may report `UPDATED` only when it reinstalls the same exact 0.9.4 frozen reference, payload validation passes, and `restartRequired=true` is declared.
45
42
  <!-- release-skill:managed:end id=latest-release -->
46
43
 
47
44
  <!-- release-skill:capability:external-write-boundary -->
48
- > **Current boundary:** v0.9.1 is the current source candidate. This README
45
+ > **Current boundary:** v0.9.4 is the current source candidate. This README
49
46
  > records intended scope and verification boundaries; it is not evidence of
50
47
  > publication, consumer-installation verification, or independent acceptance.
51
48
  > Release availability must be established from the corresponding release records
@@ -69,7 +66,7 @@ Real-host acceptance can begin only after 0.9.1 is officially published and VERI
69
66
  > publish global preflight.
70
67
 
71
68
  <!-- release-skill:capability:safe-first-command -->
72
- > **Production path verified since the v0.1.1 milestone; v0.9.1 is the current
69
+ > **Production path verified since the v0.1.1 milestone; v0.9.4 is the current
73
70
  > source candidate. Its README does not establish publication,
74
71
  > consumer-installation verification, or independent acceptance.**
75
72
  > The npm-installed CLI is the supported user entry. Source checkout
@@ -98,11 +95,12 @@ checkpoints remain intact and use matching-version recovery. Evidence v1 stays
98
95
  read-only; v2 uses a closed top level with phase extensions in `details`.
99
96
  Summaries and recovery suggestions are diagnostic, never publication authority.
100
97
 
101
- This version excludes R-02 safe full-tree inventory, R-05 Hook cache v2,
102
- R-10 historical-release verification implementation, real Kimi/WorkBuddy
103
- public-marketplace installation and invocation gates, and an Audit public
104
- offline release-record verifier.
105
- Foundation dependencies are pinned to the three released 0.14.0 packages.
98
+ The current 0.9.4 candidate includes the narrow R-05 Hook cache v2 consumer
99
+ path and the stable isolated install-tree record path (A2/A3). It still
100
+ excludes R-02 safe full-tree inventory, R-10 historical-release verification
101
+ implementation, real Kimi/WorkBuddy public-marketplace installation and
102
+ invocation gates, and an Audit public offline release-record verifier.
103
+ Foundation dependencies are pinned to the three released 0.16.0 packages.
106
104
  For new bundled-family Kimi/CodeBuddy plans, verify calls the released
107
105
  `runPluginVerification` entry with the complete frozen payload and records a
108
106
  minimal `install-only` observation receipt. Kimi maps to `kimi-code`; CodeBuddy
@@ -194,6 +192,37 @@ This scope summary is not a remote publication record or a consumer upgrade inst
194
192
 
195
193
  A release unit is a release object with independently configured version, public files, and distribution targets.
196
194
 
195
+ ### Selecting a release scope
196
+
197
+ Multi-unit projects can repeat `--unit <id>` before the plan is frozen. Omitting
198
+ the option keeps the existing full-scope behavior:
199
+
200
+ ```bash
201
+ release-skill prepare --root "$PROJECT" --offline \
202
+ --unit runtime --unit plugin --json
203
+ release-skill ship --root "$PROJECT" --target-version 1.2.3 \
204
+ --unit runtime --unit plugin --json
205
+ ```
206
+
207
+ The selected IDs are normalized to project configuration order. Unit-scoped
208
+ version, documentation, snapshot, distribution, and verification-gate work runs
209
+ only for that scope. Full configuration validation, generated-artifact freshness
210
+ checks, and top-level hooks still cover the whole project.
211
+
212
+ An explicit scope that includes any unit named by
213
+ `publicSourceAuthorityReceipt` must include its coordinator and every subject.
214
+ release-skill reports the missing units and stops before hooks or plan writes; it
215
+ does not expand the scope automatically. A successful explicit selection reports
216
+ `releaseScope.selectedUnitIds`, `releaseScope.deferredUnitIds`, and the exact next
217
+ prepare command for the deferred units.
218
+
219
+ After freeze, `plan.units` is the only release-scope authority. Approval covers
220
+ every action in that plan. `publish`, `reconcile`, `verify`, and `distribute` do
221
+ not accept `--unit`; a partial external write remains `PARTIAL` and resumes
222
+ forward within the same frozen plan. A resumed ship state may omit `--unit` and
223
+ reuse its saved request, but cannot change that request or add it to a legacy
224
+ full-scope state.
225
+
197
226
  ### Install
198
227
 
199
228
  - Node.js 22+, Git 2.30+, a target Git repository with at least one commit.
@@ -370,6 +399,7 @@ ACTOR=your-name
370
399
  --plan "$PLAN_PATH" --approval "$APPROVAL_PATH" --json)
371
400
  PUBLISH_RUN_PATH=$(printf '%s\n' "$PUBLISH_JSON" | jq -r '.runPath')
372
401
  ```
402
+ A valid approved production plan may enter `publish` directly; `route` is only a workflow suggestion. `publish` still requires the plan, approval, frozen digest and artifact identity, remote preflight, and fail-closed `PARTIAL` checkpoint rules.
373
403
  `PUBLISHED` is **not** the terminal state.
374
404
  9. **verify** — consumer install check:
375
405
  ```bash
@@ -758,7 +788,7 @@ the first minimal semantic boundary, so the static gate fails closed until the
758
788
  declaration is narrowed to concrete targets.
759
789
 
760
790
  <!-- release-skill:capability:unsupported-scope -->
761
- - **not in the current version:** Hook cache v2 (executor-identity receipts, R-05) — the current version keeps the v1 content-bound hook cache and never imports old run evidence; full consumer install-tree scanning (R-02) — only declared files are verified byte-for-byte; and a real-host (Kimi/WorkBuddy) verification gate — host verification stays a design and can never produce `PASS`/`VERIFIED` in this version;
791
+ - **not in the current version:** full consumer install-tree scanning (R-02) — the current implementation handles only the declared public surface and the stable isolated install-tree record; and a real-host (Kimi/WorkBuddy) verification gate — host verification stays a non-blocking manual follow-up and does not produce `PASS`/`VERIFIED` evidence;
762
792
  - no automatic README generation or source-file overwrite;
763
793
  - no automatic conflict merge or rollback workflow;
764
794
  - no claim that a real production canary has run for marketplace verification;
package/README.zh-CN.md CHANGED
@@ -2,44 +2,41 @@
2
2
 
3
3
  [English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.1 -->
5
+ <!-- release-skill:release-version: 0.9.4 -->
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.1** (2026-08-28)
11
+ **0.9.4** (2026-09-01)
12
12
 
13
- 0.9.1 是发布后本机宿主安全收尾的本地源码候选。三项 Foundation 依赖已精确锁定到 0.14.0;其正式临时工作区与原始输出接口已通过默认 Node.js 22 和 macOS 消费者组合。本说明不代表已经发布、完成真实宿主验收、完成消费者安装验证或通过独立验收。
13
+ 0.9.4 是支持多发布单元项目显式冻结安全发布范围、延期无关单元的本地源码候选。三项 Foundation 依赖均精确消费已发布的 0.16.0。本说明不代表已经发布、完成真实宿主验收、完成消费者安装验证或通过独立验收。
14
14
 
15
15
  **安全**
16
16
 
17
- - 真实宿主验收须使用合格的冻结发布计划与同一发布血缘的 VERIFIED run。工作流须在宿主写入前确认精确的计划摘要和选定宿主。release-skill 的可选本机收尾不会改变发布终态。
17
+ - ship 只在计划冻结前保存显式单元请求;沿用同一状态恢复时不能改变范围。外部写入开始后若出现部分成功,状态仍为 `PARTIAL`,只能在原计划内向前恢复。
18
+ - 任何宿主计划都必须是合格冻结计划,且宿主验收要求 VERIFIED run;本源码候选不提供该验收。
18
19
 
19
- **变更**
20
+ **新增**
20
21
 
21
- - skill-family-contracts、skill-family-harness-node skill-family-engineering-kit 已一起精确锁定到 0.14.0。新增消费者测试,在默认 Node.js 22 与 macOS 临时目录下组合正式 withTemporaryWorkspace 与 superviseProcess.rawSink 接口。
22
- - platform-manifest.json 的版本归属改为从 package.json.version 派生。prepare 在运行 hook 前检查 manifest 新鲜度,docs-only 和 config-only 工作流同样执行该检查。
23
- - ship 现在从冻结计划展开批准摘要。审阅者可直接查看公开仓库、分支策略、标签、npm 目标、GitHub Release、外部动作目标、豁免以及需要单独批准的 postPublish hook。
24
- - Claude 重新绑定市场后,会再次观察本机安装状态,再判断是否仍需更新插件。Codex 继续使用正式的冻结市场重装路径。
25
- - Kimi 的受管安装只要包名、版本、发布标签、已安装修订号、受管根和真实载荷都匹配,即使没有 .git 目录也可通过。旧的本地路径条目会在同一个受控 TUI 会话中先移除,再从钉死的发布标签安装。
26
- - CodeBuddy/WorkBuddy 只在一次远端查询证明冻结标签和可变市场分支都解析到冻结提交后,更新已有的 bundled-family 条目。最终安装列表必须只有一个条目,且市场、版本和修订号都符合预期。
22
+ - prepare 和冻结前的 ship 支持重复传入 `--unit <id>`。显式选择成功后,命令会列出选中单元、延期单元,以及下一次准备延期单元的精确命令。
23
+ - 显式范围命中现有 `publicSourceAuthorityReceipt` 依赖闭包时,必须同时包含 coordinator 和全部 subjects。范围不完整会在 Hook、快照和计划写入前停止,并列出缺少的单元;命令不会自动扩大范围。
27
24
 
28
- **修复**
25
+ **变更**
29
26
 
30
- - 防止 prepare 把陈旧的 platform manifest 冻结进公开快照或 npm tarball。
31
- - 移除“计划批准已包含 requiresApproval postPublish checkpoint”的误导性说明。冻结计划批准仍是正常发布级流程的唯一批准门;每个受限的 postPublish hook 仍需独立批准记录,记录绑定计划摘要与 hook id,有效期最长 24 小时。
32
- - 避免 Claude 重新绑定市场后,旧安装已经移除或替换却仍重复执行插件更新。
33
- - 在检查受管根之前识别 Kimi 的旧本地路径安装,使其进入明确的迁移流程。
34
- - CodeBuddy/WorkBuddy 目标缺失、使用 standalone 来源、远端不可访问、身份含糊或与冻结身份不一致时,保持宿主不变。
27
+ - 版本、发布文档、快照、分发和按单元绑定的验证门只处理选中单元。完整项目配置校验、生成物新鲜度检查和顶层 Hook 仍覆盖整个项目。
28
+ - `plan.units` 继续作为冻结后的唯一发布范围权威。publish、reconcile、verify distribute 仍消费完整冻结计划,不增加单元选择参数。
29
+ - 通过公开包根 API 精确消费 skill-family-contracts、skill-family-harness-node 和 skill-family-engineering-kit 0.16.0。CodeBuddy plugin 显式声明 marketplace: release-skill,两个 release-finish local-finish 示例都显式传入 --root <project-root>。
30
+ - CodeBuddy 只对封闭的插件管理命令集合采用完整只读输出:即使命令报告 childExitCode 0 但残留进程组,仍保留 Foundation 异常和已完成的 SIGTERM 清理事实;每个写命令最多执行一次,并要求最终插件版本和提交精确一致。该处理不扩展到 WorkBuddy,也不改变发布状态。
31
+ - 修正 Kimi TUI 对 ANSI 框线提示以及命令输出中 `>` 字符的识别,使信任安装和重新加载提示能够被识别,同时避免把普通输出误判为输入提示。
35
32
 
36
33
  **升级说明**
37
34
 
38
- 只有 0.9.1 正式发布并达到 VERIFIED,且先安装或重载正式的 0.9.1 入口,才能开始真实宿主验收。源码候选、旧的已安装入口或仅存在计划和运行文件都不能完成真实宿主验收。每个选定宿主都须首次成功更新,第二次运行返回 `ALREADY_CURRENT`。
35
+ 未传 `--unit` 的现有命令继续选择配置中的全部发布单元。多发布单元项目可以在 prepare 或新的 ship 状态上重复传入 `--unit`,延期无关单元。批准前应审阅 `releaseScope.deferredUnitIds` 和批准摘要。范围只要命中 `publicSourceAuthorityReceipt`,就必须包含 coordinator 和全部 subjects。publish、reconcile、verify、distribute 不接受 `--unit`,这些命令必须完整执行冻结计划。只有 0.9.4 正式发布并达到 VERIFIED,且先安装或重载正式的 0.9.4 入口,才能开始真实宿主验收。源码候选、旧的已安装入口或仅存在计划和运行文件都不能完成真实宿主验收。每个选定宿主都须首次成功更新。第二次运行时,Claude、Kimi、CodeBuddy 和 WorkBuddy 必须返回 `ALREADY_CURRENT`;Codex 可以返回 `UPDATED`,但仅当再次安装同一精确 0.9.4 冻结引用、载荷验证通过且声明 `restartRequired=true`。
39
36
  <!-- release-skill:managed:end id=latest-release -->
40
37
 
41
38
  <!-- release-skill:capability:external-write-boundary -->
42
- > **当前边界:** v0.9.1 只是当前源码候选。本 README 记录预期范围与验证边界,
39
+ > **当前边界:** v0.9.4 只是当前源码候选。本 README 记录预期范围与验证边界,
43
40
  > 不代表已经发布、完成消费者安装验证或通过独立验收。
44
41
  > 版本可用性以对应发布记录及发布后验证结果为准。
45
42
  > v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
@@ -55,7 +52,7 @@ release-skill 帮助维护者回答三个问题:准备发布什么、还有哪
55
52
  > 远端唯一性检查在 `publish` 全局预检执行。
56
53
 
57
54
  <!-- release-skill:capability:safe-first-command -->
58
- > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.9.1 是当前源码候选,本 README 不证明该候选已经发布、完成消费者安装验证或通过独立验收。**
55
+ > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.9.4 是当前源码候选,本 README 不证明该候选已经发布、完成消费者安装验证或通过独立验收。**
59
56
  > npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
60
57
  >
61
58
  > **第一条命令:**
@@ -73,9 +70,9 @@ marketplace 委托目标工作区发布的边界不变。
73
70
 
74
71
  旧 production 计划缺少 `sourceAuthority` 时,在外部写入前拒绝。未发生外部写入的计划必须重新 prepare 并批准新摘要,不能补写旧计划或迁移批准。已有 `PARTIAL` 保留检查点,走匹配版本的恢复路径。evidence v1 只读;v2 顶层封闭,阶段扩展放在 `details`。摘要和恢复建议只作诊断,不构成发布权威。
75
72
 
76
- 本版不包含 R-02 安全整树盘点、R-05 Hook cache v2R-10 历史发布验证的产品实现、真实 Kimi/WorkBuddy 公开市场安装与调用门禁或 Audit 公开离线发布记录验证器。本范围说明不构成远端发布记录或消费者升级指引。
73
+ 当前 0.9.4 候选包含窄范围的 R-05 Hook cache v2 消费路径和稳定隔离安装树记录路径(A2/A3)。当前仍不包含 R-02 安全整树盘点、R-10 历史发布验证的产品实现、真实 Kimi/WorkBuddy 公开市场安装与调用门禁或 Audit 公开离线发布记录验证器。本范围说明不构成远端发布记录或消费者升级指引。
77
74
 
78
- Foundation 三包精确依赖已发布的 0.14.0。新生成的 Kimi/CodeBuddy 同仓计划在 verify 阶段调用正式 `runPluginVerification`,把完整冻结载荷交给 Foundation,并记录最小的 `install-only` 观察收据。Kimi 映射为 `kimi-code`,CodeBuddy 映射为兼容的 `workbuddy`。`observed` 与 `payloadMatches` 只表示机制观察结果,不代表远端已发布或 release-skill 已完成领域验证。独立市场来源、真实市场安装和宿主调用仍是人工后续任务。
75
+ Foundation 三包精确依赖已发布的 0.16.0。新生成的 Kimi/CodeBuddy 同仓计划在 verify 阶段调用正式 `runPluginVerification`,把完整冻结载荷交给 Foundation,并记录最小的 `install-only` 观察收据。Kimi 映射为 `kimi-code`,CodeBuddy 映射为兼容的 `workbuddy`。`observed` 与 `payloadMatches` 只表示机制观察结果,不代表远端已发布或 release-skill 已完成领域验证。独立市场来源、真实市场安装和宿主调用仍是人工后续任务。
79
76
 
80
77
  <!-- release-skill:maturity:distribute-v1 -->
81
78
  <!-- release-skill:capability:distribute -->
@@ -149,6 +146,32 @@ Foundation 三包精确依赖已发布的 0.14.0。新生成的 Kimi/CodeBuddy
149
146
 
150
147
  发布单元是独立配置版本、公开文件和分发目标的发布对象。
151
148
 
149
+ ### 选择本轮发布范围
150
+
151
+ 多发布单元项目可以在计划冻结前重复传入 `--unit <id>`。不传该参数时,继续选择
152
+ 配置中的全部单元:
153
+
154
+ ```bash
155
+ release-skill prepare --root "$PROJECT" --offline \
156
+ --unit runtime --unit plugin --json
157
+ release-skill ship --root "$PROJECT" --target-version 1.2.3 \
158
+ --unit runtime --unit plugin --json
159
+ ```
160
+
161
+ 命令会按项目配置顺序整理单元 ID。版本、发布文档、快照、分发和按单元绑定的验证门
162
+ 只处理选中范围;完整配置校验、生成物新鲜度检查和顶层 Hook 仍覆盖整个项目。
163
+
164
+ 显式范围只要包含 `publicSourceAuthorityReceipt` 声明的任一单元,就必须同时包含
165
+ coordinator 和全部 subjects。release-skill 会列出缺少的单元,并在 Hook 或计划写入前
166
+ 停止,不会自动扩大范围。选择成功后,`releaseScope.selectedUnitIds` 和
167
+ `releaseScope.deferredUnitIds` 分别列出本轮单元与延期单元;返回结果还会给出下一次
168
+ 准备延期单元的精确命令。
169
+
170
+ 计划冻结后,`plan.units` 是唯一发布范围权威,批准覆盖计划内的全部动作。
171
+ `publish`、`reconcile`、`verify` 和 `distribute` 不接受 `--unit`。外部写入部分成功时
172
+ 仍进入 `PARTIAL`,只能在同一冻结计划内向前恢复。恢复已有 ship 状态时可以省略
173
+ `--unit` 并沿用首次请求,但不能改变该请求,也不能给旧的全范围状态追加该参数。
174
+
152
175
  ### 安装
153
176
 
154
177
  - Node.js 22+、Git 2.30+、至少已有一个提交的目标 Git 仓库。
@@ -310,6 +333,7 @@ ACTOR=your-name
310
333
  --plan "$PLAN_PATH" --approval "$APPROVAL_PATH" --json)
311
334
  PUBLISH_RUN_PATH=$(printf '%s\n' "$PUBLISH_JSON" | jq -r '.runPath')
312
335
  ```
336
+ 持有合法批准的 production plan 时可以直接进入 `publish`;`route` 只是工作流建议。`publish` 仍要求计划、批准、冻结摘要与制品身份、远端预检,并在检查点失败时保持 fail-closed 的 `PARTIAL` 规则。
313
337
  `PUBLISHED` **不是**终态。
314
338
  9. **verify** — 消费者安装检查:
315
339
  ```bash
@@ -640,7 +664,7 @@ standalone 来源、远端不可访问或身份含糊时仍转人工处理,不
640
664
  静态门禁会阻断,直到入口声明收窄为具体目标。
641
665
 
642
666
  <!-- release-skill:capability:unsupported-scope -->
643
- - **当前版本不含:** Hook cache v2(执行器身份收据,R-05)——当前版本保持 v1 内容绑定缓存,且从不导入旧运行证据;消费者安装整树盘点(R-02)——只对声明文件做逐字节核对;真实宿主(Kimi/WorkBuddy)验证门禁——宿主验证仍是设计,本版本中不能产生 `PASS` 或 `VERIFIED`;
667
+ - **当前版本不含:** 消费者安装整树盘点(R-02)——当前版本只处理声明的公开表面和稳定隔离安装树记录;真实宿主(Kimi/WorkBuddy)验证门禁——宿主验证仍是非阻断的人工后续任务,不产生 `PASS` 或 `VERIFIED` 证据;
644
668
  - 不自动生成 README,不覆盖项目源文件;
645
669
  - 不自动合并冲突,也不要求回滚工作流;
646
670
  - 不声称已经替项目完成真实生产 canary,不声称已完成真实插件市场验证;
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.9.1",
12
+ "version": "0.9.4",
13
13
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
14
14
  "author": {
15
15
  "name": "广州市风荷科技有限公司"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.1",
3
+ "version": "0.9.4",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "kind": "skill-family.contracts.consumer-contract-vectors",
4
- "foundationVersion": "0.14.0",
4
+ "foundationVersion": "0.16.0",
5
5
  "sets": [
6
6
  {
7
7
  "capabilityId": "foundation.contracts.object-validation",
@@ -15,7 +15,7 @@
15
15
  "vectorId": "foundation.contracts.object-validation.consumer-v1.indeterminate",
16
16
  "vectorSetId": "foundation.contracts.object-validation.consumer-v1",
17
17
  "capabilityId": "foundation.contracts.object-validation",
18
- "foundationVersion": "0.14.0",
18
+ "foundationVersion": "0.16.0",
19
19
  "contractId": "skill-family-contracts:validateDocument",
20
20
  "caseClass": "indeterminate",
21
21
  "strategy": "real-pure",
@@ -31,7 +31,7 @@
31
31
  "vectorId": "foundation.contracts.object-validation.consumer-v1.negative",
32
32
  "vectorSetId": "foundation.contracts.object-validation.consumer-v1",
33
33
  "capabilityId": "foundation.contracts.object-validation",
34
- "foundationVersion": "0.14.0",
34
+ "foundationVersion": "0.16.0",
35
35
  "contractId": "skill-family-contracts:validateDocument",
36
36
  "caseClass": "negative",
37
37
  "strategy": "real-pure",
@@ -47,7 +47,7 @@
47
47
  "vectorId": "foundation.contracts.object-validation.consumer-v1.positive",
48
48
  "vectorSetId": "foundation.contracts.object-validation.consumer-v1",
49
49
  "capabilityId": "foundation.contracts.object-validation",
50
- "foundationVersion": "0.14.0",
50
+ "foundationVersion": "0.16.0",
51
51
  "contractId": "skill-family-contracts:validateDocument",
52
52
  "caseClass": "positive",
53
53
  "strategy": "real-pure",
@@ -71,7 +71,7 @@
71
71
  "vectorId": "foundation.harness.atomic-write.consumer-v1.indeterminate",
72
72
  "vectorSetId": "foundation.harness.atomic-write.consumer-v1",
73
73
  "capabilityId": "foundation.harness.atomic-write",
74
- "foundationVersion": "0.14.0",
74
+ "foundationVersion": "0.16.0",
75
75
  "contractId": "skill-family-harness-node:writeFileAtomic",
76
76
  "caseClass": "indeterminate",
77
77
  "strategy": "official-fake",
@@ -84,7 +84,7 @@
84
84
  "vectorId": "foundation.harness.atomic-write.consumer-v1.negative",
85
85
  "vectorSetId": "foundation.harness.atomic-write.consumer-v1",
86
86
  "capabilityId": "foundation.harness.atomic-write",
87
- "foundationVersion": "0.14.0",
87
+ "foundationVersion": "0.16.0",
88
88
  "contractId": "skill-family-harness-node:writeFileAtomic",
89
89
  "caseClass": "negative",
90
90
  "strategy": "official-fake",
@@ -97,7 +97,7 @@
97
97
  "vectorId": "foundation.harness.atomic-write.consumer-v1.positive",
98
98
  "vectorSetId": "foundation.harness.atomic-write.consumer-v1",
99
99
  "capabilityId": "foundation.harness.atomic-write",
100
- "foundationVersion": "0.14.0",
100
+ "foundationVersion": "0.16.0",
101
101
  "contractId": "skill-family-harness-node:writeFileAtomic",
102
102
  "caseClass": "positive",
103
103
  "strategy": "official-fake",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "kind": "skill-family.contracts.error-codes",
4
- "contractsVersion": "1.14.0",
4
+ "contractsVersion": "1.15.0",
5
5
  "policy": {
6
6
  "format": "^SFC[0-9]{4}$",
7
7
  "ranges": [