release-skill 0.5.1 → 0.6.0

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 (94) 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 +13 -0
  7. package/INSTALL.md +2 -2
  8. package/INSTALL.zh-CN.md +2 -2
  9. package/README.md +14 -14
  10. package/README.zh-CN.md +15 -15
  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/release-skill.bundle.mjs +3226 -565
  14. package/adapters/claude/schemas/.render-manifest.json +6 -6
  15. package/adapters/claude/schemas/release-plan.schema.json +401 -2
  16. package/adapters/claude/schemas/release-project.schema.json +291 -0
  17. package/adapters/claude/schemas/release-run.schema.json +59 -6
  18. package/adapters/claude/skills/release-config/SKILL.md +140 -0
  19. package/adapters/claude/skills/release-docs/SKILL.md +106 -0
  20. package/adapters/claude/skills/release-help/SKILL.md +39 -0
  21. package/adapters/claude/skills/release-marketplace/SKILL.md +147 -0
  22. package/adapters/claude/skills/release-publish/SKILL.md +25 -6
  23. package/adapters/claude/skills/release-verify/SKILL.md +10 -0
  24. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  25. package/adapters/codex/bin/release-skill.bundle.mjs +3226 -565
  26. package/adapters/codex/schemas/.render-manifest.json +6 -6
  27. package/adapters/codex/schemas/release-plan.schema.json +401 -2
  28. package/adapters/codex/schemas/release-project.schema.json +291 -0
  29. package/adapters/codex/schemas/release-run.schema.json +59 -6
  30. package/adapters/codex/skills/release-config/SKILL.md +147 -0
  31. package/adapters/codex/skills/release-docs/SKILL.md +113 -0
  32. package/adapters/codex/skills/release-help/SKILL.md +39 -0
  33. package/adapters/codex/skills/release-marketplace/SKILL.md +154 -0
  34. package/adapters/codex/skills/release-publish/SKILL.md +25 -6
  35. package/adapters/codex/skills/release-verify/SKILL.md +10 -0
  36. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  37. package/adapters/kimi/bin/release-skill.bundle.mjs +3226 -565
  38. package/adapters/kimi/schemas/.render-manifest.json +6 -6
  39. package/adapters/kimi/schemas/release-plan.schema.json +401 -2
  40. package/adapters/kimi/schemas/release-project.schema.json +291 -0
  41. package/adapters/kimi/schemas/release-run.schema.json +59 -6
  42. package/adapters/kimi/skills/release-config/SKILL.md +147 -0
  43. package/adapters/kimi/skills/release-docs/SKILL.md +113 -0
  44. package/adapters/kimi/skills/release-help/SKILL.md +39 -0
  45. package/adapters/kimi/skills/release-marketplace/SKILL.md +154 -0
  46. package/adapters/kimi/skills/release-publish/SKILL.md +25 -6
  47. package/adapters/kimi/skills/release-verify/SKILL.md +10 -0
  48. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  49. package/adapters/workbuddy/bin/release-skill.bundle.mjs +3226 -565
  50. package/adapters/workbuddy/schemas/.render-manifest.json +6 -6
  51. package/adapters/workbuddy/schemas/release-plan.schema.json +401 -2
  52. package/adapters/workbuddy/schemas/release-project.schema.json +291 -0
  53. package/adapters/workbuddy/schemas/release-run.schema.json +59 -6
  54. package/adapters/workbuddy/skills/release-config/SKILL.md +140 -0
  55. package/adapters/workbuddy/skills/release-docs/SKILL.md +106 -0
  56. package/adapters/workbuddy/skills/release-help/SKILL.md +39 -0
  57. package/adapters/workbuddy/skills/release-marketplace/SKILL.md +147 -0
  58. package/adapters/workbuddy/skills/release-publish/SKILL.md +25 -6
  59. package/adapters/workbuddy/skills/release-verify/SKILL.md +10 -0
  60. package/bin/release-skill-cli.mjs +235 -7
  61. package/bin/release-skill.bundle.mjs +3226 -565
  62. package/package.json +3 -2
  63. package/platform-manifest.json +359 -0
  64. package/references/.render-manifest.json +9 -9
  65. package/references/02-project-config.md +35 -0
  66. package/references/05-evidence-and-errors.md +44 -0
  67. package/references/06-adapter-contract.md +13 -0
  68. package/schemas/.render-manifest.json +6 -6
  69. package/schemas/release-plan.schema.json +401 -2
  70. package/schemas/release-project.schema.json +291 -0
  71. package/schemas/release-run.schema.json +59 -6
  72. package/skills/release-config/SKILL.md +140 -0
  73. package/skills/release-docs/SKILL.md +106 -0
  74. package/skills/release-help/SKILL.md +39 -0
  75. package/skills/release-marketplace/SKILL.md +147 -0
  76. package/skills/release-publish/SKILL.md +25 -6
  77. package/skills/release-verify/SKILL.md +10 -0
  78. package/skills-src/release-config/SKILL.md +140 -0
  79. package/skills-src/release-docs/SKILL.md +106 -0
  80. package/skills-src/release-help/SKILL.md +39 -0
  81. package/skills-src/release-marketplace/SKILL.md +147 -0
  82. package/skills-src/release-publish/SKILL.md +25 -6
  83. package/skills-src/release-verify/SKILL.md +10 -0
  84. package/src/adapters/contract.mjs +5 -0
  85. package/src/adapters/distribute-git.mjs +625 -0
  86. package/src/commands/distribute.mjs +1078 -0
  87. package/src/commands/lineage.mjs +616 -0
  88. package/src/commands/prepare.mjs +335 -76
  89. package/src/commands/route.mjs +686 -0
  90. package/src/commands/ship.mjs +45 -1
  91. package/src/commands/verify.mjs +176 -0
  92. package/src/core/baseline-advance.mjs +185 -0
  93. package/src/core/checkpoints.mjs +25 -0
  94. package/src/core/postpublish.mjs +315 -0
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.5.1",
12
+ "version": "0.6.0",
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.5.1",
3
+ "version": "0.6.0",
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.5.1",
3
+ "version": "0.6.0",
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.5.1",
3
+ "version": "0.6.0",
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.5.1.",
22
+ "Prepare a release plan for version 0.6.0.",
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.5.1",
3
+ "version": "0.6.0",
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,18 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.6.0 locale=en baseline=sha256:1942e4534cc9ab36065168471875ba8c4648c73328a20ef3ee6a7a53eb1f1b7d -->
4
+ ## [0.6.0] - 2026-08-18
5
+
6
+ v0.6.0 automates the most error-prone bookkeeping step of the release loop: after a release reaches VERIFIED, verify now advances each unit's previousPublicBaseline in project.yaml to the just-published commit, tree, and manifest digest recorded in the frozen plan. The advance is local-only, idempotent, validated with automatic rollback, and commits the config file on its own only when it was clean before the write, so the drift gate always sees a truthful previous public baseline without anyone hand-copying hashes.
7
+
8
+ ### Added
9
+
10
+ - **Automatic baseline advance (baseline-advance)**: after `verify` reaches `VERIFIED`, every `mode: bound` unit's `previousPublicBaseline` (`commit`, `tree`, `manifestDigest`) is advanced to the published values derived from the frozen plan's `push-snapshot` binding — never recomputed from workspace state. The rewritten `project.yaml` preserves comments, is re-validated with `loadProjectConfig`, and is restored byte-for-byte if validation fails. The advance never demotes `VERIFIED`: failures are recorded in evidence and reported for manual handling.
11
+ - **Clean-worktree commit policy**: the baseline advance auto-commits the config file in an isolated commit only when `project.yaml` had no staged or unstaged changes before the write; a dirty worktree leaves the file written but uncommitted for human review, and a missing or broken git fails safe to never committing.
12
+ - **Ship-state traceability**: `ship` persists the verify `baselineAdvance` result (`advanced` / `already-current` / `committed` / `failed`) in its durable state, and the `verify` human-readable output reports the advance outcome line.
13
+ <!-- release-skill:changelog:end version=0.6.0 locale=en -->
14
+
15
+
3
16
  <!-- release-skill:changelog:start version=0.5.1 locale=en baseline=sha256:2a8dc4241570c0919e55da270233728963ba1cda347c95c775678ec89a9f0ac0 -->
