@oevery/rsp 2.0.3 → 3.1.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,99 +1,172 @@
1
1
  ---
2
2
  name: rsp
3
- description: Use this skill when initializing RSP in a repository, operating an existing .rsp project, auditing or repairing .rsp state, or deciding whether a change needs durable updates before archive.
4
- compatibility:
5
- agents:
6
- - any agent that supports the Agent Skills format
7
- requirements:
8
- - Node.js 18+
9
- - local filesystem read/write access
10
- - shell access for `rsp` or `npx -y @oevery/rsp`
11
- optional_requirements:
12
- - network access for first-run `npx` installation or skill refresh
3
+ description: Use this skill when initializing RSP, operating an existing .rsp project, auditing or repairing .rsp state, or deciding whether a change needs durable updates before archive.
4
+ license: MIT
13
5
  metadata:
14
6
  author: oevery
15
- version: 2.0.3
7
+ version: "2026.07.24.1"
16
8
  ---
17
9
 
18
10
  # RSP Skill
19
11
 
20
- Load this skill when you need to initialize RSP, operate an existing RSP project, audit or repair `.rsp/`, or decide whether a change needs durable updates before archive.
12
+ Load this skill when you need to initialize RSP, operate `.rsp/`, audit or repair RSP state, or make a durable-update decision before archive.
21
13
 
22
- This skill operationalizes the rules in `.rsp/rules/rsp-rules.md`. Always load and follow those rules first.
14
+ This skill is the preferred operational guide. `.rsp/rsp-rules.md` is the only runtime fallback protocol when this skill is unavailable; old projects migrate to it with `rsp update`.
23
15
 
24
16
  Prefer exact file paths, exact commands, and exact durable facts over vague summaries.
25
17
 
18
+ Choose response language and artifact language independently. Render human-facing response headings, field labels, explanations, and conclusions in the language explicitly requested for the response; otherwise follow response-specific project instructions, then the conversation language. Write artifact prose in the language explicitly requested for that artifact; otherwise follow artifact-specific project instructions, then the existing artifact's language, then the conversation language. Preserve canonical RSP artifact headings, keywords, identifiers, paths, commands, and machine-consumed values unchanged. Response-only Continuation and Durable Decision headings and labels are not canonical artifact headings and must be localized.
19
+
20
+ Write persistent artifacts in domain, system, user, or operator language. Mention AI or agents only when they are actual product actors, consumers, interface participants, or constraints; using AI to perform the work is not itself a durable fact.
21
+
26
22
  ## When to use
27
23
 
28
- - Use this skill when a repository already contains `.rsp/` and the task is to operate within that workflow.
29
- - Use this skill when adopting RSP in a repository that does not yet have `.rsp/`.
30
- - Use this skill when the task is to audit or repair `.rsp/`, `AGENTS.md`, generated indices, or focus markers.
31
- - Use this skill when deciding whether a completed change needs durable updates before archive.
24
+ - Use for RSP setup, repair, focused RSP work, and pre-archive durable decisions.
25
+ - Use when a user explicitly asks to adopt, inspect, or operate the RSP workflow.
32
26
 
33
27
  ## When not to use
34
28
 
35
- - Do not load this skill for general coding tasks unrelated to `.rsp/`.
36
- - Do not use this skill as a substitute for reading `.rsp/rules/rsp-rules.md` during a focused RSP task.
37
- - Do not use this skill when the repository does not use RSP and the user did not ask to adopt it.
29
+ - Do not load for general coding tasks unrelated to `.rsp/`.
30
+ - Do not load when the repository does not use RSP and the user did not ask to adopt it.
31
+ - Do not create an RSP change for a simple current-session task unless the user explicitly wants RSP tracking.
32
+ - Do not treat this skill or the fallback protocol as a replacement for nearest project `AGENTS.md` instructions or relevant module `CONTEXT.md`.
33
+
34
+ ## Derive one next action
35
+
36
+ Before operating the workflow, derive the current stage from user intent, nearest project authority, `rsp status --json`, the selected Change's readiness, fresh verification evidence, and blockers. Stages are derived guidance, never persisted state.
37
+
38
+ ### Route implementation evidence
39
+
40
+ When work has reached implementation, classify the decisive evidence before selecting a capability:
41
+
42
+ - **Diagnosis:** an observed failure is reproducible or materially evidenced, but its cause or owning layer remains unexplained. Conflicting, intermittent, or multi-layer symptoms also take this branch. Select `rsp-diagnose` only when it is available; otherwise use the manual diagnosis fallback: reproduce, locate, test the smallest discriminating hypothesis, and return the evidenced cause without speculative production edits.
43
+ - **TDD:** there is no unexplained failure, the required or corrected behavior is clear, and test-first work is explicitly required by the user, selected Change, or project instructions, or a concrete changed risk makes an observed pre-mutation RED materially safer. Concrete risks include public APIs or protocols, persisted data, security or money, concurrency or cancellation, complex state transitions, and defects that escaped to production. Select `rsp-tdd` only when it is available; otherwise use the manual TDD fallback: observe the focused RED, make the minimum GREEN change, optionally REFACTOR while green, then rerun required checks. Behavior being testable, a test being possible, or the work being a fix is not sufficient by itself.
44
+ - **Ordinary implementation:** this is the default when diagnosis does not apply and no TDD gate above is met. Continue with ordinary `rsp-implement` when the required behavior, cause, or edit is sufficiently evidenced, or use the single manual implementation/verification action when that Skill is unavailable.
45
+
46
+ Diagnosis takes precedence over TDD: do not encode an unexplained symptom as a guessed regression test. Fresh verification is required, but a new test is only one evidence option; prefer the cheapest decisive existing test, static check, build, or acceptance evidence that covers the changed risk. Each branch returns its evidence, Tasks, Verify updates, and unresolved Blockers to the same selected Change. Capability availability changes execution assistance, not the owner or required outcome.
47
+
48
+ ### Route release documentation
49
+
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.
38
51
 
