release-skill 0.6.3 → 0.7.1

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 (90) 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 +36 -0
  7. package/INSTALL.md +2 -2
  8. package/INSTALL.zh-CN.md +2 -2
  9. package/README.md +17 -23
  10. package/README.zh-CN.md +8 -20
  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/error-codes.json +1 -1
  14. package/adapters/claude/bin/kernel-protocol.json +1 -1
  15. package/adapters/claude/bin/license-texts/Apache-2.0.txt +201 -0
  16. package/adapters/claude/bin/license-texts/MIT.txt +21 -0
  17. package/adapters/claude/bin/registry.json +64 -1
  18. package/adapters/claude/bin/release-skill.bundle.mjs +34866 -31254
  19. package/adapters/claude/bin/rules.json +1 -1
  20. package/adapters/claude/schemas/.render-manifest.json +6 -6
  21. package/adapters/claude/schemas/release-plan.schema.json +136 -4
  22. package/adapters/claude/schemas/release-project.schema.json +13 -4
  23. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  24. package/adapters/codex/bin/error-codes.json +1 -1
  25. package/adapters/codex/bin/kernel-protocol.json +1 -1
  26. package/adapters/codex/bin/license-texts/Apache-2.0.txt +201 -0
  27. package/adapters/codex/bin/license-texts/MIT.txt +21 -0
  28. package/adapters/codex/bin/registry.json +64 -1
  29. package/adapters/codex/bin/release-skill.bundle.mjs +34866 -31254
  30. package/adapters/codex/bin/rules.json +1 -1
  31. package/adapters/codex/schemas/.render-manifest.json +6 -6
  32. package/adapters/codex/schemas/release-plan.schema.json +136 -4
  33. package/adapters/codex/schemas/release-project.schema.json +13 -4
  34. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  35. package/adapters/kimi/bin/error-codes.json +1 -1
  36. package/adapters/kimi/bin/kernel-protocol.json +1 -1
  37. package/adapters/kimi/bin/license-texts/Apache-2.0.txt +201 -0
  38. package/adapters/kimi/bin/license-texts/MIT.txt +21 -0
  39. package/adapters/kimi/bin/registry.json +64 -1
  40. package/adapters/kimi/bin/release-skill.bundle.mjs +34866 -31254
  41. package/adapters/kimi/bin/rules.json +1 -1
  42. package/adapters/kimi/schemas/.render-manifest.json +6 -6
  43. package/adapters/kimi/schemas/release-plan.schema.json +136 -4
  44. package/adapters/kimi/schemas/release-project.schema.json +13 -4
  45. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  46. package/adapters/workbuddy/bin/error-codes.json +1 -1
  47. package/adapters/workbuddy/bin/kernel-protocol.json +1 -1
  48. package/adapters/workbuddy/bin/license-texts/Apache-2.0.txt +201 -0
  49. package/adapters/workbuddy/bin/license-texts/MIT.txt +21 -0
  50. package/adapters/workbuddy/bin/registry.json +64 -1
  51. package/adapters/workbuddy/bin/release-skill.bundle.mjs +34866 -31254
  52. package/adapters/workbuddy/bin/rules.json +1 -1
  53. package/adapters/workbuddy/schemas/.render-manifest.json +6 -6
  54. package/adapters/workbuddy/schemas/release-plan.schema.json +136 -4
  55. package/adapters/workbuddy/schemas/release-project.schema.json +13 -4
  56. package/bin/error-codes.json +1 -1
  57. package/bin/kernel-protocol.json +1 -1
  58. package/bin/license-texts/Apache-2.0.txt +201 -0
  59. package/bin/license-texts/MIT.txt +21 -0
  60. package/bin/registry.json +64 -1
  61. package/bin/release-skill-cli.mjs +6 -6
  62. package/bin/release-skill.bundle.mjs +34866 -31254
  63. package/bin/rules.json +1 -1
  64. package/package.json +5 -4
  65. package/platform-manifest.json +2 -2
  66. package/references/02-project-config.md +1 -1
  67. package/references/06-adapter-contract.md +6 -3
  68. package/schemas/.render-manifest.json +6 -6
  69. package/schemas/release-plan.schema.json +136 -4
  70. package/schemas/release-project.schema.json +13 -4
  71. package/src/adapters/distribute-git.mjs +17 -11
  72. package/src/commands/approve.mjs +6 -10
  73. package/src/commands/distribute.mjs +251 -69
  74. package/src/commands/postverify.mjs +81 -7
  75. package/src/commands/prepare.mjs +176 -3
  76. package/src/core/docs-refresh-preset.mjs +8 -4
  77. package/src/core/evidence.mjs +8 -1
  78. package/src/core/git-url-policy.mjs +214 -0
  79. package/src/core/marketplace-registry-entry.mjs +4 -3
  80. package/src/core/postpublish-approval.mjs +132 -1
  81. package/src/core/postpublish-bundle.mjs +342 -0
  82. package/src/core/postpublish-projection.mjs +210 -0
  83. package/src/core/postpublish.mjs +26 -19
  84. package/src/core/preset-executor.mjs +25 -6
  85. package/src/core/preset-gitwrite.mjs +37 -16
  86. package/src/core/presets.mjs +67 -19
  87. package/src/core/proposal-inbox.mjs +36 -20
  88. package/src/core/redact.mjs +16 -3
  89. package/src/producers/build-adapters.mjs +28 -14
  90. package/src/snapshot/scan.mjs +6 -2
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.6.3",
12
+ "version": "0.7.1",
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.6.3",
3
+ "version": "0.7.1",
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.6.3",
3
+ "version": "0.7.1",
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.6.3",
3
+ "version": "0.7.1",
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.6.3.",
22
+ "Prepare a release plan for version 0.7.1.",
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.6.3",
3
+ "version": "0.7.1",
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,41 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.7.1 locale=en baseline=sha256:9f86def686489f30d89bb67884dfd8c44ee1d48b5d0cf5efabba44f87998d7d4 -->
4
+ ## [0.7.1] - 2026-08-22
5
+
6
+ v0.7.1 fixes a leakage-scan false positive that blocked generated JSON Schema validators containing POSIX-like JSON Pointer segments.
7
+
8
+ ### Fixed
9
+
10
+ - **Context-aware POSIX path detection**: the snapshot leakage scanner no longer treats JSON Pointer property segments or ordinary URL paths as machine-local absolute paths. Concrete Linux root, home, and user-home paths remain release-blocking findings.
11
+ <!-- release-skill:changelog:end version=0.7.1 locale=en -->
12
+
13
+
14
+ <!-- release-skill:changelog:start version=0.7.0 locale=en baseline=sha256:a4d6989dd03d562c498344baf0dc1d0e1d0a225aecf0d48a7c4f9850c495b0ef -->
15
+ ## [0.7.0] - 2026-08-22
16
+
17
+ v0.7.0 closes the release architecture gaps identified after v0.6.3. Private postPublish inputs are now frozen into the approved plan, checkpoint approvals must be consumed from their authoritative immutable path, and downstream projection reuses the published Skill Family Foundation 0.8.0 contracts instead of workspace-local substitutes.
18
+
19
+ ### Added
20
+
21
+ - **Frozen postPublish execution bundles**: release units can declare private `executionFiles`; prepare freezes their exact bytes and resource closure into the immutable plan, and distribute or postVerify installs only that verified bundle into the detached execution worktree. Live workspace edits after approval cannot change the executed command.
22
+ - **Authoritative checkpoint approval consumption**: postPublish approvals are accepted only from the canonical path derived from the plan digest and hook id. The consumer rechecks the plan digest, approval digest, strict file bytes, and symlink-free authority chain before any hook or external write.
23
+ - **Foundation-managed downstream projection**: postPublish payload projection now uses the published `skill-family-engineering-kit` projection compiler and runner, with strict reads and resource-closure verification from `skill-family-harness-node`.
24
+
25
+ ### Changed
26
+
27
+ - **Separated workspace roles**: preset execution now distinguishes the maintainer's `releaseWorkspaceRoot` from the detached `executionWorktreeRoot`; ambiguous legacy root fallback is rejected, and presets cannot target the release workspace itself.
28
+ - **Exact Foundation 0.8.0 baseline**: `skill-family-contracts`, `skill-family-harness-node`, and `skill-family-engineering-kit` are pinned to 0.8.0. The package runtime is pinned to Node.js `>=22.22.2 <23`.
29
+ - **Explicit distribute authority**: `distribute` requires the plan-bound release approval record; postPublish hook approvals remain separate checkpoint records.
30
+
31
+ ### Fixed
32
+
33
+ - **Credential-bearing Git URL rejection and redaction**: configured Git remotes reject URL userinfo at schema and runtime boundaries. Errors, evidence, and summaries pass through the shared redaction path so embedded credentials are not persisted.
34
+ - **Fail-closed production gates**: `NODE_TEST_CONTEXT` can no longer exempt derived-artifact gates, adapter behavior is explicit for each plan version, and Node.js 22 test-reporter output is accepted without weakening assertions.
35
+ - **Public packaging and license closure**: the workspace documentation and public package now agree on Apache-2.0, and the public bundle carries the required Apache-2.0 and MIT license texts.
36
+ <!-- release-skill:changelog:end version=0.7.0 locale=en -->
37
+
38
+
3
39
  <!-- release-skill:changelog:start version=0.6.3 locale=en baseline=sha256:a1b8f98d720cae60e0855677b22dd3fd75f6c43eb31123951a5129d149626e70 -->