4
17
  ## [0.5.1] - 2026-08-17
5
18
 
package/INSTALL.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.5.1 -->
5
+ <!-- release-skill:release-version: 0.6.0 -->
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.5.1
117
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.6.0
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.5.1 -->
5
+ <!-- release-skill:release-version: 0.6.0 -->
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.5.1
107
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.6.0
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.5.1 -->
5
+ <!-- release-skill:release-version: 0.6.0 -->
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,24 +14,19 @@ 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.5.1** (2026-08-17)
17
+ **0.6.0** (2026-08-18)
18
18
 
19
- v0.5.1 fixes three frozen-0.5.0 defects explicit hook environment delivery (envAllowlist now reaches prepare hooks), a 64 MiB baseline maxBuffer for large tracked indexes, and the prefixed skill-directory fallback for marketplace-install preflight/observe bumps the Skill Family Foundation dependencies to the released 0.5.0 packages, and hardens the release chain so every later release must bind the previous public release commit instead of degrading to an orphan root commit.
19
+ v0.6.0 automates the most error-prone bookkeeping step of the release loop: after a release reaches VERIFIED, verify now advances each unit's previousPublicBaseline in project.yaml to the just-published commit, tree, and manifest digest recorded in the frozen plan. The advance is local-only, idempotent, validated with automatic rollback, and commits the config file on its own only when it was clean before the write, so the drift gate always sees a truthful previous public baseline without anyone hand-copying hashes.
20
20
 
