@oevery/rsp 3.1.0-beta.0 → 3.1.0-beta.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.
package/README.md CHANGED
@@ -34,17 +34,17 @@ RSP derives the next action from the selected Change, repository evidence, verif
34
34
  ## Quick start
35
35
 
36
36
  ```bash
37
- npx -y @oevery/rsp@3.1.0-beta.0 init
38
- npx -y @oevery/rsp@3.1.0-beta.0 doctor
37
+ npx -y @oevery/rsp@3.1.0-beta.1 init
38
+ npx -y @oevery/rsp@3.1.0-beta.1 doctor
39
39
  ```
40
40
 
41
41
  Recommended bootstrap flow:
42
42
 
43
43
  ```bash
44
- npx -y @oevery/rsp@3.1.0-beta.0 init --with-project-setup
44
+ npx -y @oevery/rsp@3.1.0-beta.1 init --with-project-setup
45
45
  # fill .rsp/changes/project-setup.md
46
46
  # fill .rsp/specs/design.md
47
- npx -y @oevery/rsp@3.1.0-beta.0 doctor
47
+ npx -y @oevery/rsp@3.1.0-beta.1 doctor
48
48
  ```
49
49
 
50
50
  ## Artifact foundation
@@ -205,7 +205,7 @@ Surface matrix:
205
205
 
206
206
  Humans should usually start with `README.md`; agents should follow nearest `AGENTS.md`, load the `rsp` skill when available, and use `.rsp/rsp-rules.md` only as fallback.
207
207
 
208
- When this README shows `rsp <command>`, it assumes the command is already available in your environment. For this opt-in beta, otherwise use the exact `npx -y @oevery/rsp@3.1.0-beta.0 <command>` identity after publication; stable users can keep using the unversioned package entrypoint for npm `latest`.
208
+ When this README shows `rsp <command>`, it assumes the command is already available in your environment. For opt-in beta evaluation, pin the exact prerelease identity, such as `npx -y @oevery/rsp@3.1.0-beta.1 <command>`; stable users can keep using the unversioned package entrypoint for npm `latest`.
209
209
 
210
210
  Install the exact package-bundled suite into the current project:
211
211
 
@@ -214,14 +214,14 @@ rsp skills install --dry-run
214
214
  rsp skills install
215
215
  ```
216
216
 
217
- The command preflights all ten package-owned targets, leaves unrelated `.agents/skills` entries untouched, and requires explicit `--force` before replacing a divergent package-owned directory. It installs from the package that invoked `rsp`, so prerelease dogfooding can use one exact npm identity after publication:
217
+ The command preflights all ten package-owned targets, leaves unrelated `.agents/skills` entries untouched, and requires explicit `--force` before replacing a divergent package-owned directory. It installs from the package that invoked `rsp`, so prerelease dogfooding can pin one exact npm identity:
218
218
 
219
219
  ```bash
220
- npx -y @oevery/rsp@3.1.0-beta.0 skills install --dry-run
221
- npx -y @oevery/rsp@3.1.0-beta.0 skills install
220
+ npx -y @oevery/rsp@3.1.0-beta.1 skills install --dry-run
221
+ npx -y @oevery/rsp@3.1.0-beta.1 skills install
222
222
  ```
223
223
 
224
- These registry commands remain unavailable until `3.1.0-beta.0` is published. `rsp update` refreshes RSP-managed project files only; run `rsp skills install` separately to refresh the package-owned Skill suite.
224
+ Exact prerelease identities avoid depending on a moving dist-tag. `rsp update` refreshes RSP-managed project files only; run `rsp skills install` separately to refresh the package-owned Skill suite.
225
225
 
226
226
  ## Migrating from 2.x
227
227
 
@@ -272,8 +272,8 @@ Durable review makes two independent semantic choices: whether current facts or
272
272
 
273
273
  New project:
274
274
 
275
- 1. `npx -y @oevery/rsp@3.1.0-beta.0 init`
276
- 2. Prefer `npx -y @oevery/rsp@3.1.0-beta.0 init --with-project-setup`, or run `rsp create project-setup` manually
275
+ 1. `npx -y @oevery/rsp@3.1.0-beta.1 init`
276
+ 2. Prefer `npx -y @oevery/rsp@3.1.0-beta.1 init --with-project-setup`, or run `rsp create project-setup` manually
277
277
  3. Fill `.rsp/specs/design.md`
278
278
  4. Use `rsp add spec <name>` only when a new durable project doc is needed
279
279
  5. Keep lasting rationale in the configured Decision Record directory and stable scoped operating instructions in the nearest project-owned `AGENTS.md`
@@ -286,14 +286,14 @@ New project:
286
286
 
287
287
  Existing project with a rich `AGENTS.md`:
288
288
 
289
- 1. `npx -y @oevery/rsp@3.1.0-beta.0 init`
289
+ 1. `npx -y @oevery/rsp@3.1.0-beta.1 init`
290
290
  2. Keep the managed block thin
291
291
  3. Move durable design into `.rsp/specs/design.md`
292
292
  4. Use `rsp add spec <name>` only when another durable current-fact document is needed
293
293
 
294
294
  AI-assisted setup:
295
295
 
296
- 1. `npx -y @oevery/rsp@3.1.0-beta.0 init --agents-mode print --with-project-setup`
296
+ 1. `npx -y @oevery/rsp@3.1.0-beta.1 init --agents-mode print --with-project-setup`
297
297
  2. Keep the managed block as generated and adapt only the surrounding human-owned content if needed
298
298
  3. Have the AI review and fill `.rsp/changes/project-setup.md`
299
299
  4. Have the AI fill `.rsp/specs/design.md`
package/README.zh-CN.md CHANGED
@@ -34,17 +34,17 @@ RSP 根据 selected Change、仓库证据、验证结果和 blockers 推导下
34
34
  ## 快速开始
35
35
 
36
36
  ```bash