39
- ## Workflow
52
+ 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.
40
53
 
41
- ### Adopt or initialize
54
+ Apply these gates in order:
42
55
 
43
- 1. Use one of these commands:
44
- - `npx -y @oevery/rsp init --agents-mode managed`
45
- - `npx -y @oevery/rsp init --agents-mode print`
46
- - `npx -y @oevery/rsp init --with-project-setup --agents-mode managed`
47
- - `npx -y @oevery/rsp init --with-project-setup --agents-mode print`
48
- 2. If the repository still needs an explicit bootstrap change and you did not use `--with-project-setup`, run `npx -y @oevery/rsp create project-setup`.
49
- 3. Fill `changes/project-setup.md`.
50
- 4. Set an explicit `kind` in the change frontmatter.
51
- 5. Write durable architecture, boundaries, defaults, and constraints into `specs/design.md`.
52
- 6. Write stable local workflow or validation rules into `rules/project-rules.md` only when they are long-lived.
53
- 7. Run `npx -y @oevery/rsp doctor`.
56
+ 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
+ 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
+ 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.
54
65
 
55
- ### Operate an existing project
66
+ 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.
56
67
 
57
- 1. Follow the read order in `.rsp/rules/rsp-rules.md`.
58
- 2. If a focused change is missing an explicit `kind`, repair the frontmatter before continuing.
59
- 3. If an existing open change should become current work, use `npx -y @oevery/rsp focus <name>`.
60
- 4. Do not treat unfocused files in `changes/` as current work unless the user explicitly asks for them or you first run `npx -y @oevery/rsp focus <name>`.
68
+ Do not preload, enumerate, or recursively invoke optional capabilities. Do not infer implementation, review, Git, publication, or approval authority from routing, readiness, or capability availability.
61
69
 
62
- ### Audit or repair
70
+ ## Workflows
63
71
 