21
- **Changed**
21
+ **Added**
22
22
 
23
- - **Foundation 0.5.0 upgrade**: `skill-family-contracts` and `skill-family-harness-node` dependencies bumped from 0.4.0 to 0.5.0 (npm latest); the package-name import bridge keeps working unchanged and the harness-node 0.5.0 export surface was re-verified (`publishFileExclusive`, token-lock five functions, `HARNESS_ERROR_KINDS`).
24
- - **Chain hardening (chain-integrity)**: `push-snapshot` now requires an explicit `branchStrategy` (the historical `create-release-branch` default that produced orphan root commits is gone); `create-release-branch` is only valid when `previousPublicBaseline.mode=none`; a production online prepare with `mode=none` on a repository that already carries release tags fails closed with `CHAIN_GAP`, demanding a bound baseline at the previous release commit; online `assess` registers a warning-level `VERSION_SEQUENCE_GAP` when the target version jumps the release sequence (e.g. 0.1.1 → 0.1.3 with no v0.1.2 tag), without blocking.
25
-
26
- **Fixed**
27
-
28
- - **Hook environment delivery (hook-env-delivery)**: `runDeclaredHooks` now accepts an explicit `env` option and merges it into the hook context (`hookFn(hook, { root, env })`); prepare and `hooks validate` inject the invoking shell's environment, so `hooks.*.envAllowlist` keys exported by the caller finally reach the hook subprocess. Allowlist semantics are unchanged — the hook runner still reads allowlisted keys exclusively from the explicit map, never from `process.env` directly.
29
- - **Large-tracked-index baseline (baseline-maxbuffer)**: `computeWorkspaceDigest` now runs its three git subprocesses with a 64 MiB `maxBuffer` (official fix 39c631f); workspaces with thousands of tracked files (measured 8494 tracked files → 1,519,151 B `ls-files -s` stdout) no longer fail with `ERR_CHILD_PROCESS_STDIO_MAXBUFFER`.
30
- - **Prefixed skill-directory resolution (entry-skill-prefix)**: marketplace-install preflight and observe now fall back from `skills/<entrySkill>/SKILL.md` to `skills/<plugin>-<entrySkill>/SKILL.md` (plugin from the action parameters, D-ACA-30 platform physical names); candidate builds with prefixed skill directories pass preflight and observe instead of failing with `entry skill not found`.
23
+ - **Automatic baseline advance (baseline-advance)**: after `verify` reaches `VERIFIED`, every `mode: bound` unit's `previousPublicBaseline` (`commit`, `tree`, `manifestDigest`) is advanced to the published values derived from the frozen plan's `push-snapshot` binding never recomputed from workspace state. The rewritten `project.yaml` preserves comments, is re-validated with `loadProjectConfig`, and is restored byte-for-byte if validation fails. The advance never demotes `VERIFIED`: failures are recorded in evidence and reported for manual handling.
24
+ - **Clean-worktree commit policy**: the baseline advance auto-commits the config file in an isolated commit only when `project.yaml` had no staged or unstaged changes before the write; a dirty worktree leaves the file written but uncommitted for human review, and a missing or broken git fails safe to never committing.
25
+ - **Ship-state traceability**: `ship` persists the verify `baselineAdvance` result (`advanced` / `already-current` / `committed` / `failed`) in its durable state, and the `verify` human-readable output reports the advance outcome line.
31
26
  <!-- release-skill:managed:end id=latest-release -->
