release-skill 0.2.4 → 0.2.6
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 +45 -0
- package/INSTALL.md +32 -8
- package/INSTALL.zh-CN.md +28 -6
- package/README.md +29 -15
- package/README.zh-CN.md +27 -15
- package/adapters/claude/.claude-plugin/marketplace.json +1 -1
- package/adapters/claude/.claude-plugin/plugin.json +1 -1
- package/adapters/claude/bin/release-skill.bundle.mjs +2202 -708
- package/adapters/claude/schemas/.render-manifest.json +6 -6
- package/adapters/claude/schemas/release-plan.schema.json +158 -0
- package/adapters/claude/schemas/release-project.schema.json +6 -0
- package/adapters/claude/schemas/release-run.schema.json +150 -0
- package/adapters/codex/.codex-plugin/plugin.json +2 -2
- package/adapters/codex/bin/release-skill.bundle.mjs +2202 -708
- package/adapters/codex/schemas/.render-manifest.json +6 -6
- package/adapters/codex/schemas/release-plan.schema.json +158 -0
- package/adapters/codex/schemas/release-project.schema.json +6 -0
- package/adapters/codex/schemas/release-run.schema.json +150 -0
- package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
- package/adapters/kimi/bin/release-skill.bundle.mjs +2202 -708
- package/adapters/kimi/schemas/.render-manifest.json +6 -6
- package/adapters/kimi/schemas/release-plan.schema.json +158 -0
- package/adapters/kimi/schemas/release-project.schema.json +6 -0
- package/adapters/kimi/schemas/release-run.schema.json +150 -0
- package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
- package/adapters/workbuddy/bin/release-skill.bundle.mjs +2202 -708
- package/adapters/workbuddy/schemas/.render-manifest.json +6 -6
- package/adapters/workbuddy/schemas/release-plan.schema.json +158 -0
- package/adapters/workbuddy/schemas/release-project.schema.json +6 -0
- package/adapters/workbuddy/schemas/release-run.schema.json +150 -0
- package/bin/release-skill.bundle.mjs +2202 -708
- package/package.json +1 -1
- package/references/.render-manifest.json +4 -4
- package/references/02-project-config.md +28 -2
- package/references/05-evidence-and-errors.md +6 -0
- package/schemas/.render-manifest.json +6 -6
- package/schemas/release-plan.schema.json +158 -0
- package/schemas/release-project.schema.json +6 -0
- package/schemas/release-run.schema.json +150 -0
- package/scripts/sync-public-files.mjs +20 -9
- package/src/adapters/plugin-marketplace.mjs +82 -3
- package/src/commands/prepare.mjs +232 -1
- package/src/commands/publish.mjs +134 -0
- package/src/commands/reconcile.mjs +19 -0
- package/src/commands/setup.mjs +26 -0
- package/src/commands/verify.mjs +183 -1
- package/src/core/errors.mjs +12 -0
- package/src/core/plan.mjs +29 -0
- package/src/core/skill-resource-closure.mjs +425 -0
- package/src/core/source-authority.mjs +547 -0
- package/src/platforms/codebuddy.mjs +16 -3
- package/src/platforms/kimi.mjs +36 -9
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "release-skill",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
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.2.
|
|
22
|
+
"Prepare a release plan for version 0.2.6.",
|
|
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,50 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
<!-- release-skill:changelog:start version=0.2.6 locale=en baseline=sha256:ba7fe1d8cbae8ea3a539016c1231acd066f6dbf30b6e1ebb9db50e7c04e69253 -->
|
|
4
|
+
## [0.2.6] - 2026-07-29
|
|
5
|
+
|
|
6
|
+
v0.2.6 adds a source-authority content gate so a production release cannot succeed while the project workspace's real default branch still exposes stale public files.
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
|
|
10
|
+
- **Source-authority content closure**: prepare freezes the exact public input paths and executable modes that must exist on the configured source repository's actual default branch.
|
|
11
|
+
- **Pre-publish remote proof**: publish compares the frozen closure with the remote default branch before any external write and records a digest-bound receipt that verify requires.
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- **Branch topology tolerance**: projects may develop directly on the default branch or use release branches; compliance is based on final content, not merge ancestry or a hard-coded branch name.
|
|
16
|
+
- **Minimal conflict policy**: divergent or conflicting source state fails closed with diagnostics; Release Skill does not auto-merge, rebase, force-push, or create a replacement branch workflow.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **Stale workspace README after release**: production publishing now blocks when the source workspace's real default branch does not contain the frozen public README and other declared source inputs.
|
|
21
|
+
<!-- release-skill:changelog:end version=0.2.6 locale=en -->
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
<!-- release-skill:changelog:start version=0.2.5 locale=en baseline=sha256:8bd4c268f65c72efeb3866ef4bcae7d1fa902e02833e622ca66670b633b124b1 -->
|
|
25
|
+
## [0.2.5] - 2026-07-28
|
|
26
|
+
|
|
27
|
+
v0.2.5 adds a built-in skill resource-closure release gate. Release Skill now validates the actual frozen and installed plugin projections instead of treating repository-level file presence as proof that every skill can resolve its resources.
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- **Skill resource-closure gate**: recursively discovers nested skills and validates skill-local references, assets, schemas, examples, and private scripts from each skill root.
|
|
32
|
+
- **Frozen and installed receipts**: prepare records closure receipts for every distribution surface, publish rechecks the frozen artifact before external writes, and verify requires matching receipts from real npm and plugin installation roots.
|
|
33
|
+
- **Adversarial path checks**: rejects current-working-directory fallbacks, source-tree backjumps, absolute machine paths, path escape, symbolic links, and non-regular resource targets.
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- **Shared runtime resolution is explicit**: plugin-level scripts and cross-skill resources must resolve from a validated plugin root; bounded source-only build tools remain auditable exceptions.
|
|
38
|
+
- **Kimi Code and CodeBuddy verification tightened**: consumer verification plans now bind to actual isolated or managed plugin installation paths.
|
|
39
|
+
- **Legacy plan compatibility preserved**: existing frozen plans remain readable, while newly prepared plans require resource-closure evidence.
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- **Nested skill blind spot removed**: author, review, repair, and other nested skills are no longer skipped by resource validation.
|
|
44
|
+
- **Public baseline tests synchronized**: migration invariants now track the configured v0.2.4 public baseline commit.
|
|
45
|
+
<!-- release-skill:changelog:end version=0.2.5 locale=en -->
|
|
46
|
+
|
|
47
|
+
|
|
3
48
|
<!-- release-skill:changelog:start version=0.2.4 locale=en baseline=sha256:b0ad6c897df808a11a2630d1565327ff5092e407dd004dc71bc43b954cbf88a6 -->
|
|
4
49
|
## [0.2.4] - 2026-07-28
|
|
5
50
|
|
package/INSTALL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[简体中文](INSTALL.zh-CN.md)
|
|
4
4
|
|
|
5
|
-
<!-- release-skill:release-version: 0.2.
|
|
5
|
+
<!-- release-skill:release-version: 0.2.6 -->
|
|
6
6
|
## Prerequisites
|
|
7
7
|
|
|
8
8
|
- Node.js 22.0.0 or later
|
|
@@ -128,7 +128,7 @@ as a version-pinned **manual** install plus trusted observation/attestation:
|
|
|
128
128
|
frozen version; otherwise do NOT issue an attestation.
|
|
129
129
|
|
|
130
130
|
```
|
|
131
|
-
/plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.2.
|
|
131
|
+
/plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.2.6
|
|
132
132
|
/plugins reload
|
|
133
133
|
```
|
|
134
134
|
|
|
@@ -140,7 +140,7 @@ as a version-pinned **manual** install plus trusted observation/attestation:
|
|
|
140
140
|
```json
|
|
141
141
|
{
|
|
142
142
|
"platform": "kimi",
|
|
143
|
-
"version": "0.2.
|
|
143
|
+
"version": "0.2.6",
|
|
144
144
|
"planDigest": "<64-hex frozen plan digest>",
|
|
145
145
|
"result": "passed",
|
|
146
146
|
"actor": "<person who confirmed>",
|
|
@@ -204,7 +204,7 @@ attestation (the same capability gap and closed loop as Kimi Code):
|
|
|
204
204
|
```json
|
|
205
205
|
{
|
|
206
206
|
"platform": "codebuddy",
|
|
207
|
-
"version": "0.2.
|
|
207
|
+
"version": "0.2.6",
|
|
208
208
|
"planDigest": "<64-hex frozen plan digest>",
|
|
209
209
|
"result": "passed",
|
|
210
210
|
"actor": "<person who confirmed>",
|
|
@@ -345,7 +345,11 @@ setup; use the mechanically extracted `recommendedAnswers`.
|
|
|
345
345
|
"projectConfig": {
|
|
346
346
|
"apiVersion": "release-skill/v1",
|
|
347
347
|
"kind": "ReleaseProject",
|
|
348
|
-
"project": {
|
|
348
|
+
"project": {
|
|
349
|
+
"name": "my-project",
|
|
350
|
+
"defaultBranch": "main",
|
|
351
|
+
"sourceRepository": "owner/my-workspace"
|
|
352
|
+
},
|
|
349
353
|
"releaseUnits": [{
|
|
350
354
|
"id": "my-project",
|
|
351
355
|
"source": ".",
|
|
@@ -428,6 +432,7 @@ kind: ReleaseProject
|
|
|
428
432
|
project:
|
|
429
433
|
name: my-project
|
|
430
434
|
defaultBranch: main
|
|
435
|
+
sourceRepository: owner/my-workspace
|
|
431
436
|
|
|
432
437
|
releaseUnits:
|
|
433
438
|
- id: my-project
|
|
@@ -643,6 +648,23 @@ The last two strategies require online production prepare. Any mismatch stops
|
|
|
643
648
|
for review; update the human-owned config only after inspecting real remote
|
|
644
649
|
state, and never force-push or weaken the baseline.
|
|
645
650
|
|
|
651
|
+
### Workspace source authority
|
|
652
|
+
|
|
653
|
+
`project.sourceRepository` is the GitHub `owner/repo` of the workspace that
|
|
654
|
+
owns the human source files; it may differ from every release unit's
|
|
655
|
+
`publicRepo`. `project.defaultBranch` is that repository's actual remote
|
|
656
|
+
default branch and is not assumed to be `main`.
|
|
657
|
+
|
|
658
|
+
Production prepare freezes a content-and-mode closure of every expanded
|
|
659
|
+
`publicFiles.from` input and each unit's `version.source`. It rejects only
|
|
660
|
+
uncommitted changes inside that closure. Before any publish adapter executes,
|
|
661
|
+
release-skill verifies the same closure on the remote default branch. Commit
|
|
662
|
+
ancestry is intentionally irrelevant: merge, squash, and rebase are accepted
|
|
663
|
+
when the bytes still match, while a reverted or conflict-lost README is
|
|
664
|
+
blocked by path. Resolve differences manually and put the accepted content on
|
|
665
|
+
the default branch; release-skill never merges, switches branches, pushes, or
|
|
666
|
+
creates a PR.
|
|
667
|
+
|
|
646
668
|
## Protect Human-Owned Content
|
|
647
669
|
|
|
648
670
|
README text, slogans, examples, layout, and other manually curated source files
|
|
@@ -673,10 +695,12 @@ When an existing public copy has drifted, choose explicitly:
|
|
|
673
695
|
a release plan.
|
|
674
696
|
- Before production, configure every unit's `previousPublicBaseline`. Use
|
|
675
697
|
`mode: bound` with the exact `repo`, `ref`, and `commit` for an existing
|
|
676
|
-
public version
|
|
698
|
+
public version. Also configure the workspace `project.sourceRepository` and
|
|
699
|
+
its real `project.defaultBranch`, then run
|
|
700
|
+
`"${CLI[@]}" prepare --root <your-project> --online --production`.
|
|
677
701
|
The default observer proves only the ref-to-commit mapping; remote content is
|
|
678
|
-
not downloaded
|
|
679
|
-
|
|
702
|
+
not downloaded during prepare. Source content authority and target
|
|
703
|
+
branch/tag/Release/npm uniqueness are checked by publish before any execute.
|
|
680
704
|
- For production commands, use only the immutable `planPath` returned by
|
|
681
705
|
`prepare --json` and immutable `approvalPath` returned by `approve --json`.
|
|
682
706
|
Mutable latest aliases are for convenience and are not production authority.
|
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.2.
|
|
5
|
+
<!-- release-skill:release-version: 0.2.6 -->
|
|
6
6
|
## 前置条件
|
|
7
7
|
|
|
8
8
|
- Node.js 22.0.0 或更高版本
|
|
@@ -112,7 +112,7 @@ release-skill 把 Kimi 安装建模为“版本钉死的手动安装 + 可信观
|
|
|
112
112
|
必须核实已安装插件清单版本等于冻结版本;否则**不得**出具证明。
|
|
113
113
|
|
|
114
114
|
```
|
|
115
|
-
/plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.2.
|
|
115
|
+
/plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.2.6
|
|
116
116
|
/plugins reload
|
|
117
117
|
```
|
|
118
118
|
|
|
@@ -124,7 +124,7 @@ release-skill 把 Kimi 安装建模为“版本钉死的手动安装 + 可信观
|
|
|
124
124
|
```json
|
|
125
125
|
{
|
|
126
126
|
"platform": "kimi",
|
|
127
|
-
"version": "0.2.
|
|
127
|
+
"version": "0.2.6",
|
|
128
128
|
"planDigest": "<64 位十六进制冻结计划摘要>",
|
|
129
129
|
"result": "passed",
|
|
130
130
|
"actor": "<确认人>",
|
|
@@ -178,7 +178,7 @@ codebuddy CLI 可以添加市场并安装插件,但 **`plugin marketplace add`
|
|
|
178
178
|
```json
|
|
179
179
|
{
|
|
180
180
|
"platform": "codebuddy",
|
|
181
|
-
"version": "0.2.
|
|
181
|
+
"version": "0.2.6",
|
|
182
182
|
"planDigest": "<64 位十六进制冻结计划摘要>",
|
|
183
183
|
"result": "passed",
|
|
184
184
|
"actor": "<确认人>",
|
|
@@ -297,7 +297,11 @@ node -e 'require("node:fs").rmSync(process.argv[1],{recursive:true,force:false})
|
|
|
297
297
|
"projectConfig": {
|
|
298
298
|
"apiVersion": "release-skill/v1",
|
|
299
299
|
"kind": "ReleaseProject",
|
|
300
|
-
"project": {
|
|
300
|
+
"project": {
|
|
301
|
+
"name": "my-project",
|
|
302
|
+
"defaultBranch": "main",
|
|
303
|
+
"sourceRepository": "owner/my-workspace"
|
|
304
|
+
},
|
|
301
305
|
"releaseUnits": [{
|
|
302
306
|
"id": "my-project",
|
|
303
307
|
"source": ".",
|
|
@@ -362,6 +366,7 @@ kind: ReleaseProject
|
|
|
362
366
|
project:
|
|
363
367
|
name: my-project
|
|
364
368
|
defaultBranch: main
|
|
369
|
+
sourceRepository: owner/my-workspace
|
|
365
370
|
|
|
366
371
|
releaseUnits:
|
|
367
372
|
- id: my-project
|
|
@@ -512,6 +517,19 @@ production:
|
|
|
512
517
|
|
|
513
518
|
后两种策略必须在线执行 production prepare。任何不一致都应停止并审阅;只有检查真实远端状态后才能人工更新权威配置,禁止 force push 或弱化基线。
|
|
514
519
|
|
|
520
|
+
### Workspace 源码权威
|
|
521
|
+
|
|
522
|
+
`project.sourceRepository` 是承载人工源文件的 workspace GitHub
|
|
523
|
+
`owner/repo`,可以与各 release unit 的 `publicRepo` 不同。
|
|
524
|
+
`project.defaultBranch` 是该仓库真实的远端默认分支,不假设一定为 `main`。
|
|
525
|
+
|
|
526
|
+
生产 prepare 冻结所有 `publicFiles.from` 展开输入和各 unit
|
|
527
|
+
`version.source` 的内容与 Git mode,只拒绝这个闭包内的未提交变化。publish 在任何
|
|
528
|
+
adapter execute 前从远端默认分支比较同一闭包。判定不依赖 commit ancestry,因此
|
|
529
|
+
merge、squash、rebase 后字节仍一致即可通过;README 被 revert 或冲突解决丢失时按路径
|
|
530
|
+
阻断。差异必须由人工处理并把接受内容放入默认分支;release-skill 不自动 merge、切分支、
|
|
531
|
+
push 或创建 PR。
|
|
532
|
+
|
|
515
533
|
## 保护人工维护内容
|
|
516
534
|
|
|
517
535
|
README 文案、slogan、示例、排版及其他人工源文件始终是权威。release-skill 只按 `publicFiles` 映射做快照,不重新生成或覆盖源 README。每次人工编辑后重新 prepare,并批准新的不可变计划;不得编辑冻结快照或复用旧批准绕过变化。
|
|
@@ -528,5 +546,9 @@ README 文案、slogan、示例、排版及其他人工源文件始终是权威
|
|
|
528
546
|
- 缺少配置时运行 `"${CLI[@]}" setup --root <your-project> --json`,在人工决策完成前保持默认 dry-run。
|
|
529
547
|
- 运行 `"${CLI[@]}" assess --root <your-project> --offline` 检查发布就绪度。
|
|
530
548
|
- 运行 `"${CLI[@]}" prepare --root <your-project> --offline` 生成发布计划;release-skill 自身只做本地写入,但项目 hook 可能执行远端操作。
|
|
531
|
-
- 生产前为每个 unit 配置 `previousPublicBaseline`。已有公开版本必须使用 `mode: bound
|
|
549
|
+
- 生产前为每个 unit 配置 `previousPublicBaseline`。已有公开版本必须使用 `mode: bound`,
|
|
550
|
+
绑定精确 `repo`、`ref` 和 `commit`;同时配置 workspace 的
|
|
551
|
+
`project.sourceRepository` 与真实 `project.defaultBranch`,再运行
|
|
552
|
+
`"${CLI[@]}" prepare --root <your-project> --online --production`。prepare 不下载源码
|
|
553
|
+
内容;publish 会在任何 execute 前检查源码权威闭包与目标唯一性。
|
|
532
554
|
- 生产命令只使用 `prepare --json` 返回的不可变 `planPath`,以及 `approve --json` 返回的不可变 `approvalPath`。
|
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.2.
|
|
5
|
+
<!-- release-skill:release-version: 0.2.6 -->
|
|
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,28 +14,27 @@ 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.2.
|
|
17
|
+
**0.2.6** (2026-07-29)
|
|
18
18
|
|
|
19
|
-
v0.2.
|
|
19
|
+
v0.2.6 adds a source-authority content gate so a production release cannot succeed while the project workspace's real default branch still exposes stale public files.
|
|
20
|
+
|
|
21
|
+
**Added**
|
|
22
|
+
|
|
23
|
+
- **Source-authority content closure**: prepare freezes the exact public input paths and executable modes that must exist on the configured source repository's actual default branch.
|
|
24
|
+
- **Pre-publish remote proof**: publish compares the frozen closure with the remote default branch before any external write and records a digest-bound receipt that verify requires.
|
|
20
25
|
|
|
21
26
|
**Changed**
|
|
22
27
|
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
25
|
-
- **Positioning sentences completed**: README and root workspace README now list all supported platforms (Claude Code, CodeBuddy, WorkBuddy, Codex, Kimi Code).
|
|
26
|
-
- **Anti-regression gate expanded**: `sync-version.mjs` TEXT_TARGETS now covers the safe-first-command version statement in both EN and ZH READMEs, preventing future v0.1.9-type drift.
|
|
28
|
+
- **Branch topology tolerance**: projects may develop directly on the default branch or use release branches; compliance is based on final content, not merge ancestry or a hard-coded branch name.
|
|
29
|
+
- **Minimal conflict policy**: divergent or conflicting source state fails closed with diagnostics; Release Skill does not auto-merge, rebase, force-push, or create a replacement branch workflow.
|
|
27
30
|
|
|
28
31
|
**Fixed**
|
|
29
32
|
|
|
30
|
-
- **
|
|
31
|
-
- **Stale counting removed**: replaced fragile 'All four plugin hosts' / '四种插件宿主' with 'All supported plugin hosts' / '各插件宿主'.
|
|
32
|
-
- **Root README boundary corrected**: clarified that README/INSTALL/CHANGELOG are human-maintained source files, while references/schemas/adapters/skills are generated artifacts.
|
|
33
|
-
- **CONTRIBUTING updated**: added 'Do not edit generated files' section documenting the authority source and regeneration workflow for references/, schemas/, adapters/, and skills/.
|
|
34
|
-
- **AGENTS.md language rule adjusted**: governance rules file may use English; user-facing documentation remains Chinese.
|
|
33
|
+
- **Stale workspace README after release**: production publishing now blocks when the source workspace's real default branch does not contain the frozen public README and other declared source inputs.
|
|
35
34
|
<!-- release-skill:managed:end id=latest-release -->
|
|
36
35
|
|
|
37
36
|
<!-- release-skill:capability:external-write-boundary -->
|
|
38
|
-
> **Current boundary:** v0.2.
|
|
37
|
+
> **Current boundary:** v0.2.6 is the current release (v0.2.2 previously held
|
|
39
38
|
> published status before the platform verification convergence fix was added).
|
|
40
39
|
> v0.1.1 completed a real production release to GitHub and npm — the first
|
|
41
40
|
> production-verified milestone — followed by
|
|
@@ -53,7 +52,7 @@ v0.2.4 is a documentation and marketplace-source remediation release. It correct
|
|
|
53
52
|
> publish global preflight.
|
|
54
53
|
|
|
55
54
|
<!-- release-skill:capability:safe-first-command -->
|
|
56
|
-
> **Production path verified since the v0.1.1 milestone; v0.2.
|
|
55
|
+
> **Production path verified since the v0.1.1 milestone; v0.2.6 is the current
|
|
57
56
|
> release.** The npm-installed CLI is the supported user entry. Source checkout
|
|
58
57
|
> is the development/contributor fallback.
|
|
59
58
|
>
|
|
@@ -261,6 +260,15 @@ again; it never rebuilds from a template. Only files listed in `publicFiles` are
|
|
|
261
260
|
copied. `prepare` never refreshes or rewrites human docs — maintainers update
|
|
262
261
|
README, INSTALL, and CHANGELOG first, then prepare, review, and approve.
|
|
263
262
|
|
|
263
|
+
**Workspace source authority:** production config names the workspace source
|
|
264
|
+
repository with `project.sourceRepository` and its real remote default branch
|
|
265
|
+
with `project.defaultBranch`. Prepare binds the content and Git mode of every
|
|
266
|
+
expanded `publicFiles.from` input plus each `version.source`; publish compares
|
|
267
|
+
that frozen closure with the remote default branch before the first adapter
|
|
268
|
+
write. The check accepts merge, squash, and rebase when the bytes still match,
|
|
269
|
+
but blocks a lost or reverted README by path. It never merges, switches
|
|
270
|
+
branches, pushes, or creates a PR.
|
|
271
|
+
|
|
264
272
|
**Write safety:** `setup` is read-only by default (create-once after digest
|
|
265
273
|
confirmation). `prepare` writes only under `.release-skill/`. `publish` is the
|
|
266
274
|
production write entry, requiring both approval and the current plan digest.
|
|
@@ -291,6 +299,7 @@ kind: ReleaseProject
|
|
|
291
299
|
project:
|
|
292
300
|
name: my-project
|
|
293
301
|
defaultBranch: main
|
|
302
|
+
sourceRepository: owner/my-workspace
|
|
294
303
|
releaseUnits:
|
|
295
304
|
- id: my-project
|
|
296
305
|
source: .
|
|
@@ -331,6 +340,7 @@ kind: ReleaseProject
|
|
|
331
340
|
project:
|
|
332
341
|
name: my-workspace
|
|
333
342
|
defaultBranch: main
|
|
343
|
+
sourceRepository: owner/my-workspace
|
|
334
344
|
releaseUnits:
|
|
335
345
|
- id: my-app
|
|
336
346
|
source: packages/app
|
|
@@ -388,7 +398,11 @@ and binding the same id in `selectedGateIds`:
|
|
|
388
398
|
"projectConfig": {
|
|
389
399
|
"apiVersion": "release-skill/v1",
|
|
390
400
|
"kind": "ReleaseProject",
|
|
391
|
-
"project": {
|
|
401
|
+
"project": {
|
|
402
|
+
"name": "my-project",
|
|
403
|
+
"defaultBranch": "main",
|
|
404
|
+
"sourceRepository": "owner/my-workspace"
|
|
405
|
+
},
|
|
392
406
|
"releaseUnits": [{
|
|
393
407
|
"id": "my-project",
|
|
394
408
|
"source": ".",
|
package/README.zh-CN.md
CHANGED
|
@@ -2,34 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
|
|
4
4
|
|
|
5
|
-
<!-- release-skill:release-version: 0.2.
|
|
5
|
+
<!-- release-skill:release-version: 0.2.6 -->
|
|
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.2.
|
|
11
|
+
**0.2.6** (2026-07-29)
|
|
12
12
|
|
|
13
|
-
v0.2.
|
|
13
|
+
v0.2.6 新增源码权威内容门,避免生产发布完成后,项目工作区的真实默认分支仍对外展示旧 README 等公开文件。
|
|
14
|
+
|
|
15
|
+
**新增**
|
|
16
|
+
|
|
17
|
+
- **源码权威内容闭包**:prepare 冻结必须出现在所配置源码仓真实默认分支上的公开输入路径、内容与可执行位。
|
|
18
|
+
- **发布前远端证明**:publish 在任何外部写入前对比冻结闭包与远端默认分支,并生成摘要绑定的收据;verify 必须消费该收据。
|
|
14
19
|
|
|
15
20
|
**变更**
|
|
16
21
|
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
- **定位句补全**:README 和根工作区 README 现列出所有支持平台(Claude Code、CodeBuddy、WorkBuddy、Codex、Kimi Code)。
|
|
20
|
-
- **防复发门禁扩展**:`sync-version.mjs` TEXT_TARGETS 现覆盖中英文 README 的 safe-first-command 版本陈述,防止未来 v0.1.9 类漂移。
|
|
22
|
+
- **兼容不同分支拓扑**:项目既可直接在默认分支迭代,也可使用发布分支;是否合规只看最终内容,不依赖合并祖先关系或写死的分支名。
|
|
23
|
+
- **最小冲突策略**:分叉或冲突状态失败关闭并给出诊断;Release Skill 不自动 merge、rebase、force-push,也不引入替代性的分支工作流。
|
|
21
24
|
|
|
22
25
|
**修复**
|
|
23
26
|
|
|
24
|
-
-
|
|
25
|
-
- **移除易漂移计数**:将 'All four plugin hosts' / '四种插件宿主' 替换为 'All supported plugin hosts' / '各插件宿主'。
|
|
26
|
-
- **根 README 边界修正**:明确 README/INSTALL/CHANGELOG 是人工维护的源文件,references/schemas/adapters/skills 是生成产物。
|
|
27
|
-
- **CONTRIBUTING 更新**:新增'不要直接编辑生成物'章节,说明 references/、schemas/、adapters/、skills/ 的权威来源和再生命令。
|
|
28
|
-
- **AGENTS.md 语言规则调整**:治理规则文件可使用英文;面向用户的文档仍使用中文。
|
|
27
|
+
- **修复发布后工作区 README 陈旧**:当源码工作区真实默认分支缺少冻结后的 README 或其他声明输入时,生产发布会在外部写入前阻断。
|
|
29
28
|
<!-- release-skill:managed:end id=latest-release -->
|
|
30
29
|
|
|
31
30
|
<!-- release-skill:capability:external-write-boundary -->
|
|
32
|
-
> **当前边界:** v0.2.
|
|
31
|
+
> **当前边界:** v0.2.6 是当前发布版本(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
|
|
33
32
|
> v0.1.1 已完成 GitHub 与 npm 的
|
|
34
33
|
> 真实生产发布,是首次生产验证的历史里程碑,并从冻结 Git ref 完成精确 npm
|
|
35
34
|
> 安装及 Claude/Codex 消费者安装验证;"当前发布版本"与"首次生产验证里程碑"
|
|
@@ -42,7 +41,7 @@ v0.2.4 是文档与市场来源整改版本。将默认市场来源纠正为 bun
|
|
|
42
41
|
> 远端唯一性检查在 `publish` 全局预检执行。
|
|
43
42
|
|
|
44
43
|
<!-- release-skill:capability:safe-first-command -->
|
|
45
|
-
> **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.2.
|
|
44
|
+
> **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.2.6 是当前发布版本。**
|
|
46
45
|
> npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
|
|
47
46
|
>
|
|
48
47
|
> **第一条命令:**
|
|
@@ -233,6 +232,13 @@ DISCOVERED -> ASSESSED -> PREPARED -> APPROVED -> PUBLISHING -> PUBLISHED -> VER
|
|
|
233
232
|
|
|
234
233
|
**写入安全:** `setup` 默认只读(摘要确认后仅首次创建配置)。`prepare` 只写 `.release-skill/`。`publish` 是生产写入入口,需要同时提供批准和当前计划摘要。项目 hook 和 gate 是已确认的本地进程,没有操作系统沙箱。
|
|
235
234
|
|
|
235
|
+
**Workspace 源码权威:** 生产配置使用 `project.sourceRepository` 指定 workspace
|
|
236
|
+
源仓库,并用 `project.defaultBranch` 指定其真实远端默认分支。prepare 冻结所有
|
|
237
|
+
`publicFiles.from` 展开文件及各 `version.source` 的内容与 Git mode;publish 在第一个
|
|
238
|
+
adapter 写入前与远端默认分支比较。普通 merge、squash、rebase 后内容仍一致即可通过;
|
|
239
|
+
README 被冲突解决或 revert 丢失时会精确到路径阻断。系统不会自动合并、切分支、push
|
|
240
|
+
或创建 PR。
|
|
241
|
+
|
|
236
242
|
## 文档导航
|
|
237
243
|
|
|
238
244
|
| 文档 | 说明 |
|
|
@@ -257,6 +263,7 @@ kind: ReleaseProject
|
|
|
257
263
|
project:
|
|
258
264
|
name: my-project
|
|
259
265
|
defaultBranch: main
|
|
266
|
+
sourceRepository: owner/my-workspace
|
|
260
267
|
releaseUnits:
|
|
261
268
|
- id: my-project
|
|
262
269
|
source: .
|
|
@@ -295,6 +302,7 @@ kind: ReleaseProject
|
|
|
295
302
|
project:
|
|
296
303
|
name: my-workspace
|
|
297
304
|
defaultBranch: main
|
|
305
|
+
sourceRepository: owner/my-workspace
|
|
298
306
|
releaseUnits:
|
|
299
307
|
- id: my-app
|
|
300
308
|
source: packages/app
|
|
@@ -351,7 +359,11 @@ releaseUnits:
|
|
|
351
359
|
"projectConfig": {
|
|
352
360
|
"apiVersion": "release-skill/v1",
|
|
353
361
|
"kind": "ReleaseProject",
|
|
354
|
-
"project": {
|
|
362
|
+
"project": {
|
|
363
|
+
"name": "my-project",
|
|
364
|
+
"defaultBranch": "main",
|
|
365
|
+
"sourceRepository": "owner/my-workspace"
|
|
366
|
+
},
|
|
355
367
|
"releaseUnits": [{
|
|
356
368
|
"id": "my-project",
|
|
357
369
|
"source": ".",
|