release-skill 0.5.0 → 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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codebuddy-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +2 -2
- package/.kimi-plugin/plugin.json +1 -1
- package/CHANGELOG.md +31 -0
- package/INSTALL.md +2 -2
- package/INSTALL.zh-CN.md +2 -2
- package/README.md +13 -21
- package/README.zh-CN.md +14 -22
- package/adapters/claude/.claude-plugin/marketplace.json +1 -1
- package/adapters/claude/.claude-plugin/plugin.json +1 -1
- package/adapters/claude/bin/error-codes.json +1 -1
- package/adapters/claude/bin/kernel-protocol.json +1 -1
- package/adapters/claude/bin/registry.json +15 -1
- package/adapters/claude/bin/release-skill.bundle.mjs +38147 -23284
- package/adapters/claude/bin/rules.json +1 -1
- package/adapters/claude/schemas/.render-manifest.json +6 -6
- package/adapters/claude/schemas/release-plan.schema.json +401 -2
- package/adapters/claude/schemas/release-project.schema.json +291 -0
- package/adapters/claude/schemas/release-run.schema.json +59 -6
- package/adapters/claude/skills/release-config/SKILL.md +140 -0
- package/adapters/claude/skills/release-docs/SKILL.md +106 -0
- package/adapters/claude/skills/release-help/SKILL.md +39 -0
- package/adapters/claude/skills/release-marketplace/SKILL.md +147 -0
- package/adapters/claude/skills/release-publish/SKILL.md +25 -6
- package/adapters/claude/skills/release-verify/SKILL.md +10 -0
- package/adapters/codex/.codex-plugin/plugin.json +2 -2
- package/adapters/codex/bin/error-codes.json +1 -1
- package/adapters/codex/bin/kernel-protocol.json +1 -1
- package/adapters/codex/bin/registry.json +15 -1
- package/adapters/codex/bin/release-skill.bundle.mjs +38147 -23284
- package/adapters/codex/bin/rules.json +1 -1
- package/adapters/codex/schemas/.render-manifest.json +6 -6
- package/adapters/codex/schemas/release-plan.schema.json +401 -2
- package/adapters/codex/schemas/release-project.schema.json +291 -0
- package/adapters/codex/schemas/release-run.schema.json +59 -6
- package/adapters/codex/skills/release-config/SKILL.md +147 -0
- package/adapters/codex/skills/release-docs/SKILL.md +113 -0
- package/adapters/codex/skills/release-help/SKILL.md +39 -0
- package/adapters/codex/skills/release-marketplace/SKILL.md +154 -0
- package/adapters/codex/skills/release-publish/SKILL.md +25 -6
- package/adapters/codex/skills/release-verify/SKILL.md +10 -0
- package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
- package/adapters/kimi/bin/error-codes.json +1 -1
- package/adapters/kimi/bin/kernel-protocol.json +1 -1
- package/adapters/kimi/bin/registry.json +15 -1
- package/adapters/kimi/bin/release-skill.bundle.mjs +38147 -23284
- package/adapters/kimi/bin/rules.json +1 -1
- package/adapters/kimi/schemas/.render-manifest.json +6 -6
- package/adapters/kimi/schemas/release-plan.schema.json +401 -2
- package/adapters/kimi/schemas/release-project.schema.json +291 -0
- package/adapters/kimi/schemas/release-run.schema.json +59 -6
- package/adapters/kimi/skills/release-config/SKILL.md +147 -0
- package/adapters/kimi/skills/release-docs/SKILL.md +113 -0
- package/adapters/kimi/skills/release-help/SKILL.md +39 -0
- package/adapters/kimi/skills/release-marketplace/SKILL.md +154 -0
- package/adapters/kimi/skills/release-publish/SKILL.md +25 -6
- package/adapters/kimi/skills/release-verify/SKILL.md +10 -0
- package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
- package/adapters/workbuddy/bin/error-codes.json +1 -1
- package/adapters/workbuddy/bin/kernel-protocol.json +1 -1
- package/adapters/workbuddy/bin/registry.json +15 -1
- package/adapters/workbuddy/bin/release-skill.bundle.mjs +38147 -23284
- package/adapters/workbuddy/bin/rules.json +1 -1
- package/adapters/workbuddy/schemas/.render-manifest.json +6 -6
- package/adapters/workbuddy/schemas/release-plan.schema.json +401 -2
- package/adapters/workbuddy/schemas/release-project.schema.json +291 -0
- package/adapters/workbuddy/schemas/release-run.schema.json +59 -6
- package/adapters/workbuddy/skills/release-config/SKILL.md +140 -0
- package/adapters/workbuddy/skills/release-docs/SKILL.md +106 -0
- package/adapters/workbuddy/skills/release-help/SKILL.md +39 -0
- package/adapters/workbuddy/skills/release-marketplace/SKILL.md +147 -0
- package/adapters/workbuddy/skills/release-publish/SKILL.md +25 -6
- package/adapters/workbuddy/skills/release-verify/SKILL.md +10 -0
- package/bin/error-codes.json +1 -1
- package/bin/kernel-protocol.json +1 -1
- package/bin/registry.json +15 -1
- package/bin/release-skill-cli.mjs +235 -7
- package/bin/release-skill.bundle.mjs +38147 -23284
- package/bin/rules.json +1 -1
- package/package.json +5 -4
- package/platform-manifest.json +359 -0
- package/references/.render-manifest.json +9 -9
- package/references/02-project-config.md +35 -0
- package/references/05-evidence-and-errors.md +44 -0
- package/references/06-adapter-contract.md +13 -0
- package/schemas/.render-manifest.json +6 -6
- package/schemas/release-plan.schema.json +401 -2
- package/schemas/release-project.schema.json +291 -0
- package/schemas/release-run.schema.json +59 -6
- package/skills/release-config/SKILL.md +140 -0
- package/skills/release-docs/SKILL.md +106 -0
- package/skills/release-help/SKILL.md +39 -0
- package/skills/release-marketplace/SKILL.md +147 -0
- package/skills/release-publish/SKILL.md +25 -6
- package/skills/release-verify/SKILL.md +10 -0
- package/skills-src/release-config/SKILL.md +140 -0
- package/skills-src/release-docs/SKILL.md +106 -0
- package/skills-src/release-help/SKILL.md +39 -0
- package/skills-src/release-marketplace/SKILL.md +147 -0
- package/skills-src/release-publish/SKILL.md +25 -6
- package/skills-src/release-verify/SKILL.md +10 -0
- package/src/adapters/contract.mjs +5 -0
- package/src/adapters/distribute-git.mjs +625 -0
- package/src/adapters/plugin-marketplace.mjs +48 -4
- package/src/adapters/push-snapshot.mjs +12 -4
- package/src/commands/assess.mjs +171 -0
- package/src/commands/distribute.mjs +1078 -0
- package/src/commands/hooks.mjs +6 -1
- package/src/commands/lineage.mjs +616 -0
- package/src/commands/prepare.mjs +413 -72
- package/src/commands/route.mjs +686 -0
- package/src/commands/ship.mjs +45 -1
- package/src/commands/verify.mjs +176 -0
- package/src/core/baseline-advance.mjs +185 -0
- package/src/core/baseline.mjs +11 -1
- package/src/core/checkpoints.mjs +25 -0
- package/src/core/foundation-inflight.mjs +7 -0
- package/src/core/plan.mjs +12 -2
- package/src/core/postpublish.mjs +315 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "release-skill",
|
|
3
|
-
"version": "0.
|
|
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.
|
|
22
|
+
"Prepare a release plan for version 0.6.0.",
|
|
23
23
|
"Help me understand the release workflow."
|
|
24
24
|
]
|
|
25
25
|
}
|
package/.kimi-plugin/plugin.json
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
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
|
+
|
|
16
|
+
<!-- release-skill:changelog:start version=0.5.1 locale=en baseline=sha256:2a8dc4241570c0919e55da270233728963ba1cda347c95c775678ec89a9f0ac0 -->
|
|
17
|
+
## [0.5.1] - 2026-08-17
|
|
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.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
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`.
|
|
31
|
+
<!-- release-skill:changelog:end version=0.5.1 locale=en -->
|
|
32
|
+
|
|
33
|
+
|
|
3
34
|
<!-- release-skill:changelog:start version=0.5.0 locale=en baseline=sha256:e59bef4bd7bc6e0809d1f415d7ff3d342e45a7e77075f66d6ffa48cfd9b71932 -->
|
|
4
35
|
## [0.5.0] - 2026-08-16
|
|
5
36
|
|
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
|
+
<!-- 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.
|
|
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
|
+
<!-- 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.
|
|
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
|
+
<!-- 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,32 +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.
|
|
17
|
+
**0.6.0** (2026-08-18)
|
|
18
18
|
|
|
19
|
-
v0.
|
|
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
21
|
**Added**
|
|
22
22
|
|
|
23
|
-
- **
|
|
24
|
-
|
|
25
|
-
**
|
|
26
|
-
|
|
27
|
-
- **Foundation adoption**: digest computation, atomic writes, contained-path reads and project locking now delegate to the published `skill-family-contracts@0.4.0` / `skill-family-harness-node@0.4.0` packages instead of local implementations; dependencies bumped from 0.3.0 to 0.4.0.
|
|
28
|
-
- **Token lock domain**: project locks migrated from a directory-based domain to a single `.release-skill/lock` file (0600, token record). Legacy directory-form locks are detected and fail closed with `LOCK_MIGRATION_REQUIRED`; no automatic conversion or deletion is performed.
|
|
29
|
-
- **Exclusive plan/run publication**: immutable plan and run records are published via `publishFileExclusive` — identical bytes are idempotent, divergent bytes fail with `GATE_FAILED`.
|
|
30
|
-
- **Assess npm check semantics**: the online `assess` npm check no longer treats every registry error as version-not-found; only E404/ETARGET mean a missing version, other failures surface as an `NPM_VERSION_CHECK_FAILED` warning.
|
|
31
|
-
- **Hooks authorization contract**: release-prepare/release-help now document the explicit contract that configuring a hook in project configuration IS the authorization (hooks are arbitrary local processes with no sandbox, no filesystem/network isolation, and no pre-trigger confirmation point); restoring a mandatory pre-trigger confirmation gate is a future hardening item.
|
|
32
|
-
- **Audit-scope ruling**: the bundled-family marketplace configuration is recorded as not applicable to the `release_artifact` target type (G3 target-side T4 ruling); T3/T5/T6 deferred to independent tasks.
|
|
33
|
-
- **Plan schema**: production plans carry the resolved codebuddy marketplace coordinates so approval and publish review the exact marketplace target.
|
|
34
|
-
|
|
35
|
-
**Fixed**
|
|
36
|
-
|
|
37
|
-
- **Configurable CodeBuddy marketplace**: codebuddy-plugin distributions accept `marketplace` and `marketplaceSource` in project configuration, and prepare threads both values into the consumer install action instead of assuming a fixed marketplace.
|
|
38
|
-
- **Assess fail-open**: an online `assess` no longer silently reports no gaps when the npm registry check fails for reasons other than a missing version.
|
|
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.
|
|
39
26
|
<!-- release-skill:managed:end id=latest-release -->
|
|
40
27
|
|
|
41
28
|
<!-- release-skill:capability:external-write-boundary -->
|
|
42
|
-
> **Current boundary:** v0.
|
|
29
|
+
> **Current boundary:** v0.6.0 is the current source candidate; v0.4.1 remains
|
|
43
30
|
> the latest published release (v0.2.2 previously held
|
|
44
31
|
> published status before the platform verification convergence fix was added).
|
|
45
32
|
> v0.1.1 completed a real production release to GitHub and npm — the first
|
|
@@ -58,7 +45,7 @@ v0.5.0 adopts the released Skill Family Foundation 0.4.0 packages (skill-family-
|
|
|
58
45
|
> publish global preflight.
|
|
59
46
|
|
|
60
47
|
<!-- release-skill:capability:safe-first-command -->
|
|
61
|
-
> **Production path verified since the v0.1.1 milestone; v0.
|
|
48
|
+
> **Production path verified since the v0.1.1 milestone; v0.6.0 is the current
|
|
62
49
|
> source candidate and v0.4.1 is the latest published release.** The npm-installed CLI is the supported user entry. Source checkout
|
|
63
50
|
> is the development/contributor fallback.
|
|
64
51
|
>
|
|
@@ -66,6 +53,11 @@ v0.5.0 adopts the released Skill Family Foundation 0.4.0 packages (skill-family-
|
|
|
66
53
|
> - npm install: `npm install -g release-skill` → `release-skill help`
|
|
67
54
|
> - source checkout: `node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs" help`
|
|
68
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
|
+
|
|
69
61
|
<!-- release-skill:maturity:v0.1-boundary -->
|
|
70
62
|
<!-- release-skill:maturity:boundary -->
|
|
71
63
|
> **Safe defaults:** the recommended path is `help → assess → prepare --offline →
|
package/README.zh-CN.md
CHANGED
|
@@ -2,38 +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
|
+
<!-- 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.
|
|
11
|
+
**0.6.0** (2026-08-18)
|
|
12
12
|
|
|
13
|
-
v0.
|
|
13
|
+
v0.6.0 把发布循环中最容易出错的一步记账工作自动化了:发布到达 VERIFIED 后,verify 会自动把 project.yaml 中每个 unit 的 previousPublicBaseline 推进到本次已发布的 commit、tree 与 manifest digest,数值全部取自冻结计划的记录。推进只写本地、幂等、写回后自动校验并在失败时原样回滚,并且只在写回前文件干净时才用独立提交落库——漂移门禁从此总是看到真实的前序公开基线,不再需要任何人手工抄写哈希。
|
|
14
14
|
|
|
15
15
|
**新增**
|
|
16
16
|
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
- **Foundation 采用**:摘要计算、原子写、受控路径读取与项目锁改为委托已发布的 `skill-family-contracts@0.4.0` / `skill-family-harness-node@0.4.0` 包,依赖由 0.3.0 提升至 0.4.0。
|
|
22
|
-
- **Token 锁域**:项目锁由目录形态迁移为单文件 `.release-skill/lock`(0600、token 记录);旧目录形态锁被检测后 fail-closed(`LOCK_MIGRATION_REQUIRED`),不自动转换或删除。
|
|
23
|
-
- **排他发布**:不可变计划与运行记录经 `publishFileExclusive` 发布——同字节幂等,异字节以 `GATE_FAILED` 失败。
|
|
24
|
-
- **assess npm 检查语义**:在线 `assess` 的 npm 检查不再把一切 registry 错误当作「版本不存在」;仅 E404/ETARGET 视为缺失,其余失败以 `NPM_VERSION_CHECK_FAILED` 告警呈现。
|
|
25
|
-
- **Hooks 授权契约**:release-prepare/release-help 现把「配置时刻即授权」写为显式契约——hook 是任意本地进程、无沙箱、无文件系统/网络隔离、触发前无确认点;恢复触发前强制确认门列为后续加固项。
|
|
26
|
-
- **审计范围裁决**:bundled-family 市场型配置记录为不适用 `release_artifact` 目标类型(G3 目标侧 T4 裁决);T3/T5/T6 延后为独立任务。
|
|
27
|
-
- **计划模式**:生产计划携带解析后的 CodeBuddy 市场坐标,审批与发布时可核对确切的市场目标。
|
|
28
|
-
|
|
29
|
-
**修复**
|
|
30
|
-
|
|
31
|
-
- **CodeBuddy 市场可配置**:codebuddy-plugin 分发在项目配置中接受 `marketplace` 与 `marketplaceSource`,prepare 将两个值透传进消费者安装动作,不再假定固定市场。
|
|
32
|
-
- **assess fail-open 修复**:在线 `assess` 不再因版本缺失以外的 npm registry 检查失败而静默报告无缺口。
|
|
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` 的人类可读输出新增推进结果行。
|
|
33
20
|
<!-- release-skill:managed:end id=latest-release -->
|
|
34
21
|
|
|
35
22
|
<!-- release-skill:capability:external-write-boundary -->
|
|
36
|
-
> **当前边界:** v0.
|
|
23
|
+
> **当前边界:** v0.6.0 是当前源码候选,v0.4.1 仍是最新已发布版本(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
|
|
37
24
|
> v0.1.1 已完成 GitHub 与 npm 的
|
|
38
25
|
> 真实生产发布,是首次生产验证的历史里程碑,并从冻结 Git ref 完成精确 npm
|
|
39
26
|
> 安装及 Claude/Codex 消费者安装验证;"当前发布版本"与"首次生产验证里程碑"
|
|
@@ -46,20 +33,25 @@ v0.5.0 采用已发布的 Skill Family Foundation 0.4.0 包(skill-family-contr
|
|
|
46
33
|
> 远端唯一性检查在 `publish` 全局预检执行。
|
|
47
34
|
|
|
48
35
|
<!-- release-skill:capability:safe-first-command -->
|
|
49
|
-
> **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.
|
|
36
|
+
> **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.6.0 是当前源码候选,v0.4.1 是最新已发布版本。**
|
|
50
37
|
> npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
|
|
51
38
|
>
|
|
52
39
|
> **第一条命令:**
|
|
53
40
|
> - npm 安装:`npm install -g release-skill` → `release-skill help`
|
|
54
41
|
> - 源码 checkout:`node "$RELEASE_SKILL_HOME/packages/release-skill/bin/release-skill.mjs" help`
|
|
55
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
|
+
|
|
56
48
|
<!-- release-skill:maturity:v0.1-boundary -->
|
|
57
49
|
<!-- release-skill:maturity:boundary -->
|
|
58
50
|
> **安全默认路径:** 推荐 `help → assess → prepare --offline → 人工审阅`。
|
|
59
51
|
> `help` 与 `assess` 只读;`prepare --offline` 中由 release-skill 自身控制的部分只写
|
|
60
52
|
> `.release-skill/`,且不调用远端发布适配器。但配置的 hook 和 gate 是无操作系统沙箱的进程,
|
|
61
53
|
> 可以写出项目目录、访问凭据、发起网络请求或执行远端发布。只有未配置这些进程,或已单独审计并
|
|
62
|
-
> 显式确认其副作用时,才可以把 `prepare`
|
|
54
|
+
> 显式确认其副作用时,才可以把 `prepare` 视为”仅本地”。生产发布使用
|
|
63
55
|
> `ship --target-version <ver> → ship --approve --actor <name>`。
|
|
64
56
|
> `ship` 自动执行 hooks 和门禁,唯一的人工门禁是计划批准。
|
|
65
57
|
> Kimi/CodeBuddy 安装是非阻塞的人工后续任务(系统不核验)。
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"name": "skill-family.kernel.operation",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"status": "stable",
|
|
7
|
-
"contractsVersion": "1.
|
|
7
|
+
"contractsVersion": "1.5.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"],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"kind": "skill-family.contracts.registry",
|
|
4
|
-
"contractsVersion": "1.
|
|
4
|
+
"contractsVersion": "1.5.0",
|
|
5
5
|
"note": "Protocol-name and schema-$id registry. Registration mechanically rejects duplicate protocol name/version (SFC1004) and duplicate $id (SFC1003). This file is the single registration surface; adding an entry is a contracts change.",
|
|
6
6
|
"protocols": [
|
|
7
7
|
{
|
|
@@ -152,6 +152,20 @@
|
|
|
152
152
|
"dialect": "2020-12",
|
|
153
153
|
"status": "stable",
|
|
154
154
|
"file": "src/schemas/surface-scan-policy.schema.json"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"$id": "https://contracts.skill-family.example/v1/declared-read-surface-result.json",
|
|
158
|
+
"object": "declared-read-surface-result",
|
|
159
|
+
"dialect": "2020-12",
|
|
160
|
+
"status": "stable",
|
|
161
|
+
"file": "src/schemas/declared-read-surface-result.schema.json"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"$id": "https://contracts.skill-family.example/v1/structured-scan-policy.json",
|
|
165
|
+
"object": "structured-scan-policy",
|
|
166
|
+
"dialect": "2020-12",
|
|
167
|
+
"status": "stable",
|
|
168
|
+
"file": "src/schemas/structured-scan-policy.schema.json"
|
|
155
169
|
}
|
|
156
170
|
],
|
|
157
171
|
"dialects": {
|