64
- 1. Check that `.rsp/` exists.
65
- 2. Check that `AGENTS.md` contains the managed RSP block.
66
- 3. Check that `specs/design.md` exists.
67
- 4. Check that `specs/INDEX.md` and `archives/INDEX.md` are still generated files.
68
- `specs/INDEX.md` should list only additional spec files beyond `specs/design.md`.
69
- 5. Check that `focus.d/` markers and `changes/` files are in sync.
70
- 6. If generated indices or the managed AGENTS block drift, run `npx -y @oevery/rsp update`.
72
+ ### Setup or repair
73
+
74
+ 1. Initialize with `npx -y @oevery/rsp init [--agents-mode managed|print] [--with-project-setup]`.
75
+ 2. `--with-project-setup` creates and focuses `changes/project-setup.md`; otherwise create it with `npx -y @oevery/rsp create project-setup` only when explicit bootstrap tracking is still needed.
76
+ 3. Fill the bootstrap change if it exists, write durable architecture facts to `.rsp/specs/design.md`, and keep stable scoped operating instructions in the nearest project-owned `AGENTS.md`.
77
+ 4. For diagnostics, run `npx -y @oevery/rsp doctor`.
78
+ 5. For safe deterministic repairs, run `npx -y @oevery/rsp doctor --fix` or `npx -y @oevery/rsp update`.
79
+ 6. When auditing manually, verify `.rsp/`, managed roots, and nested Spec parents are real directories; the project `AGENTS.md`, managed markers, fallback/config files, indexes, and placeholders are regular files; `AGENTS.md` has the managed block; `specs/design.md` and the configured Decision Record directory exist; every group has one valid brief with matching direct children; work and archive trees are flat or one group level; and `focus.d/` markers match executable Changes.
80
+ 7. Treat `doctor --fix` `fixed` entries as actual filesystem changes. An empty `fixed` array or `No safe fixes needed.` means the repair pass changed nothing.
81
+ 8. Do not use repair commands for semantic decisions such as stale focus removal, durable updates, or archive readiness.
82
+
83
+ ### Focused work
84
+
85
+ 1. Follow the managed `AGENTS.md` read order: nearest instructions, relevant context, this skill or fallback protocol, focus, optional sibling Group Brief, selected Change, then relevant Specs and Decision Records.
86
+ 2. Treat only `focus.d/` markers as current RSP work; do not treat unfocused files in `changes/` as current work unless the user explicitly asks or you run `npx -y @oevery/rsp focus <name>`.
87
+ 3. Resolve executable Change names as either `<change>` or one direct `<group>/<change>` child. Require a real `changes/` root and real existing `focus.d/`, `archives/`, and group prefixes; reject symlinks, incomplete inspection, deeper paths, and file/directory identity collisions.
88
+ 4. Use a Change Group only for at least two independently executable Changes sharing one goal or completion contract. Create it with `npx -y @oevery/rsp group create <group> [goal]`, then replace the brief placeholders and declare every direct child identity and boundary under `Slices` before creating children.
89
+ 5. Treat logical `<group>/brief`, physically stored as `<group>/00-brief.md`, as non-executable and non-focusable. For grouped work, read it before the selected child Change. Its `Slices` declaration order guides navigation; a Brief blocker is inherited as an external blocker by every direct child without creating edges. Archive children independently, then close only the brief with `npx -y @oevery/rsp group close <group>` when all group gates pass.
90
+ 6. Declare an exact prerequisite only as `- requires \`<change-work-ref>\`: <reason>` under the dependent Change's `Blockers`. Targets must be executable Changes, not Group Briefs. Keep external blockers as ordinary prose and never infer an edge from them.
91
+ 7. Use `npx -y @oevery/rsp status --json` as the derived dependency view. Read `plan.nodes`, `plan.ready`, `plan.edges`, `plan.blocked`, and `plan.waves`; nodes distinguish selected Changes from prerequisite context, and each edge reads as “`change` requires `requires`” with `reason` and `state`. Filtered plans retain the transitive prerequisite closure needed to explain the selection. Human status renders the same flat graph as a dependency forest; do not infer nested JSON ownership from that presentation. Do not create or maintain a separate graph or copy live delivery state into a Group Brief. Archived prerequisites resolve without rewriting the dependent Change, while incomplete archive inspection produces no ready plan.
92
+ 8. Read the focused change before editing code.
93
+ 9. If a focused change is missing an explicit `kind`, repair the frontmatter before continuing.
94
+ 10. Run `npx -y @oevery/rsp check --focused` before treating focused work as ready; resolve dependency errors, placeholders, or clarification warnings when they represent real unfinished content.
95
+ 11. Treat `rsp check` warnings as deterministic hygiene signals, not as the durable-update decision.
96
+ 12. Use `npx -y @oevery/rsp create <name> --lite` only when the user explicitly wants RSP tracking for a small, straightforward change.
97
+ 13. Convert actionable `## Tasks` checkboxes into your agent-local task tracker when one is available.
98
+ 14. Keep implementation sequential by default; parallelize only independent read-only discovery or mechanical checks.
99
+ 15. Update `## Tasks`, `## Verify`, and any invalidated `## Proposal`, `## Spec`, or `## Design` content in the same working session as implementation facts change.
100
+ 16. Keep the selected Change as a convergent snapshot of the current plan and final decisive evidence. Replace stale or superseded content; keep routine attempts, RED/GREEN loops, command transcripts, and correction chronology in the response, then compress any material history to final outcomes, coverage, omissions, and unresolved risks before archive.
101
+ 17. Keep temporary debugging notes, task history, and command transcripts out of `specs/` and project-owned `AGENTS.md` instructions.
102
+
103
+ ### Route artifacts by owner
104
+
105
+ Use one semantic routing matrix throughout shaping, execution, and pre-archive review:
106
+
107
+ | Content | Owner | Boundary |
108
+ | --- | --- | --- |
109
+ | Planned future design | selected Change `## Design` | Never write planned state as current truth. |
110
+ | Implemented stable current facts | smallest relevant Spec, usually `.rsp/specs/design.md` or an existing domain Spec | Write only observed stable facts under authority. |
111
+ | Lasting rationale and tradeoffs | one exact file under `durableReview.decisionRecordsPath` | Judge independently from current facts; do not duplicate them. |
112
+ | Stable scoped navigation or current context | project-owned `CONTEXT.md`, when that convention exists | Preserve project ownership and edit only with explicit authority. |
113
+ | Stable operating instructions | nearest project-owned `AGENTS.md` outside the managed RSP block | Preserve project ownership and edit only with explicit authority. |
114
+ | Temporary execution state | response continuation | Not durable truth; write a file only when explicitly authorized. |
115
+
116
+ When accepted work remains, return this compact artifact-scoped continuation in the response:
117
+
118
+ ```md
119
+ ## <localized RSP Continuation heading>
120
+ - <localized WorkRef label>: <selected Change>
121
+ - <localized Authority label>: <project, Change, Spec, decision, or report pointers>
122
+ - <localized Current state label>: <completed, partial, failed, unavailable, or blocked plus decisive state>
123
+ - <localized Changed artifacts label>: <paths or none>
124
+ - <localized Fresh verification label>: <command and result, or pending reason>
125
+ - <localized Blockers label>: <exact blocker and owner, or none>
126
+ - <localized Next action label>: <smallest bounded action and owner>
127
+ ```
71
128
 
72
- ## Expected outputs
129
+ Treat this continuation shape as semantic field order rather than fixed English wording. Localize its human-facing title and labels to the response language while preserving WorkRefs, paths, commands, identifiers, and machine-consumed values. A localized label may retain a technical token in parentheses but must not use that English token alone; for example, use `工作引用(WorkRef)` in a Chinese response. Do not use the response language to rewrite referenced project artifact prose.
73
130
 