37
- npx -y @oevery/rsp@3.1.0-beta.0 init
38
- npx -y @oevery/rsp@3.1.0-beta.0 doctor
37
+ npx -y @oevery/rsp@3.1.0-beta.1 init
38
+ npx -y @oevery/rsp@3.1.0-beta.1 doctor
39
39
  ```
40
40
 
41
41
  推荐启动流程:
42
42
 
43
43
  ```bash
44
- npx -y @oevery/rsp@3.1.0-beta.0 init --with-project-setup
44
+ npx -y @oevery/rsp@3.1.0-beta.1 init --with-project-setup
45
45
  # 填写 .rsp/changes/project-setup.md
46
46
  # 填写 .rsp/specs/design.md
47
- npx -y @oevery/rsp@3.1.0-beta.0 doctor
47
+ npx -y @oevery/rsp@3.1.0-beta.1 doctor
48
48
  ```
49
49
 
50
50
  ## Artifact foundation
@@ -190,7 +190,7 @@ RSP 发布十个宿主无关、按需加载的 Skills:
190
190
 
191
191
  通常应由人先读 `README.md`;agent 应遵循 nearest `AGENTS.md`,可用时加载 `rsp` skill,仅在 skill 不可用时读取 `.rsp/rsp-rules.md`。
192
192
 
193
- 如果文档中写的是 `rsp <command>`,默认前提是你的环境里已经能直接运行 `rsp`。对本次 opt-in beta,发布后应使用精确身份 `npx -y @oevery/rsp@3.1.0-beta.0 <command>`;stable 用户仍可使用不带版本的入口获取 npm `latest`。
193
+ 如果文档中写的是 `rsp <command>`,默认前提是你的环境里已经能直接运行 `rsp`。进行 opt-in beta 评估时,应固定精确 prerelease 身份,例如 `npx -y @oevery/rsp@3.1.0-beta.1 <command>`;stable 用户仍可使用不带版本的入口获取 npm `latest`。
194
194
 
195
195
  将当前精确包内置的完整 Skill 套件安装到当前项目:
196
196
 
@@ -199,14 +199,14 @@ rsp skills install --dry-run
199
199
  rsp skills install
200
200
  ```
201
201
 
202
- 该命令会预检全部十个 package-owned targets,保留无关的 `.agents/skills` 条目,并且只有显式传入 `--force` 才会替换内容不同的 package-owned 目录。它从调用 `rsp` 的同一个包安装,因此 beta 发布后可以固定精确 npm 身份:
202
+ 该命令会预检全部十个 package-owned targets,保留无关的 `.agents/skills` 条目,并且只有显式传入 `--force` 才会替换内容不同的 package-owned 目录。它从调用 `rsp` 的同一个包安装,因此 beta 评估可以固定精确 npm 身份:
203
203
 
204
204
  ```bash
205
- npx -y @oevery/rsp@3.1.0-beta.0 skills install --dry-run
206
- npx -y @oevery/rsp@3.1.0-beta.0 skills install
205
+ npx -y @oevery/rsp@3.1.0-beta.1 skills install --dry-run
206
+ npx -y @oevery/rsp@3.1.0-beta.1 skills install
207
207
  ```
208
208
 