4
40
  ## [0.6.3] - 2026-08-20
5
41
 
package/INSTALL.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.6.3 -->
5
+ <!-- release-skill:release-version: 0.7.1 -->
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.6.3
117
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.7.1
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.6.3 -->
5
+ <!-- release-skill:release-version: 0.7.1 -->
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.6.3
107
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.7.1
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.6.3 -->
5
+ <!-- release-skill:release-version: 0.7.1 -->
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,31 +14,20 @@ 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.6.3** (2026-08-20)
17
+ **0.7.1** (2026-08-22)
18
18
 
19
- v0.6.3 adds the postPublish hooks v2 registration mechanism with six built-in presets, checkpoint-level approval records for hooks that write downstream, a postVerify stage that runs hooks only after the main run reaches VERIFIED, an append-only setup proposal flow that drafts postPublish hook declarations for already-configured projects, the O1-O7 release-cycle speed-ups, and release-skill's own dogfood hub-entry proposal declaration — which this release delivers to the public skill-family-hub repository during its postVerify phase under its own checkpoint approval.
20
-
21
- **Added**
22
-
23
- - **postPublish hooks v2 and six presets**: `releaseUnit.postPublish` now accepts a declarative `hooks` array alongside the existing `targets`; each hook is a named preset or a custom command hook following the prepare-hook rules (executable/argument arrays, relative cwd, timeout, environment allowlist — shell strings rejected). Six built-in presets ship with the bundle and are enumerated by `release-skill distribute --list-presets`: `git-mirror` and `marketplace-index-render` (declared in `targets` form), plus `proposal-inbox`, `marketplace-registry-entry`, `docs-refresh`, and `notify-handoff` (declared in `hooks` form); writing presets share `remoteUrl`/`workspace` dual downstream addressing, `proposal-inbox` without a target degrades to `notify-handoff` behavior instead of failing, and `notify-handoff` is the zero-write floor rendering a deterministic manual sync checklist. Every declaration is normalized into the frozen plan, so a hook change changes the plan digest and invalidates existing approvals; existing `targets` configurations stay valid with unchanged execution semantics.
24
- - **Checkpoint-level hook approval**: a hook with `requiresApproval: true` (the default for public-write presets; projects may tighten, never loosen) parks at `AWAITING_APPROVAL` with zero remote writes until its own checkpoint approval is minted with `release-skill approve --plan <plan> --hook <hookId> --actor <name>` and consumed via `distribute --hook-approval` or `ship --hook-approval`. Approval records follow the new `postpublish-approval-record` schema bound to `(planDigest, hookId)` with the 24-hour expiry; a hook configuration change changes the plan digest and invalidates the approval. The run schema gains the `AWAITING_APPROVAL` checkpoint status, and the approval interface displays the normalized entry summary of each approved hook.
25
- - **postVerify stage**: hooks declared with `phase: postVerify` run only after the main run reaches VERIFIED; `ship` routes them into an independent postVerify run whose hook context carries the verification evidence (`verifyEvidence`, present in this phase only). A failed postVerify run stays PARTIAL and can be reconciled, but it never rolls the main run back from VERIFIED — the failure is recorded prominently in evidence, never silently.
26
- - **Setup incremental hook proposal**: for already-configured projects, `setup --discover-downstream` performs read-only discovery of downstream candidates (git remotes, marketplace/docs repository clues, `artifact-graph` configuration, foundation profiles) and `setup --propose-hooks` drafts postPublish hook declarations for human review; after human confirmation of the `setupDigest` the flow appends only the hooks section and never rewrites any other part of the configuration. The create-once boundary is preserved: an existing configuration is never regenerated.
27
- - **Dogfood hub proposal declaration**: release-skill's own project configuration declares a `proposal-inbox` (git-push) hub-entry proposal toward the public `skill-family-hub` repository, delivered during this release's postVerify phase under its own checkpoint approval; delivery plus the deterministic manual sync prompt in evidence is the closure criterion — hub-side consumption is out of scope for this release.
28
-
29
- **Changed**
30
-
31
- - **Release-cycle speed optimizations (O1-O7)**: `build-adapters --check` and the self-bootstrap fact-pin suite are now fail-closed prepare pre-gates that run before hooks and the full-test gate (a fast pre-gate, not a replacement for full tests); a new one-click derived-artifact sync command validates and rebuilds the version/docs/bundle/adapters/manifest/public-files areas in dependency order and never writes src or test pins; `build-adapters --apply` is the supported rebuild path for existing drifted adapters; the `ship` happy end now orchestrates `prepare --production --online` by default with explicit remediation prompts for non-production and offline plans; online production prepare reports a warning-level observation when the local branch leads origin (non-blocking); `verify --run` accepts a run directory and resolves its `release-run.json` automatically (file form unchanged); and the `generate-platform-manifest --check` baseline drift is fixed.
19
+ v0.7.1 fixes a leakage-scan false positive that blocked generated JSON Schema validators containing POSIX-like JSON Pointer segments.
32
20
 