74
- - exact file paths to read or update
75
- - exact RSP commands to run
76
- - a single durable-decision result in the required template when evaluating archive readiness
131
+ The continuation points to existing owners; it is not a second state store. On resume, reopen every authority pointer, inspect worktree and artifact drift, and refresh any verification supporting the next action. Never create hidden handoff/controller state or persist the continuation without explicit path authority.
77
132
 
78
- ## Trigger examples
133
+ ### Handle an active Git conflict
79
134
 
80
- - "Set up RSP in this repository."
81
- - "Repair the broken .rsp state in this project."
82
- - "Check whether this change needs spec or rule writeback before archive."
83
- - "Audit the RSP setup and tell me what is missing."
135
+ When a merge, rebase, or cherry-pick conflict intersects authorized implementation:
136
+
137
+ 1. Inspect the exact Git operation, conflicted paths, current index/worktree, and pre-existing user changes.
138
+ 2. Interpret base, ours, and theirs in that operation; trace the relevant behavior and authority instead of choosing a side mechanically.
139
+ 3. Resolve only evidenced content inside the WorkRef and mutation authority. Preserve unrelated work and do not stage the resolution unless separately authorized.
140
+ 4. Stop when the conflict includes unrelated user work, an unresolved product decision, incomplete side/base evidence, or out-of-scope content. Return the exact conflict and required owner input in the continuation.
141
+ 5. After an authorized working-tree resolution, rerun affected checks and return their fresh result.
142
+
143
+ Do not continue or abort the Git operation, commit, push, or infer Git delivery authority from implementation or conflict-resolution authority. RSP does not need a separate merge-conflict Skill for this fallback.
144
+
145
+ ### Pre-archive durable decision
146
+
147
+ 1. Run `npx -y @oevery/rsp check --focused` for focused work, or `npx -y @oevery/rsp check` when reviewing all open changes.
148
+ 2. Run `npx -y @oevery/rsp show --focused --json` or `npx -y @oevery/rsp ready <name> --json` to collect readiness, warnings, context paths, and `durableReview` guidance.
149
+ 3. Treat `durableReview.factCandidateTargets` and `durableReview.decisionRecordsPath` as advisory routing context, not as permission to edit generated indexes or invent a Decision Record filename.
150
+ 4. Treat `Spec` delta markers (`### ADDED`, `### MODIFIED`, `### REMOVED`) as planning aids only; do not merge them automatically.
151
+ 5. Read only the current Change, relevant Specs and Decision Records, nearest project-owned `AGENTS.md`, and code files needed for the semantic decision.
152
+ 6. Produce the durable decision output before archiving.
84
153
 
85
154
  ## Durable decision
86
155
 
87
- Before `npx -y @oevery/rsp archive <name>`:
156
+ Choose one current-fact decision and one rationale decision independently.
157
+
158
+ Current facts:
88
159
 
89
- 1. Read the current change.
90
- 2. Read only the relevant `specs/` and `rules/` files.
91
- 3. Inspect code only if needed.
92
- 4. Return exactly one decision:
160
+ - `No current-fact update needed`
161
+ - `Update existing spec or scoped instruction`
162
+ - `Create a new durable spec` only when the knowledge is project-level, reusable, and does not fit `specs/design.md`, an existing spec, or a scoped project instruction
93
163
 
94
- - `No durable update needed`
95
- - `Update existing spec or rule`
96
- - `Create a new durable spec` only when the knowledge is truly project-level, reusable, and does not fit `specs/design.md`, an existing spec, or a rule file
164
+ Rationale:
165
+
166
+ - `No Decision Record needed`
167
+ - `Create or update a Decision Record`
168
+
169
+ Prefer no update on either axis when there is no concrete stable fact or lasting rationale worth rereading.
97
170
 
98
171
  Write a durable update only when one of these is true:
99
172
 
@@ -102,75 +175,47 @@ Write a durable update only when one of these is true:
102
175
  - future agents or developers would likely make mistakes without the fact
103
176
  - the fact is worth rereading in later sessions as durable project knowledge
104
177
 
105
- When unsure whether a fact is truly durable, prefer `No durable update needed` over speculative promotion.
106
-
107
- Default to no spec writeback unless the change produced project-level durable knowledge that future work must reread.
108
-
109
- Do not write these into `specs/` or `rules/`:
110
-
111
- - temporary debugging history
112
- - task-by-task execution notes
113
- - one-off implementation context
114
- - archive-only historical detail
115
- - a catch-all summary file like `specs/changes.md`
178
+ Create or update a Decision Record only when the choice is hard to reverse, would be surprising without context, and reflects a real tradeoff. Decision Records own rationale, alternatives, tradeoffs, and consequences; Specs own what is currently true.
116
179
 
117
- Choose the smallest correct target:
180
+ Apply the artifact-routing matrix and choose the smallest correct target:
118
181
 