209
- 在 `3.1.0-beta.0` 实际发布前,上述 registry 命令不可用。`rsp update` 只刷新由 RSP 管理的项目文件;刷新 package-owned Skill 套件需要单独运行 `rsp skills install`。
209
+ 精确 prerelease 身份可以避免依赖持续移动的 dist-tag。`rsp update` 只刷新由 RSP 管理的项目文件;刷新 package-owned Skill 套件需要单独运行 `rsp skills install`。
210
210
 
211
211
  ## 从 2.x 迁移
212
212
 
@@ -257,8 +257,8 @@ durable review 包含两个独立语义判断:是否更新当前事实或作
257
257
 
258
258
  新项目:
259
259
 
260
- 1. `npx -y @oevery/rsp@3.1.0-beta.0 init`
261
- 2. 优先使用 `npx -y @oevery/rsp@3.1.0-beta.0 init --with-project-setup`,或手动执行 `rsp create project-setup`
260
+ 1. `npx -y @oevery/rsp@3.1.0-beta.1 init`
261
+ 2. 优先使用 `npx -y @oevery/rsp@3.1.0-beta.1 init --with-project-setup`,或手动执行 `rsp create project-setup`
262
262
  3. 填写 `.rsp/specs/design.md`
263
263
  4. 仅在需要新的长期项目文档时使用 `rsp add spec <name>`
264
264
  5. 将长期理由写入配置的 Decision Record 目录,将稳定的作用域操作指令写入 nearest project-owned `AGENTS.md`
@@ -271,14 +271,14 @@ durable review 包含两个独立语义判断:是否更新当前事实或作
271
271
 
272
272
  已有复杂 `AGENTS.md` 的项目:
273
273
 
274
- 1. `npx -y @oevery/rsp@3.1.0-beta.0 init`
274
+ 1. `npx -y @oevery/rsp@3.1.0-beta.1 init`
275
275
  2. 保持受管块尽量薄
276
276
  3. 将长期设计收敛到 `.rsp/specs/design.md`
277
277
  4. 只有需要额外的 durable current-fact 文档时才使用 `rsp add spec <name>`
278
278
 
279
279
  AI 协助接入:
280
280
 
281
- 1. `npx -y @oevery/rsp@3.1.0-beta.0 init --agents-mode print --with-project-setup`
281
+ 1. `npx -y @oevery/rsp@3.1.0-beta.1 init --agents-mode print --with-project-setup`
282
282
  2. 保持受管块原样,只在需要时调整周围由人维护的内容
283
283
  3. 让 AI 审阅并填写 `.rsp/changes/project-setup.md`
284
284
  4. 让 AI 填写 `.rsp/specs/design.md`
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@oevery/rsp",
3
3
  "type": "module",
4
- "version": "3.1.0-beta.0",
4
+ "version": "3.1.0-beta.1",
5
5
  "description": "RSP (Reliable Software Practice), a repository-native engineering workflow for humans and AI agents",
6
6
  "author": "oevery",
7
7
  "license": "MIT",
@@ -37,7 +37,8 @@
37
37
  },