33
21
  **Fixed**
34
22
 
35
- - **Production CLI distribute adapter registration**: both production CLI adapter registries now register the distribute-git adapter; before this fix the production `distribute`/`ship` auto-distribution path failed with `no distribute adapter registered`. The state-machine reference completes the `DISTRIBUTING`/`DISTRIBUTED` states and their transitions.
23
+ - **Context-aware POSIX path detection**: the snapshot leakage scanner no longer treats JSON Pointer property segments or ordinary URL paths as machine-local absolute paths. Concrete Linux root, home, and user-home paths remain release-blocking findings.
36
24
  <!-- release-skill:managed:end id=latest-release -->
37
25
 
38
26
  <!-- release-skill:capability:external-write-boundary -->
39
- > **Current boundary:** v0.6.3 is the current source candidate; v0.4.1 remains
40
- > the latest published release (v0.2.2 previously held
41
- > published status before the platform verification convergence fix was added).
27
+ > **Current boundary:** v0.7.1 is the current source candidate; v0.6.3 remains
28
+ > the latest published release. v0.4.1 was an earlier published milestone;
29
+ > v0.2.2 previously held published status before the platform verification
30
+ > convergence fix was added.
42
31
  > v0.1.1 completed a real production release to GitHub and npm — the first
43
32
  > production-verified milestone — followed by