119
- - project-wide design, boundaries, defaults, and durable context -> `specs/design.md`
120
- - stable local workflow or validation rules -> `rules/project-rules.md`
121
- - another durable rule set -> `rules/<name>.md`
122
- - an additional reusable project-level spec -> `specs/<name>.md`
182
+ - project-wide design, boundaries, defaults, and durable context -> `.rsp/specs/design.md`
183
+ - stable project or module operating instructions -> nearest project-owned `AGENTS.md`, only with authority to edit its non-managed content
184
+ - stable navigation or scoped current context -> project-owned `CONTEXT.md`, only when the project uses it and authority permits the edit
185
+ - an additional reusable project-level spec -> `.rsp/specs/<name>.md`
186
+ - lasting rationale -> one exact Markdown file under `durableReview.decisionRecordsPath`
123
187
 
124
- Prefer `specs/design.md` or an existing durable file before creating a new spec file.
188
+ Do not choose generated indexes, `.rsp/rsp-rules.md`, or the managed RSP block in `AGENTS.md` as ordinary durable writeback targets.
125
189
 
126
- When writing the durable update:
190
+ Prefer `.rsp/specs/design.md` or an existing durable file before creating a new spec file.
127
191
 
128
- - write stable facts, not narrative history
129
- - prefer concrete facts and boundaries over summaries like "implemented X" or "investigated Y"
130
- - if you cannot identify a concrete durable target or concrete durable facts, do not invent them
131
-
132
- Set archive readiness like this:
133
-
134
- - If `Blockers` still contains a real blocker, set `Archive ready: no`.
135
- - If a durable update is required but not yet written, set `Archive ready: no`.
136
- - If no durable update is missing and the remaining `Verify` risk is consciously accepted, set `Archive ready: yes`.
137
- - Do not use CLI warning text as a substitute for semantic durable-update judgment.
192
+ Write stable facts or lasting rationale, not narrative history, task-by-task notes, temporary debugging history, or archive-only detail. Do not duplicate current facts into a Decision Record or rationale into a Spec. If you cannot identify concrete durable content, do not invent it.
138
193
 
139
194
  ## Output template
140
195
 
141
- Use this exact format:
196
+ Use these semantic fields in this exact order. Localize the heading and human-facing labels to the response language; preserve the decision values shown in angle brackets as canonical values.
142
197
 
143
198
  ```md
144
- ## Durable Decision
145
- - Decision: <No durable update needed | Update existing spec or rule | Create a new durable spec>
146
- - Target: <path or N/A>
147
- - Why:
148
- - <reason>
149
- - Facts to write:
150
- - <durable fact>
151
- - Archive ready: <yes | no>
199
+ ## <localized Durable Decision heading>
200
+ - <localized Current facts label>: <No current-fact update needed | Update existing spec or scoped instruction | Create a new durable spec>
201
+ - <localized Current-fact target label>: <exact file path or N/A>
202
+ - <localized Facts to write label>:
203
+ - <durable fact or none>
204
+ - <localized Decision Record label>: <No Decision Record needed | Create or update a Decision Record>
205
+ - <localized Decision Record target label>: <exact file path or N/A>
206
+ - <localized Rationale to write label>:
207
+ - <lasting rationale or none>
208
+ - <localized Archive ready label>: <yes | no>
152
209
  ```
153
210
 
154
- Minimal example:
155
-
156
- ```md
157
- ## Durable Decision
158
- - Decision: Update existing spec or rule
159
- - Target: .rsp/specs/design.md
160
- - Why:
161
- - The change introduced a stable default and boundary that future work must follow.
162
- - Facts to write:
163
- - Default API retries are capped at 3 attempts.
164
- - Background sync stops retrying after a permanent authentication failure.
165
- - Archive ready: no
166
- ```
211
+ These are response labels, not canonical RSP artifact headings. A localized label may retain its technical field identity in parentheses; for example, a Chinese response may use `## 持久化决策`, `决策记录(Decision Record)`, and `可归档(Archive ready)`, but not their English labels alone.
167
212
 
168
213
  Rules for the output:
169
214
 
170
- - `Target` must be a concrete file path when the decision is not `No durable update needed`.
215
+ - Each target must be an exact file path when its decision requires an update; `durableReview.decisionRecordsPath` is a directory, not the final target.
171
216
  - `Facts to write` must contain durable facts, not task history or debugging notes.