38
38
  "scripts": {
39
39
  "prepare": "pnpm run build",
40
- "release:check": "pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run test && pnpm run release:package-check",
40
+ "release:check": "pnpm run release:metadata-check && pnpm run build && pnpm run typecheck && pnpm run lint && pnpm run test && pnpm run release:package-check",
41
+ "release:metadata-check": "node scripts/release-metadata-check.mjs",
41
42
  "release:package-check": "node scripts/clean-install-check.mjs",
42
43
  "prepublishOnly": "pnpm run release:check",
43
44
  "build": "tsup",
@@ -39,7 +39,7 @@ This file is the minimal fallback protocol for agents that cannot load the `rsp`
39
39
  - Persist only `open` and `archived`; readiness, blockers, verification, and next actions are derived.
40
40
  - Ordinary implementation is the default after unexplained failures have been ruled out. Use test-first work only when user, Change, or project authority requires it or a concrete changed risk makes a focused pre-mutation failure materially safer. Retain a new test only when it protects observable behavior or a real boundary, adds distinct future confidence, avoids duplicate or implementation-detail coverage, and has proportionate maintenance cost; otherwise remove the temporary probe and use the smallest decisive final verification.
41
41
  - Route one isolated domain, module/seam, or evidence-seeking design question to `rsp-design` when available, or use a compact manual design pass. Return evidence, alternatives, owner decisions, and any authorized planned-design update to the same selected Change; do not implement or write durable current truth from that pass.
42
- - Route release documentation only when the selected Change explicitly owns a confirmed release identity or range and still has unfinished changelog, release-note, or migration work. Select `rsp-release-docs` when available, or use the same evidence-led manual fallback; lifecycle stage, completed implementation, and archive readiness alone are insufficient. This route never grants commit, tag, push, release creation, publication, deployment, or approval authority.
42
+ - Route release documentation only when a dedicated Release Change explicitly owns a confirmed release identity or range and still has unfinished changelog, release-note, or migration work. Identity is confirmed only by explicit user instruction or authoritative release configuration; never infer it from version order, prior prereleases, commits, or planned prose. Until confirmation, keep release planning version-neutral and leave manifests, target changelog headings, exact-version documentation, versioned release notes, and tag comparisons unchanged. Select `rsp-release-docs` when available, or use the same evidence-led manual fallback; lifecycle stage, completed implementation, and archive readiness alone are insufficient. This route never grants commit, tag, push, release creation, publication, deployment, or approval authority.
43
43
  - Do not infer current work from open Changes or filenames.
44
44
  - Prefer RSP commands for deterministic setup, status, validation, repair, focus, index, and archive operations.
45
45
 
@@ -49,7 +49,7 @@ This file is the minimal fallback protocol for agents that cannot load the `rsp`
49
49
  - Project-owned `CONTEXT.md` owns stable navigation or scoped current context, while project-owned `AGENTS.md` owns stable operating instructions. Preserve their conventions and never treat RSP as their owner.
50
50
  - Before archive, decide independently whether current facts need a Spec or scoped-instruction update and whether lasting rationale needs a Decision Record.
51
51
  - Before archive, compress the Change to its final outcome, current design, completed delivery tasks, final decisive verification, and unresolved risks. Keep RED/GREEN/REFACTOR cycles, temporary probes, command transcripts, and step-by-step review corrections in the response instead of the Change or Archive.
52
- - After required durable updates, Core recommends explicit archive before final Git delivery. Core does not execute archive or grant authority to stage, commit, push, or publish.
52
+ - After required durable updates, Core recommends explicit archive before final Git delivery. Keep each completed Change independently reviewable; with explicit Git authority deliver it as one logical commit before a separate Release Change and dedicated release commit finalize versioned shipped surfaces. Core does not execute archive or grant authority to stage, commit, push, or publish.
53
53
  - Decision Records are for hard-to-reverse choices with real tradeoffs; they do not duplicate current facts.
54
54
  - Change Spec deltas are planning aids and are never promoted automatically into Specs or Decision Records.
55
55
  - Keep task history, debugging notes, and transient execution state out of Specs and Decision Records.
@@ -4,7 +4,7 @@ description: Use this skill when initializing RSP, operating an existing .rsp pr
4
4
  license: MIT
5
5
  metadata:
6
6
  author: oevery
7
- version: "2026.07.24.1"
7
+ version: "2026.07.25.2"
8
8
  ---
9
9
 
10
10
  # RSP Skill
@@ -49,19 +49,26 @@ Diagnosis takes precedence over TDD: do not encode an unexplained symptom as a g
49
49
 
50
50
  Use the release-documentation branch only when the selected Change explicitly owns a confirmed release identity or range and still has unfinished changelog, release-note, or migration work. Lifecycle stage, completed implementation, or archive readiness alone is insufficient; ordinary Changes continue to the Core durable decision.
51
51
 
52
+ Treat release identity as an owner decision. It is confirmed only by an explicit user instruction or authoritative repository release configuration; never infer it from version ordering, a previous prerelease, commit contents, or planned prose. Until confirmation, keep any release ledger version-neutral and leave version manifests, target changelog headings, exact-version README commands, versioned release notes, and tag comparisons unchanged.
53
+
52
54
  When both conditions hold, select `rsp-release-docs` when available. Otherwise use the manual release-documentation fallback against the same Change: confirm the release range and audience, build one net-release evidence ledger, and project it into the repository-owned changelog, release notes, and applicable migration guidance. This route prepares or audits documentation only; it does not grant commit, tag, push, release creation, publication, deployment, or approval authority.
53
55
 
56
+ An explicit request to create a release tag, hosted release, registry publication, or equivalent public release has an additional mandatory finalization gate. Before any external action, require either one selected Change or one explicitly named archived release Change to own the confirmed release identity and range, then select the `rsp-release-docs` **Finalize for publication** branch even if the prose was already reviewed. When project authority requires archive before final Git delivery, finish the durable decision and lifecycle closeout first, commit that closeout, and rerun the exact finalization checks against the post-archive candidate ref; only that immutable candidate may receive `ready`. The gate inspects the public tag/package release surfaces, rejects transient publication-state prose in shipped artifacts, and returns a credential-free `ready` or `not ready` handoff. If the Skill is unavailable, perform the same checks with the manual fallback. Neither result executes or grants authority for the external action.
57
+
58
+ After an observed publication, use the `rsp-release-docs` **Reconcile published release** branch only when the selected or explicitly named archived release owner has unfinished external verification or mutable public-surface corrections. Keep immutable discrepancies historical and assign a corrective version or owner instead of moving tags or rewriting packages.
59
+
54
60
  Apply these gates in order:
55
61
 
56
62
  1. If authority, selection, or a material owner decision is ambiguous, return the one decision or evidence needed to proceed. If a declared blocker prevents the next operation, return its owning artifact or person; do not route around it.
57
63
  2. If the user explicitly requests managed continuation, select `rsp-manage` only when it is available. Its eligibility gate activates only for one focused ready Change with genuinely independent slices, long authorized continuation, or interruption recovery; an ineligible request returns the exact ordinary Core or Discipline next action without mutation or controller artifacts. Managed routing is never implicit and grants no lifecycle, Git, publication, deployment, approval, or human-acceptance authority.
58
64
  3. If the user requests a report-only review against a fixed scope, select `rsp-review` only when it is available; otherwise name the manual read-only review and return its findings to the selected Change's Tasks, Verify, or Blockers.
59
- 4. If no Change is selected, use the status plan to name one ready WorkRef and the direct focus action. For tiny settled work, return the direct engineering action without creating RSP state. For unclear non-trivial work, select `rsp-shape` only when it is available and the user authorized its Change mutation; otherwise give the manual fallback of creating or refining one Change.
60
- 5. If the user or Shape has isolated one material domain, module/seam, or evidence-seeking design question for the selected Change, select `rsp-design` when available; otherwise return the compact manual design fallback: inspect project authority and the live path, compare credible alternatives, separate evidence from owner choice, and return the result to the same WorkRef without implementation or durable-truth mutation.
61
- 6. If the selected Change is not shape-ready and no bounded design question has been isolated, select `rsp-shape` under the same authority rule or give the manual fallback of completing its Proposal, Spec, Design, Tasks, Verify, and Blockers.
62
- 7. If a shape-ready Change has incomplete implementation tasks, or its required verification is missing, stale, or failed, apply the implementation-evidence routing above. Select only its resulting available capability when authorized; otherwise name its manual fallback owned by that Change.
63
- 8. If implementation Tasks and required verification pass with no blocker, and the selected Change meets both release-documentation conditions above, select `rsp-release-docs` under the same availability rule or use its manual fallback. Return its evidence and artifact dispositions to the same Change.
64
- 9. Otherwise, when required Tasks and verification pass with no blocker, perform the Core durable decision. Archive only after required current facts and rationale are written or explicitly judged unnecessary. Recommend explicit archive as the next action before final Git delivery; Core does not execute archive or grant authority to stage, commit, push, or publish.
65
+ 4. If the user explicitly requests a tag, hosted release, registry publication, or published-release reconciliation, resolve exactly one selected or explicitly named archived release owner with the confirmed identity and range, then run the `rsp-release-docs` finalization or reconciliation branch and return its credential-free result. This gate precedes ordinary no-focus and implementation routing so a post-archive release owner is not replaced by an unrelated ready Change. Missing owner evidence returns the exact required release owner; the gate never executes or grants the external action.
66
+ 5. If no Change is selected, use the status plan to name one ready WorkRef and the direct focus action. For tiny settled work, return the direct engineering action without creating RSP state. For unclear non-trivial work, select `rsp-shape` only when it is available and the user authorized its Change mutation; otherwise give the manual fallback of creating or refining one Change.
67
+ 6. If the user or Shape has isolated one material domain, module/seam, or evidence-seeking design question for the selected Change, select `rsp-design` when available; otherwise return the compact manual design fallback: inspect project authority and the live path, compare credible alternatives, separate evidence from owner choice, and return the result to the same WorkRef without implementation or durable-truth mutation.
68
+ 7. If the selected Change is not shape-ready and no bounded design question has been isolated, select `rsp-shape` under the same authority rule or give the manual fallback of completing its Proposal, Spec, Design, Tasks, Verify, and Blockers.
69
+ 8. If a shape-ready Change has incomplete implementation tasks, or its required verification is missing, stale, or failed, apply the implementation-evidence routing above. Select only its resulting available capability when authorized; otherwise name its manual fallback owned by that Change.
70
+ 9. If implementation Tasks and required verification pass with no blocker, and the selected Change meets both ordinary release-documentation conditions above, select `rsp-release-docs` under the same availability rule or use its manual fallback. Return its evidence and surface dispositions to the same Change.
71
+ 10. Otherwise, when required Tasks and verification pass with no blocker, perform the Core durable decision. Archive only after required current facts and rationale are written or explicitly judged unnecessary. Recommend explicit archive as the next action before final Git delivery; Core does not execute archive or grant authority to stage, commit, push, or publish. Keep each completed Change independently reviewable. If later Git authority is granted, deliver that Change as its own logical commit before a separately owned Release Change finalizes versioned shipped surfaces in a dedicated release commit.
65
72
 
66
73
  State the derived stage, one next action, required input, returned owner, and decisive evidence. Name at most one available optional capability. Only name an optional capability when it is the one next action, and treat it as available only when it appears in the host's loaded skill inventory. Missing optional capabilities never invalidate RSP; always provide the manual fallback against the same owner.
67
74
 
@@ -4,7 +4,7 @@ description: Continue one explicitly requested focused RSP Change through genuin
4
4
  license: MIT
5
5
  metadata:
6
6
  author: oevery
7
- version: "2026.07.24.1"
7
+ version: "2026.07.25.2"
8
8
  ---
9
9
 
10
10
  # RSP Manage
@@ -17,7 +17,7 @@ Require one focused, ready Change and sufficient mutation authority. Snapshot th
17
17
 
18
18
  Activate only for at least two non-overlapping mutation scopes with independent verification, genuinely long authorized continuation, or interruption recovery whose stale-evidence cost justifies orchestration. A small single slice, tightly coupled scopes, or host worker availability alone is ineligible. On decline, make no mutation, create no dispatch envelope, receipt, budget, or controller state, and return the exact Core or Discipline next action without executing it.
19
19
 
20
- Identify allowed mutations, required verification, unavailable acceptance, and lifecycle, Git, publication, deployment, approval, or other external-action boundaries. Preserve unrelated work. Unless the user sets a tighter limit, allow at most four worker dispatches and one corrective retry for the whole run.
20
+ Identify allowed mutations, required verification, unavailable acceptance, and lifecycle, Git, publication, deployment, approval, or other external-action boundaries. Release identity is unconfirmed unless explicit user or repository authority supplies it; never infer it from versions or plans. Preserve unrelated work. Unless the user sets a tighter limit, allow at most four worker dispatches and one corrective retry.
21
21
 
22
22
  ## Dispatch only real work
23
23
 
@@ -36,7 +36,7 @@ For each slice choose the cheapest decisive focused check. Run at most one broad
36
36
 
37
37
  ## Continue from current evidence
38
38
 
39
- After each return inspect the actual diff and freshly observed verification. Accept a slice only when the owned output exists, decisive checks pass, omissions are named, and the Change still owns the result. Continue only after positive progress.
39
+ After each return inspect the diff and fresh verification. Accept only owned output with passing decisive checks and named omissions. Continue only after progress.
40
40
 
41
41
  Use the one corrective retry only when new evidence identifies an in-scope correction. Otherwise stop at the failure. Inspect current worktree and evidence after returns, but reread stable authority only during interruption recovery or when evidenced authority or worktree drift could invalidate the snapshot.
42
42
 
@@ -48,6 +48,8 @@ Keep dispatch details, retry history, limits, and process chronology out of Chan
48
48
 
49
49
  Treat archive guidance as advisory unless the run has explicit lifecycle-closeout authority and Core has completed its durable decision. Archive never grants Git or publication authority.
50
50
 
51
- Stop at an unresolved owner decision, unavailable service, credential, device, environment, or human acceptance; missing external-action authority; verification without an evidenced in-scope correction; drift; or exhausted limits. Do not route around the boundary.
51
+ With explicit Git authority, commit only the completed focused Change after closeout. Keep later versioned surfaces in a separate Release Change and dedicated release commit. Otherwise return the exact commit boundary and owner.
52
+
53
+ Stop at unresolved owner decisions, unavailable dependencies or acceptance, missing external-action authority, uncorrectable verification, drift, or exhausted limits. Do not bypass the boundary.
52
54
 
53
55
  Return only completed and pending slices, fresh verification, omissions, the real boundary owner, and one next action. Do not expose dispatch, retry, or budget chronology and do not claim archive, Git, publication, deployment, approval, or human acceptance that was not completed under explicit authority.
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: rsp-release-docs
3
- description: Prepare and audit evidence-based changelogs, release notes, and migration notes. Use when drafting or updating release documentation, reviewing an Unreleased section, summarizing a version range, deciding references or omissions, or checking that release prose matches shipped behavior and repository conventions.
3
+ description: Prepare, finalize, reconcile, and audit evidence-based changelogs, release notes, and migration notes. Use when drafting or updating release documentation, reviewing an Unreleased section, summarizing a version range, deciding references or omissions, checking that release prose matches shipped behavior, finalizing artifacts before an explicit tag or publication request, or reconciling public release surfaces afterward.
4
4
  license: MIT
5
5
  metadata:
6
6
  author: oevery
7
- version: "2026.07.22.1"
7
+ version: "2026.07.25.2"
8
8
  ---
9
9
 
10
10
  # RSP Release Docs
@@ -26,15 +26,18 @@ Use the higher-precedence source when two sources conflict. Ask one focused ques
26
26
 
27
27
  Completion criterion: name the release range, target version or draft state, audience, output surfaces, language, link style, and allowed mutations from observed authority.
28
28
 
29
+ A release identity is confirmed only when the user states it or an authoritative repository release configuration already selects it. Never infer the next version from semantic-version ordering, a previous prerelease, commit contents, a planned changelog, or package-manager convention. When identity or range remains undecided, return that exact owner decision instead of choosing it.
30
+
29
31
  ## Select the branch
30
32
 
31
33
  - **Audit:** inspect existing release prose and return findings without editing.
32
- - **Prepare:** draft requested artifacts; for a formal release, always include release notes. Update a changelog only when the repository owns one or the user requests one. Include migration guidance whenever users must act.
33
- - **Finalize:** replace Unreleased markers, dates, comparison links, or draft labels only when the release identity is confirmed.
34
+ - **Draft:** build a version-neutral ledger while the release identity may still change. Keep it in the response, temporary work, or an existing release-fragment system; do not mutate version manifests, target changelog headings, exact-version README commands, versioned release-note paths, or tag comparisons before identity is confirmed. Once confirmed, draft the requested release surfaces; for a formal release, always include release notes. Update a changelog only when the repository owns one or the user requests one. Include migration guidance whenever users must act.
35
+ - **Finalize for publication:** with a confirmed release identity and range, make every shipped surface true both immediately before and after publication, then produce a checkable publication handoff. An explicit request to create a tag, GitHub release, registry version, or equivalent public release must pass this branch even when earlier drafts were reviewed. Use the selected release Change before lifecycle closeout or one explicitly named archived release Change afterward; when project authority requires archive before final Git delivery, only the post-archive candidate may receive the final `ready` handoff.
36
+ - **Reconcile published release:** verify the external release against the confirmed identity, repair only authorized mutable public surfaces, and record immutable discrepancies and their remediation owner. Never rewrite a published package or move an existing tag to make evidence appear consistent.
34
37
 
35
- Publication is a separate branch. Preparing prose never grants commit, tag, push, release creation, registry publication, deployment, deletion, or approval authority.
38
+ Publication remains an external action. This Skill never executes commit, tag, push, release creation, registry publication, deployment, deletion, or approval; finalization returns a handoff to the separately authorized operator.
36
39
 
37
- Completion criterion: every requested surface has one disposition: draft, update, audit only, not applicable, or blocked by a named decision.
40
+ Completion criterion: exactly one branch is selected, and every requested surface has one disposition: draft, finalize, reconcile, audit only, not applicable, or blocked by a named decision.
38
41
 
39
42
  ## Collect evidence
40
43
 
@@ -70,6 +73,18 @@ Collapse multiple commits into one outcome. Omit changes added and reverted with
70
73
 
71
74
  Completion criterion: the ledger describes the net released state rather than commit chronology, and every exclusion is intentional.
72
75
 
76
+ ## Assign surface lifetime
77
+
78
+ Classify every release statement by the lifetime and owner of its destination:
79
+
80
+ - **Shipped surfaces:** public release communication and package metadata captured by the release tag or package, including README content, changelog entries, repository release notes, manifests, and migration guides. Internal workflow records merely present in the source tag, such as archived Changes, remain governed by their own artifact lifetime rather than becoming release prose. Finalized shipped prose must be **publication-invariant**: it remains true before publication, at publication, and afterward. Use the target version and stable comparison target; exclude transient claims such as “not yet published,” “available after publication,” pending authentication, live registry state, or comparisons ending at `HEAD`.
81
+ - **Mutable public surfaces:** hosted release descriptions, registry metadata that can be safely changed, and other public records outside the immutable artifact. Keep their stable narrative aligned with shipped surfaces; add post-publication verification only after observing it.
82
+ - **Transient release state:** pending publication, credentials, command progress, authentication status, and unverified registry availability. Keep it in the selected Change, an authorized release tracker, temporary working ledger, or response handoff—never in shipped prose.
83
+
84
+ When a published immutable surface is wrong, preserve the historical artifact, state the discrepancy on an authorized mutable surface, and name a corrective follow-up version or owner. Do not manufacture consistency by changing historical evidence.
85
+
86
+ Completion criterion: every ledger statement has one named surface class and owner, and no transient release state is assigned to a shipped surface.
87
+
73
88
  ## Project the artifacts
74
89
 
75
90
  Read [output contracts](references/output-contracts.md) before creating a new format, preparing a major or breaking release, or producing more than one surface.
@@ -88,6 +103,35 @@ State who is affected, required actions in order, changed defaults or removed su
88
103
 
89
104
  Completion criterion: every statement maps to the ledger, each surface serves its distinct audience and lifetime, and terminology remains consistent across surfaces.
90
105
 
106
+ ## Finalize for publication
107
+
108
+ Enter this gate only with a confirmed target version and release range owned by a dedicated Release Change. Inspect the exact public release surfaces and package inventory, not every internal workflow record present in the source tag. Ordinary implementation Changes must complete their own review and lifecycle closeout first. When Git delivery is authorized, keep their commits independently reviewable and finalize version manifests and versioned shipped surfaces in a separate release commit. When project authority requires archive before final Git delivery, an open Release Change may prepare these surfaces but the final handoff must rerun against the post-archive candidate ref using the explicitly named archived Release Change as authority.
109
+
110
+ Require all of the following before returning a publication handoff:
111
+
112
+ - version manifests, changelog heading and date, release-note identity, migration guidance, and exact-version assertions agree on the target version;
113
+ - the target changelog entry is no longer labeled `Unreleased`;
114
+ - stable comparison links terminate at the target tag or immutable release ref rather than `HEAD`;
115
+ - shipped surfaces contain no pending-publication, pending-authentication, or unverified-live-state prose;
116
+ - the package inventory and release checks have been run at the exact candidate revision, with results and omissions named;
117
+ - required lifecycle closeout is already captured by the candidate revision, and the working tree/candidate relationship is explicit, so the operator can tell exactly what the tag and package will contain.
118
+
119
+ Return a publication handoff containing the target version and immutable candidate ref, required external actions, fresh checks, known omissions, and a clear `ready` or `not ready` result. `ready` means the documentation and candidate are internally eligible for a separately authorized publication operation; it is not publication authority or evidence that publication occurred.
120
+
121
+ Completion criterion: every gate above has observed evidence or the result is `not ready` with the exact failed gate and owner.
122
+
123
+ ## Reconcile a published release
124
+
125
+ After publication, observe the tag target, hosted release state, registry version and dist-tags, and exact-version consumer command when applicable. Compare them to the finalization handoff and shipped artifact inventory. Update authorized mutable public surfaces only when their current state is known; keep unknown external facts explicitly unverified. Record immutable drift as a release discrepancy with its corrective version or owner.
126
+
127
+ Completion criterion: every intended external surface is verified, explicitly unverified, or assigned a discrepancy owner without rewriting immutable release history.
128
+
129
+ ## Protect transient credentials
130
+
131
+ Treat one-time passwords, browser-auth URLs, device codes, and token-bearing query strings as transient credentials even when they expire or are single-use. Keep them out of release prose, Changes, evidence ledgers, command summaries, retained logs, and final responses. Prefer a CLI-owned interactive browser flow only when it does not copy authentication material into retained agent output. If the command would emit that material into a retained transcript, stop and let the authorized human complete authentication in a trusted local terminal, then resume credential-free verification. The release handoff may state that authentication is required or completed, but never include the credential value or URL.
132
+
133
+ Completion criterion: retained artifacts contain only credential-free authentication status, and the publication operator owns any interactive authentication outside this Skill.
134
+
91
135
  ## Apply reference policy
92
136
 
93
137
  Follow repository policy first. Otherwise:
@@ -113,8 +157,11 @@ Check all of the following:
113
157
  - user-visible net outcomes are not fragmented by commit;
114
158
  - links, dates, headings, language, and terminology match observed conventions;
115
159
  - changelog and release notes agree without becoming copies;
160
+ - every shipped statement is publication-invariant and every transient fact stays with its release-state owner;
161
+ - finalization gates are complete before any explicit tag or publication handoff is marked `ready`;
162
+ - retained artifacts and responses contain no transient credential values or token-bearing URLs;
116
163
  - working-tree edits stay within authorized files.
117
164
 
118
165
  Return the release range, artifacts drafted or changed, coverage and exclusions, unresolved decisions, validation performed, and whether any external release action occurred.
119
166
 
120
- Completion criterion: the result is evidence-complete, convention-compatible, and truthful about omissions and publication state.
167
+ Completion criterion: the result is evidence-complete, convention-compatible, lifetime-correct, credential-safe, and truthful about omissions and publication state.