32
27
 
33
28
  <!-- release-skill:capability:external-write-boundary -->
34
- > **Current boundary:** v0.5.1 is the current source candidate; v0.4.1 remains
29
+ > **Current boundary:** v0.6.0 is the current source candidate; v0.4.1 remains
35
30
  > the latest published release (v0.2.2 previously held
36
31
  > published status before the platform verification convergence fix was added).
37
32
  > v0.1.1 completed a real production release to GitHub and npm — the first
@@ -50,7 +45,7 @@ v0.5.1 fixes three frozen-0.5.0 defects — explicit hook environment delivery (
50
45
  > publish global preflight.
51
46
 
52
47
  <!-- release-skill:capability:safe-first-command -->
53
- > **Production path verified since the v0.1.1 milestone; v0.5.1 is the current
48
+ > **Production path verified since the v0.1.1 milestone; v0.6.0 is the current
54
49
  > source candidate and v0.4.1 is the latest published release.** The npm-installed CLI is the supported user entry. Source checkout
55
50
  > is the development/contributor fallback.
56
51
  >
@@ -58,6 +53,11 @@ v0.5.1 fixes three frozen-0.5.0 defects — explicit hook environment delivery (
58
53
  > - npm install: `npm install -g release-skill` → `release-skill help`
59
54
  > - source checkout: `node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs" help`
60
55
 
56
+ <!-- release-skill:maturity:distribute-v1 -->
57
+ <!-- release-skill:capability:distribute -->
58
+ > **Distribute maturity v1.0 (W2 closure):** postPublish distribution is available as a separate `distribute` command for mirror and marketplace-index actions. After `publish` reaches PUBLISHED status, run `ship distribute` or manually invoke `release-skill distribute --plan <path> --approval <path> --json`. The distribute action implements fail-closed semantics: NO_CHANGE on empty diff (no commit/tag/push), REMOTE_CONFLICT on tag move attempts (never force-push), AUTH_MISSING when external writes are not authorized. Supported modes: `--dry-run` (local commit+tag only), `--json` (structured output), `--help` (command reference). Tag commitment guarantees version consistency — distributed plugin.json.version must match input tag. See [docs/design/2026-08-17-postpublish-distribution.md](../../docs/design/2026-08-17-postpublish-distribution.md) for detailed architecture.
59
+ <!-- release-skill:capability:distribute -->
60
+
61
61
  <!-- release-skill:maturity:v0.1-boundary -->
62
62
  <!-- release-skill:maturity:boundary -->
63
63
  > **Safe defaults:** the recommended path is `help → assess → prepare --offline →
package/README.zh-CN.md CHANGED
@@ -2,30 +2,25 @@
2
2
 
3
3
  [English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.5.1 -->
5
+ <!-- release-skill:release-version: 0.6.0 -->
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.5.1** (2026-08-17)
11
+ **0.6.0** (2026-08-18)
12
12
 
13
- v0.5.1 修复冻结 0.5.0 的三项缺陷——hook 显式环境送达(envAllowlist 终于作用于 prepare hooks)、大索引基线 64 MiB maxBuffer、marketplace-install preflight/observe 的带前缀技能目录回退——并把 Skill Family Foundation 依赖提升到已发布的 0.5.0 包,同时加固发布链:后续任何发布都必须绑定上一公开发布提交,不再退化为孤儿根提交。
13
+ v0.6.0 把发布循环中最容易出错的一步记账工作自动化了:发布到达 VERIFIED 后,verify 会自动把 project.yaml 中每个 unit previousPublicBaseline 推进到本次已发布的 commit、tree manifest digest,数值全部取自冻结计划的记录。推进只写本地、幂等、写回后自动校验并在失败时原样回滚,并且只在写回前文件干净时才用独立提交落库——漂移门禁从此总是看到真实的前序公开基线,不再需要任何人手工抄写哈希。
14
14
 
15
- **变更**
15
+ **新增**
16
16
 
17
- - **Foundation 0.5.0 升级**:`skill-family-contracts` `skill-family-harness-node` 依赖由 0.4.0 提升至 0.5.0(npm latest);包名 import 桥无需改动,harness-node 0.5.0 导出面已逐项复核(`publishFileExclusive`、token-lock 五函数、`HARNESS_ERROR_KINDS`)。
18
- - **链加固(chain-integrity)**:`push-snapshot` 现要求显式 `branchStrategy`(历史上产生孤儿根提交的 `create-release-branch` 默认值已移除);`create-release-branch` 仅在 `previousPublicBaseline.mode=none` 时合法;生产在线 prepare 在公开仓已有发布标签时仍以 `mode=none` 冻结计划会以 `CHAIN_GAP` 失败关闭,要求把基线绑定到上一发布提交;在线 `assess` 检测到版本序列跳号(如 0.1.1→0.1.3 且无 v0.1.2 标签)时登记 `VERSION_SEQUENCE_GAP` 警告,不阻断。
19
-
20
- **修复**
21
-
22
- - **Hook 环境送达(hook-env-delivery)**:`runDeclaredHooks` 新增显式 `env` 选项并并入 hook 上下文(`hookFn(hook, { root, env })`);prepare 与 `hooks validate` 注入调用方 shell 的环境,`hooks.*.envAllowlist` 中由调用方导出的键终于能到达 hook 子进程。allowlist 语义不变——hook 运行器仍只从显式映射读取白名单键,绝不直接回退 process.env。
23
- - **大索引基线(baseline-maxbuffer)**:`computeWorkspaceDigest` 的三个 git 子进程统一设置 64 MiB `maxBuffer`(官方修复 39c631f);tracked 文件数较多的工作区(实测 8494 个文件 → `ls-files -s` 输出 1,519,151 B)不再报 `ERR_CHILD_PROCESS_STDIO_MAXBUFFER`。
24
- - **带前缀技能目录解析(entry-skill-prefix)**:marketplace-install 的 preflight 与 observe 从 `skills/<entrySkill>/SKILL.md` 未命中时回退 `skills/<plugin>-<entrySkill>/SKILL.md`(plugin 取 action 参数,D-ACA-30 平台物理名);带前缀技能目录的候选构建不再以 `entry skill not found` 失败。
17
+ - **基线自动推进(baseline-advance)**:`verify` 到达 `VERIFIED` 后,每个 `mode: bound` unit `previousPublicBaseline`(`commit`、`tree`、`manifestDigest`)自动推进到冻结计划 `push-snapshot` 绑定中的已发布值——绝不从工作区状态重新计算。写回的 `project.yaml` 保留注释,经 `loadProjectConfig` 重新校验,校验失败时逐字节还原。推进失败不会降级 `VERIFIED`:失败记录进证据并提示人工处理。
18
+ - **干净工作区提交策略**:仅当写回前 `project.yaml` 没有任何暂存或未暂存改动时,基线推进才用一次独立提交只包含该文件;工作区有在途改动时只落盘不提交、留给人工复核;git 缺失或损坏时安全失败为永不提交。
19
+ - **ship 状态可追溯**:`ship` 把 verify 的 `baselineAdvance` 结果(`advanced` / `already-current` / `committed` / `failed`)写入持久状态;`verify` 的人类可读输出新增推进结果行。
25
20
  <!-- release-skill:managed:end id=latest-release -->
26
21
 
27
22
  <!-- release-skill:capability:external-write-boundary -->
28
- > **当前边界:** v0.5.1 是当前源码候选,v0.4.1 仍是最新已发布版本(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
23
+ > **当前边界:** v0.6.0 是当前源码候选,v0.4.1 仍是最新已发布版本(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
29
24
  > v0.1.1 已完成 GitHub 与 npm 的
30
25
  > 真实生产发布,是首次生产验证的历史里程碑,并从冻结 Git ref 完成精确 npm
31
26
  > 安装及 Claude/Codex 消费者安装验证;"当前发布版本"与"首次生产验证里程碑"
@@ -38,20 +33,25 @@ v0.5.1 修复冻结 0.5.0 的三项缺陷——hook 显式环境送达(envAllo
38
33
  > 远端唯一性检查在 `publish` 全局预检执行。
39
34
 
40
35
  <!-- release-skill:capability:safe-first-command -->
41
- > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.5.1 是当前源码候选,v0.4.1 是最新已发布版本。**
36
+ > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.6.0 是当前源码候选,v0.4.1 是最新已发布版本。**
42
37
  > npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
43
38
  >
44
39
  > **第一条命令:**
45
40
  > - npm 安装:`npm install -g release-skill` → `release-skill help`
46
41
  > - 源码 checkout:`node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs" help`
47
42
 
43
+ <!-- release-skill:maturity:distribute-v1 -->
44
+ <!-- release-skill:capability:distribute -->
45
+ > **分发能力 v1.0(W2 完成):** postPublish 分发作为独立的 `distribute` 命令可用,支持镜像和 Marketplace 索引动作。`publish` 达到 PUBLISHED 状态后,可运行 `ship distribute` 或手动调用 `release-skill distribute --plan <path> --approval <path> --json`。分发动作实现 fail-closed 语义:空差异时 NO_CHANGE(不创建 commit/tag/push),tag 移动尝试时 REMOTE_CONFLICT(永不 force-push),外部写未授权时 AUTH_MISSING。支持的模式:`--dry-run`(仅本地提交+tag)、`--json`(结构化输出)、`--help`(命令参考)。标签承诺保证版本一致性——分发的 plugin.json.version 必须与输入 tag 匹配。详见 [docs/design/2026-08-17-postpublish-distribution.md](../../docs/design/2026-08-17-postpublish-distribution.md) 中的架构说明。
46
+ <!-- release-skill:capability:distribute -->
47
+
48
48
  <!-- release-skill:maturity:v0.1-boundary -->
49
49
  <!-- release-skill:maturity:boundary -->
50
50
  > **安全默认路径:** 推荐 `help → assess → prepare --offline → 人工审阅`。
51
51
  > `help` 与 `assess` 只读;`prepare --offline` 中由 release-skill 自身控制的部分只写
52
52
  > `.release-skill/`,且不调用远端发布适配器。但配置的 hook 和 gate 是无操作系统沙箱的进程,
53
53
  > 可以写出项目目录、访问凭据、发起网络请求或执行远端发布。只有未配置这些进程,或已单独审计并
54
- > 显式确认其副作用时,才可以把 `prepare` 视为“仅本地”。生产发布使用
54
+ > 显式确认其副作用时,才可以把 `prepare` 视为”仅本地”。生产发布使用
55
55
  > `ship --target-version <ver> → ship --approve --actor <name>`。
56
56
  > `ship` 自动执行 hooks 和门禁,唯一的人工门禁是计划批准。
57
57
  > Kimi/CodeBuddy 安装是非阻塞的人工后续任务(系统不核验)。
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.5.1",
12
+ "version": "0.6.0",
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.5.1",
3
+ "version": "0.6.0",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"