172
- - If the decision requires a durable update that is not yet written, `Archive ready` must be `no`.
173
-
174
- ## Refresh guidance
175
-
176
- - After rule or skill changes, prefer a fresh session and reread `AGENTS.md` plus `.rsp/rules/*.md`.
217
+ - `Rationale to write` must contain lasting rationale, alternatives, tradeoffs, or consequences, not a duplicate of current facts.
218
+ - If real blockers remain or a required fact or rationale update is not yet written, `Archive ready` must be `no`.
219
+ - If neither axis has a missing update and remaining verify risk is consciously accepted, `Archive ready` may be `yes`.
220
+ - Do not use CLI warning text as a substitute for semantic durable-update judgment.
221
+ - CLI `archiveReady: judgment` means the skill or a human must decide; it is not automatic approval.
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: rsp-address-review
3
+ description: Resolve one fixed rsp-review report for an RSP-tracked change. Use when the user authorizes disposition of review findings, bounded fixes for accepted findings, fresh verification, re-review, or a recoverable artifact-scoped handoff; keep the reviewer report-only and never infer Git or publication authority.
4
+ license: MIT
5
+ metadata:
6
+ author: oevery
7
+ version: "2026.07.22.1"
8
+ ---
9
+
10
+ # RSP Address Review
11
+
12
+ Resolve one fixed review report without changing what the reviewer observed. Treat resolution as a bounded correction pass, not a retry loop or a second project lifecycle.
13
+
14
+ Render headings, field labels, explanations, and conclusion prose in the language explicitly requested by the user; otherwise follow nearest project instructions, then the conversation language. Treat report and handoff shapes as semantic field order rather than fixed English wording: translate their human-facing labels when the output language differs. Preserve paths, commands, identifiers, WorkRefs, FindingRefs, severity labels, and the dispositions `accepted`, `rejected`, and `needs-clarification` unchanged.
15
+
16
+ ## Fix scope and authority
17
+
18
+ Require the review report, its fixed comparison or file set, the selected Change and sibling Group Brief when applicable, relevant project authority, and explicit permission for any proposed mutation. Read the current worktree and the smallest behavior chain needed to verify each Finding. Preserve unrelated modified, staged, and untracked work.
19
+
20
+ Identify a Finding by its report order plus severity, title, and location. Stop if the report, comparison, Change, or Finding identity is missing or conflicting. A report grants investigation only: correction, verification, re-review, Git delivery, publication, deployment, approval, and external actions retain their own authority. Never infer Git or publication authority.
21
+
22
+ ## Disposition every finding
23
+
24
+ Assign exactly one disposition and concise evidence to every input Finding:
25
+
26
+ - `accepted`: current production or document evidence confirms the issue, the intended correction is authoritative, and the fix is inside the selected Change and mutation authority;
27
+ - `rejected`: direct evidence disproves the issue or shows that its suggested action is not required by the selected authority; record the evidence and do not edit for it;
28
+ - `needs-clarification`: an owner decision, authoritative requirement, reproducible trigger, or safe scope is missing; name the required input and do not edit for it.
29
+
30
+ Do not accept feedback for politeness, reject it from intuition, or silently reinterpret an ambiguous Finding. When one correction covers multiple accepted Findings, retain each disposition and point them to the shared fix.
31
+
32
+ ## Fix accepted findings
33
+
34
+ In one resolution pass, implement the smallest complete correction for accepted Findings only. Add or adjust focused tests when the corrected behavior or failure contract requires them. Do not modify `rsp-review`, the original report, or unrelated findings to make the result appear clean.
35
+
36
+ After the last relevant edit, run fresh verification for the affected behavior and the selected Change. A failed, unavailable, stale, or omitted check cannot close an accepted Finding. If a check exposes another defect, return it as evidence; do not begin an automatic retry loop.
37
+
38
+ Require a fresh fixed-scope re-review before claiming resolution. Return a re-review request containing the original comparison, selected authority, post-fix file set or immutable comparison, implementation summary, dispositions, and verification evidence. The re-review remains report-only. On resume with its report, correlate original Findings as resolved or remaining and treat any new Finding as unresolved input for a later authorized pass.
39
+
40
+ ## Handoff and recovery
41
+
42
+ When work stops before a clean re-review, return Core's compact artifact-scoped continuation with review state embedded in the shared fields:
43
+
44
+ ```md
45
+ ## <localized Review Resolution Handoff heading>
46
+ - <localized WorkRef label>: <selected Change>
47
+ - <localized Authority label>: <project, Change, fixed report, and comparison pointers>
48
+ - <localized Current state label>: <review input, FindingRef dispositions, and re-review status>
49
+ - <localized Changed artifacts label>: <reviewed and changed paths, or none>
50
+ - <localized Fresh verification label>: <command and result, or pending reason>
51
+ - <localized Blockers label>: <unresolved FindingRefs and required owner input, or none>
52
+ - <localized Next action label>: <smallest bounded action and owner>
53
+ ```
54
+
55
+ The handoff contains authoritative pointers, not project truth. Return it in the response unless the user explicitly authorizes a path; never create a hidden receipt or persistent run state. It is not durable truth or a second state store. Exclude secrets, full logs, and duplicated Change text.
56
+
57
+ To recover, reopen every authority pointer, confirm the WorkRef and comparison still identify the intended scope, inspect current worktree drift, and revalidate claimed verification. Mark stale evidence pending instead of trusting the handoff. Continue only the named pass; host threads, agents, hooks, or proprietary resume features are optional and never required.
58
+
59
+ ## Return ownership
60
+
61
+ Report the disposition table, changed artifacts, preserved unrelated work, fresh verification, re-review status, and the handoff when anything remains. Resolution is complete only when every Finding has a supported disposition, every accepted Finding has a verified correction, the fresh fixed-scope re-review is clean, and no `needs-clarification` input remains. Never claim archive, commit, push, publication, deployment, or approval.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: rsp-design
3
+ description: Resolve one material domain-model, module/seam, or evidence-seeking design question for an explicit or unambiguously focused RSP Change without implementing production behavior or writing durable project truth.
4
+ license: MIT
5
+ metadata:
6
+ author: oevery
7
+ version: "2026.07.22.2"
8
+ ---
9
+
10
+ # RSP Design
11
+
12
+ Resolve one design question and return the result to its existing RSP owner. Do not implement the result.
13
+
14
+ ## Establish the question and authority
15
+
16
+ Require an explicit WorkRef or exactly one unambiguous focus marker. Read the nearest project instructions and context, the RSP core Skill or fallback protocol, the selected Change and sibling Group Brief, then the smallest relevant Specs, decisions, code, tests, callers, and runtime evidence.
17
+
18
+ State the single material question before analysis. If the WorkRef, question, required evidence, owner intent, or mutation authority is missing or ambiguous, stop with the smallest blocker. Never invent product intent.
19
+
20
+ ## Load one design mode
21
+
22
+ Load only the reference matching the question:
23
+
24
+ - Read [domain modeling](references/domain-modeling.md) for vocabulary, identity, lifecycle, invariants, relationships, or ownership.
25
+ - Read [module and seam design](references/module-seams.md) for interface obligations, caller complexity, adapters, test surfaces, or seam placement.
26
+ - Read [reversible exploration](references/reversible-exploration.md) only when a material conclusion depends on unobserved behavior and a cheap safe probe can provide it.
27
+
28
+ Keep evidence-driven conclusions separate from choices only the owner can make. Compare at least one credible alternative when alternatives exist; do not manufacture options for a conclusion forced by evidence or authority.
29
+
30
+ ## Preserve artifact ownership
31
+
32
+ Default to report-only. When the user or project explicitly authorizes updating the selected Change, write settled planned design only under its `Design` section. Do not write Specs, Decision Records, `CONTEXT.md`, `AGENTS.md`, production code, lifecycle state, focus, archives, or Git state. Identify possible durable current facts or rationale only as artifact-routing candidates for the Core durable review.
33
+
34
+ An exploration additionally requires explicit disposable-code authority and the cleanup contract in its reference. A design request alone grants neither production mutation nor external side-effect authority.
35
+
36
+ ## Return the bounded result
37
+
38
+ Follow Core's response-versus-artifact language boundary: use the requested language for natural prose, while any authorized `Design` update follows the selected Change's language and canonical headings. Do not use a technical token alone as a response label; retain it only in parentheses after a localized label. Return these semantic fields:
39
+
40
+ - selected WorkRef and exact question;
41
+ - inspected evidence and material gaps;
42
+ - recommendation and evidence-driven reasoning;
43
+ - credible alternatives and tradeoffs;
44
+ - unresolved owner decisions;
45
+ - artifact routing and any authorized Change update;
46
+ - smallest next action.
47
+
48
+ Return to Shape or the user against the same WorkRef. Do not create parallel state, recursively invoke another Skill, implement, review, archive, stage, commit, push, publish, deploy, or approve.
@@ -0,0 +1,11 @@
1
+ # Domain modeling
2
+
3
+ Use this procedure only for a question about domain language, identity, lifecycle, invariants, relationships, or ownership.
4
+
5
+ 1. Collect the project's existing terms from its authoritative context, Specs, code, tests, and user language. Record contradictions rather than silently choosing one source.
6
+ 2. Trace concrete scenarios across creation, transition, failure, cancellation, deletion, and relevant scope boundaries. Prefer observable lifecycle evidence over type names alone.
7
+ 3. Identify each concept's identity, owner, allowed transitions, invariants, and relationships. Distinguish a domain concept from a transport shape, persistence record, UI label, or implementation helper.
8
+ 4. Propose the smallest coherent vocabulary and ownership model that explains the evidence. Test it against at least one edge case and one existing production consumer.
9
+ 5. Separate conclusions forced by evidence from product choices that require owner confirmation.
10
+
11
+ Return canonical terms, definitions, ownership and lifecycle implications, conflicts with current usage, alternatives, and unresolved owner decisions. Planned vocabulary may update only the authorized selected Change `Design`; flag possible current-fact or rationale destinations without writing them.
@@ -0,0 +1,11 @@
1
+ # Module and seam design
2
+
3
+ Use this procedure only for a question about an interface, caller complexity, adapter, test surface, or seam placement.
4
+
5
+ 1. Trace the direct production consumer and the smallest complete call/data path before proposing a seam. Confirm the live path reaches the candidate owner.
6
+ 2. List what callers must know: inputs, outputs, invariants, ordering, failures, configuration, cancellation, and relevant performance constraints.
7
+ 3. Locate where behavior or policy actually varies. Do not add an interface for hypothetical variation or wrap an existing pass-through for symmetry.
8
+ 4. Compare credible placements by caller leverage, implementation locality, dependency direction, state ownership, and whether callers and tests can use the same public surface.
9
+ 5. Recommend the smallest interface that hides meaningful complexity while preserving domain ownership. State migration or compatibility consequences without implementing them.
10
+
11
+ Return the proposed owner, seam, interface obligations, affected consumers, verification surface, alternatives, and unresolved owner decisions. Treat code sketches as explanatory output only; do not write production code.
@@ -0,0 +1,19 @@
1
+ # Reversible exploration
2
+
3
+ Use this procedure only when a material design conclusion depends on behavior that available code, tests, documentation, or runtime evidence does not establish.
4
+
5
+ ## Define the probe
6
+
7
+ - State one question, falsifiable hypothesis, observation, and stop condition.
8
+ - Prefer inspection or an existing focused command. Create code only when that cheaper evidence cannot answer the question.
9
+ - Require explicit authority for disposable mutations and any runtime or external side effect. Otherwise describe the probe and return the authority blocker.
10
+
11
+ ## Isolate and clean up
12
+
13
+ - Keep disposable code outside production owners and name it clearly as temporary. Do not change public interfaces, migrations, persistent data, credentials, or delivery state.
14
+ - Record the pre-probe file state and exact cleanup target. Avoid the probe when unrelated work makes safe cleanup uncertain.
15
+ - Run only the minimum observation, capture the evidence, then remove every disposable artifact before returning. Verify cleanup without discarding unrelated work.
16
+
17
+ ## Return evidence, not architecture
18
+
19
+ Report the hypothesis, method, observation, confidence and limitations, cleanup evidence, design implication, and remaining owner decision. A probe can support a recommendation; it is never durable architecture or permission to implement production behavior.
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: rsp-diagnose
3
+ description: Diagnose one selected RSP Change when a reproducible or materially evidenced failure has an unexplained cause or owning layer. Use for conflicting, intermittent, or multi-layer symptoms before production correction.
4
+ license: MIT
5
+ metadata:
6
+ author: oevery
7
+ version: "2026.07.22.1"
8
+ ---
9
+
10
+ # RSP Diagnose
11
+
12
+ Establish a confirmed cause before correction. Keep the selected Change as owner and return investigation evidence to it.
13
+
14
+ Follow Core's response-versus-artifact language boundary.
15
+
16
+ ## Establish bounds
17
+
18
+ Resolve exactly one executable open Change from an explicit work reference or unambiguous focus. Read the user request, nearest project instructions, relevant context, RSP rules, the sibling Group Brief when present, the selected Change, and only the code, tests, logs, configuration, and worktree evidence needed to investigate.
19
+
20
+ A diagnosis request grants read-only investigation and safe diagnostic command execution. Editing tests, instrumentation, fixtures, or the Change requires explicit mutation authority. Production correction is outside this Skill even when separate fix authority exists.
21
+
22
+ Stop with one evidence request when the target, expected behavior, investigation scope, or safe reproduction conditions are unclear.
23
+
24
+ ## Diagnose
25
+
26
+ 1. **REPRODUCE.** Capture the smallest command or observation that exposes the symptom, its expected and actual result, and relevant conditions. When reproduction is unsafe or unavailable, label the supplied evidence and its limits. Continue only with a stable symptom or material evidence.
27
+ 2. **LOCATE.** Trace the live path to the first boundary where actual behavior diverges from expected behavior. Identify the affected layer and owner; verify that any suspected adapter, validator, cache, or wrapper is reached by the production consumer.
28
+ 3. **HYPOTHESIZE.** State the smallest set of live competing causes and the distinct observation each predicts. A single hypothesis is sufficient only when existing evidence already excludes credible alternatives.
29
+ 4. **DISCRIMINATE.** Run the smallest safe check that separates the leading hypotheses. Record the exact command or observation and decisive result. Prefer one discriminating check over broad speculative changes.
30
+ 5. **CONFIRM.** Confirm a cause only when observed evidence selects it over the remaining live alternatives and explains the reproduced symptom. Otherwise return `unresolved` with the missing evidence and one bounded next check.
31
+
32
+ ## Return evidence
33
+
34
+ Return:
35
+
36
+ - selected Change;
37
+ - result: `confirmed` or `unresolved`;
38
+ - reproduction or supplied-evidence limit;
39
+ - cause and affected owner, or remaining hypotheses;
40
+ - decisive evidence and impact boundary;
41
+ - investigation mutations, if explicitly authorized;
42
+ - exactly one next action.
43
+
44
+ For `confirmed`, name one correction entrypoint owned by the same Change; do not apply it. For `unresolved`, name the next discriminating check or blocker. Update that Change's Tasks, Verify, or Blockers only with authority and observed facts. Preserve unrelated work and never infer Git, delivery, publication, or approval authority.
45
+
46
+ When correction, further discrimination, or other work remains, use Core's compact continuation fields in order: `WorkRef`, `Authority`, `Current state`, `Changed artifacts`, `Fresh verification`, `Blockers`, and `Next action`. Put the result, reproduction limit, cause or hypotheses, decisive evidence, and impact boundary in `Current state`; put authorized investigation mutations in `Changed artifacts`. Reopen authority pointers, inspect drift, and refresh decisive evidence before resuming. This response is not durable truth or a second state store; persist it only with explicit path authority.
@@ -0,0 +1,27 @@
1
+ # Third-party notice
2
+
3
+ The fresh-verification discipline in this Skill adapts concepts from
4
+ `obra/superpowers`, revision `d884ae04edebef577e82ff7c4e143debd0bbec99`,
5
+ `skills/verification-before-completion/SKILL.md`.
6
+
7
+ MIT License
8
+
9
+ Copyright (c) 2025 Jesse Vincent
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ of this software and associated documentation files (the "Software"), to deal
13
+ in the Software without restriction, including without limitation the rights
14
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ copies of the Software, and to permit persons to whom the Software is
16
+ furnished to do so, subject to the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be included in all
19
+ copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ SOFTWARE.