44
33
  > exact npm installation and Claude/Codex consumer installation verification
@@ -55,8 +44,8 @@ v0.6.3 adds the postPublish hooks v2 registration mechanism with six built-in pr
55
44
  > publish global preflight.
56
45
 
57
46
  <!-- release-skill:capability:safe-first-command -->
58
- > **Production path verified since the v0.1.1 milestone; v0.6.3 is the current
59
- > source candidate and v0.4.1 is the latest published release.** The npm-installed CLI is the supported user entry. Source checkout
47
+ > **Production path verified since the v0.1.1 milestone; v0.7.1 is the current
48
+ > source candidate and v0.6.3 is the latest published release.** The npm-installed CLI is the supported user entry. Source checkout
60
49
  > is the development/contributor fallback.
61
50
  >
62
51
  > **Start here:**
@@ -101,7 +90,7 @@ v0.6.3 adds the postPublish hooks v2 registration mechanism with six built-in pr
101
90
  > release-skill dogfoods this capability: this repository's own project
102
91
  > configuration declares a `proposal-inbox` (git-push) hub-entry proposal
103
92
  > toward the public `skill-family-hub` repository, to be delivered during the
104
- > v0.6.3 release in the postVerify phase under its own checkpoint approval.
93
+ > v0.7.0 release in the postVerify phase under its own checkpoint approval.
105
94
  <!-- release-skill:capability:postpublish-presets -->
