@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 +13 -13
- package/README.zh-CN.md +13 -13
- package/package.json +3 -2
- package/rules/rsp-rules.md +2 -2
- package/skills/rsp/SKILL.md +14 -7
- package/skills/rsp-manage/SKILL.md +6 -4
- package/skills/rsp-release-docs/SKILL.md +54 -7
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.
|
|
38
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
221
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
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
|
-
|
|
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.
|
|
276
|
-
2. Prefer `npx -y @oevery/rsp@3.1.0-beta.
|
|
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.
|
|
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.
|
|
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.
|
|
38
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
206
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
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
|
-
|
|
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.
|
|
261
|
-
2. 优先使用 `npx -y @oevery/rsp@3.1.0-beta.
|
|
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.
|
|
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.
|
|
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.
|
|
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",
|
package/rules/rsp-rules.md
CHANGED
|
@@ -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
|
|
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.
|
package/skills/rsp/SKILL.md
CHANGED
|
@@ -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.
|
|
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
|
|
60
|
-
5. If
|
|
61
|
-
6. If the
|
|
62
|
-
7. If
|
|
63
|
-
8. If implementation
|
|
64
|
-
9.
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
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,
|
|
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.
|
|
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
|
-
- **
|
|
33
|
-
- **Finalize:**
|
|
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
|
|
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,
|
|
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.
|