106
95
 
107
96
  <!-- release-skill:capability:postverify-stage -->
@@ -549,7 +538,12 @@ execution. Gates are the controlled extension point for release calibration
549
538
  `publish`; each entry is a named preset or a custom command hook and follows
550
539
  the same command rules as above (executable/argument arrays, not shell
551
540
  strings). Presets receive a read-only projection of the frozen plan; custom
552
- command hooks run in the frozen tag worktree:
541
+ command hooks run in the frozen tag worktree. The `materialize` hook is
542
+ optional: when it is omitted, `distribute` stages the payload from the
543
+ release unit's frozen `publicFiles` mapping through a Foundation managed
544
+ projection — a fresh payload root with full preflight, zero-write refusal,
545
+ and complete closure rollback — and live project configuration is never
546
+ re-read after the plan is frozen:
553
547
 
554
548
  ```yaml
555
549
  postPublish:
package/README.zh-CN.md CHANGED
@@ -2,35 +2,23 @@
2
2
 
3
3
  [English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.6.3 -->
5
+ <!-- release-skill:release-version: 0.7.1 -->
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.6.3** (2026-08-20)
11
+ **0.7.1** (2026-08-22)
12
12
 
13
- v0.6.3 新增 postPublish hooks v2 注册机制与六个内置预设、面向下游写 hook checkpoint 级批准记录、只在主 run 到达 VERIFIED 后执行 hook 的 postVerify 阶段、为已接入项目起草 postPublish hook 声明的 setup 增量提案、O1–O7 发布周期提速,以及 release-skill 自身的 dogfood hub 提案声明——本次发布即在 postVerify 阶段经自身 checkpoint 批准向公开的 skill-family-hub 仓库投递该提案。
14
-
15
- **新增**
16
-
17
- - **postPublish hooks v2 与六个预设**:`releaseUnit.postPublish` 在既有 `targets` 之外接受声明式 `hooks` 数组;每个 hook 要么是命名预设,要么是遵循 prepare hooks 规则(可执行文件/参数数组、相对 cwd、timeout、环境变量白名单——拒绝 shell 字符串)的自定义 command hook。六个内置预设随 bundle 分发,由 `release-skill distribute --list-presets` 枚举:`git-mirror` 与 `marketplace-index-render`(以 `targets` 形态声明),以及 `proposal-inbox`、`marketplace-registry-entry`、`docs-refresh`、`notify-handoff`(以 `hooks` 形态声明);写下游预设共用 `remoteUrl`/`workspace` 双寻址,`proposal-inbox` 未声明 target 时退化为 `notify-handoff` 行为而非报错,`notify-handoff` 是零写地板,只渲染确定性的人工同步清单。所有声明归一化进冻结计划,hook 变化即 plan digest 变化,既有批准随之失效;既有 `targets` 配置原样可用,执行语义不变。
18
- - **checkpoint 级 hook 批准**:`requiresApproval: true` 的 hook(公开写预设缺省为 true;项目可以收紧,不得放松)停留 `AWAITING_APPROVAL`、零远端写,直到用 `release-skill approve --plan <plan> --hook <hookId> --actor <name>` 铸造并经 `distribute --hook-approval` 或 `ship --hook-approval` 消费自己的 checkpoint 批准。批准记录遵循新的 `postpublish-approval-record` schema,绑定 `(planDigest, hookId)`,24 小时有效;hook 配置变化即 plan digest 变化,批准随之失效。run schema 新增 `AWAITING_APPROVAL` checkpoint 状态,批准界面展示被批准 hook 的归一化条目摘要。
19
- - **postVerify 阶段**:声明 `phase: postVerify` 的 hook 只在主 run 到达 VERIFIED 之后执行;`ship` 把它们路由进一个独立的 postVerify run,其 hook 上下文携带验证证据(`verifyEvidence` 仅该阶段存在)。postVerify run 失败即保持 PARTIAL、可 reconcile,但绝不把主 run 从 VERIFIED 回退——失败在 evidence 中显著记录,绝不静默。
20
- - **setup 增量 hook 提案**:面向已接入项目,`setup --discover-downstream` 只读发现下游候选(git remote、marketplace/docs 仓线索、`artifact-graph` 配置、foundation profile),`setup --propose-hooks` 起草 postPublish hook 声明供人工审阅;人工确认 `setupDigest` 后只追加 hooks 段,绝不重写既有配置的任何其他部分。create-once 边界保持:既有配置绝不重新生成。
21
- - **dogfood hub 提案声明**:release-skill 自身的项目配置声明了一个 `proposal-inbox`(git-push)hub 提案,指向公开仓 `skill-family-hub`,在本次发布的 postVerify 阶段经自身 checkpoint 批准投递;投递成功加 evidence 中的确定性人工同步提示即闭环——hub 侧消费不在本期范围。
22
-
23
- **变更**
24
-
25
- - **发布周期提速(O1–O7)**:`build-adapters --check` 与 self-bootstrap 事实钉套件成为 prepare 快速前置门禁,先于 hooks 与全量测试门禁执行(快速前置,不替代全量测试);新增派生产物一键同步命令,按依赖顺序校验并按需重建 version/docs/bundle/adapters/manifest/public-files 各区,绝不写 src 与测试钉;`build-adapters --apply` 成为既有漂移 adapter 的受支持重建路径;`ship` happy-end 编排缺省 `prepare --production --online`,非生产与 offline 计划给出明确补救提示;online production prepare 在本地分支领先 origin 时给出 warning 级观测(不阻塞);`verify --run` 接受 run 目录并自动解析其中的 `release-run.json`(传文件行为不变);修复 `generate-platform-manifest --check` 的基线漂移。
13
+ v0.7.1 修复了泄漏扫描误报:生成的 JSON Schema 校验器包含形似 POSIX 路径的 JSON Pointer 时,不再被错误阻断。
26
14
 
27
15
  **修复**
28
16
 
29
- - **生产 CLI distribute adapter 注册**:两处生产 CLI adapter 注册表现在都注册 distribute-git adapter;修复前生产 `distribute`/`ship` 自动分发路径以 `no distribute adapter registered` 失败。状态机参考件补全 `DISTRIBUTING`/`DISTRIBUTED` 状态及其转移。
17
+ - **按上下文识别 POSIX 路径**:快照泄漏扫描不再把 JSON Pointer 属性片段或普通 URL 路径当成本机绝对路径;真实的 Linux root、home 和用户主目录路径仍会阻断发布。
30
18
  <!-- release-skill:managed:end id=latest-release -->
31
19
 
32
20
  <!-- release-skill:capability:external-write-boundary -->
33
- > **当前边界:** v0.6.3 是当前源码候选,v0.4.1 仍是最新已发布版本(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
21
+ > **当前边界:** v0.7.1 是当前源码候选,v0.6.3 是最新已发布版本。v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
34
22
  > v0.1.1 已完成 GitHub 与 npm 的
35
23
  > 真实生产发布,是首次生产验证的历史里程碑,并从冻结 Git ref 完成精确 npm
36
24
  > 安装及 Claude/Codex 消费者安装验证;"当前发布版本"与"首次生产验证里程碑"
@@ -43,7 +31,7 @@ v0.6.3 新增 postPublish hooks v2 注册机制与六个内置预设、面向下
43
31
  > 远端唯一性检查在 `publish` 全局预检执行。
44
32
 
45
33
  <!-- release-skill:capability:safe-first-command -->
46
- > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.6.3 是当前源码候选,v0.4.1 是最新已发布版本。**
34
+ > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.7.1 是当前源码候选,v0.6.3 是最新已发布版本。**
47
35
  > npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
48
36
  >
49
37
  > **第一条命令:**
@@ -82,7 +70,7 @@ v0.6.3 新增 postPublish hooks v2 注册机制与六个内置预设、面向下
82
70
  > 退化为 `notify-handoff` 行为而非报错。`notify-handoff` 是零写地板:
83
71
  > 只渲染确定性的人工同步清单。release-skill 自己也在使用该能力:本仓库的
84
72
  > 项目配置声明了一个 `proposal-inbox`(git-push)hub 提案,指向公开仓
85
- > `skill-family-hub`,将在 v0.6.3 发布的 postVerify 阶段经自身的
73
+ > `skill-family-hub`,将在 v0.7.0 发布的 postVerify 阶段经自身的
86
74
  > checkpoint 批准投递。
87
75
  <!-- release-skill:capability:postpublish-presets -->
88
76
 
@@ -490,7 +478,7 @@ hook 在 `prepare` 调用时运行,命令调用本身即授权执行。gate
490
478
 
491
479
  ### postPublish hook
492
480
 
493
- `postPublish.hooks` 声明 `publish` 之后执行的下游投递动作。每个条目要么是命名预设,要么是自定义 command hook,遵守与上文相同的命令规则(可执行文件/参数数组,不是 shell 字符串)。预设收到冻结计划的只读投影;自定义 command hook 在冻结 tag 工作树中执行:
481
+ `postPublish.hooks` 声明 `publish` 之后执行的下游投递动作。每个条目要么是命名预设,要么是自定义 command hook,遵守与上文相同的命令规则(可执行文件/参数数组,不是 shell 字符串)。预设收到冻结计划的只读投影;自定义 command hook 在冻结 tag 工作树中执行。`materialize` 钩子是可选的:缺省时,`distribute` 改为把发布单元冻结的 `publicFiles` 映射经 Foundation 托管投影物化——全新载荷根、全量预检、零写入拒绝、完整闭包回滚——计划冻结后绝不重读实时项目配置:
494
482
 
495
483
  ```yaml
496
484
  postPublish:
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.6.3",
12
+ "version": "0.7.1",
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.6.3",
3
+ "version": "0.7.1",
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.error-codes",
4
- "contractsVersion": "1.5.0",
4
+ "contractsVersion": "1.7.0",
5
5
  "policy": {
6
6
  "format": "^SFC[0-9]{4}$",
7
7
  "ranges": [
@@ -4,7 +4,7 @@
4
4
  "name": "skill-family.kernel.operation",
5
5
  "version": 1,
6
6
  "status": "stable",
7
- "contractsVersion": "1.5.0",
7
+ "contractsVersion": "1.7.0",
8
8
  "description": "Frozen v1 kernel protocol: request/result envelope, operation lifecycle states, and the operation vocabulary. Extensible only by a new protocol version; v1 content is frozen.",
9
9
  "states": ["accepted", "running", "succeeded", "failed", "rejected"],
10
10
  "initialStates": ["accepted", "rejected"],
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) {{YEAR}} {{COPYRIGHT_HOLDER}}
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.