@oevery/rsp 2.0.4 → 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.
- package/README.md +195 -62
- package/README.zh-CN.md +177 -60
- package/bin/rsp.mjs +2 -2
- package/dist/chunk-QLXIDVKK.mjs +2618 -0
- package/dist/cli.mjs +1997 -1355
- package/dist/entry-LAPR3TNI.mjs +966 -0
- package/dist/locale-HT44UIUP.mjs +21 -0
- package/package.json +13 -4
- package/rules/rsp-rules.md +63 -91
- package/skills/rsp/SKILL.md +142 -60
- package/skills/rsp-address-review/SKILL.md +61 -0
- package/skills/rsp-design/SKILL.md +48 -0
- package/skills/rsp-design/references/domain-modeling.md +11 -0
- package/skills/rsp-design/references/module-seams.md +11 -0
- package/skills/rsp-design/references/reversible-exploration.md +19 -0
- package/skills/rsp-diagnose/SKILL.md +46 -0
- package/skills/rsp-implement/NOTICE.md +27 -0
- package/skills/rsp-implement/SKILL.md +52 -0
- package/skills/rsp-manage/SKILL.md +53 -0
- package/skills/rsp-release-docs/SKILL.md +120 -0
- package/skills/rsp-release-docs/references/convention-discovery.md +65 -0
- package/skills/rsp-release-docs/references/output-contracts.md +115 -0
- package/skills/rsp-review/SKILL.md +98 -0
- package/skills/rsp-shape/SKILL.md +65 -0
- package/skills/rsp-shape/references/complex-shaping.md +30 -0
- package/skills/rsp-shape/references/deep-clarification.md +29 -0
- package/skills/rsp-tdd/SKILL.md +48 -0
package/README.md
CHANGED
|
@@ -1,28 +1,58 @@
|
|
|
1
|
-
# RSP
|
|
1
|
+
# RSP — Reliable Software Practice
|
|
2
2
|
|
|
3
3
|
English | [简体中文](./README.zh-CN.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**A repository-native engineering workflow for humans and AI agents.**
|
|
6
|
+
|
|
7
|
+
RSP helps turn unclear intent into shaped, implemented, reviewed, and verified software changes while keeping project knowledge durable and work recoverable. Its ten composable Skills guide the engineering journey without introducing hidden workflow state or replacing the project's own files, tools, and authority.
|
|
8
|
+
|
|
9
|
+
The workflow rests on a lightweight artifact foundation of **Rules, Specs, and Plans**.
|
|
10
|
+
|
|
11
|
+
## What RSP helps you do
|
|
12
|
+
|
|
13
|
+
- Shape ambiguous work into one executable Change or a small set of independent slices.
|
|
14
|
+
- Resolve material design questions from repository evidence before implementation.
|
|
15
|
+
- Route unexplained failures to diagnosis, ordinary evidenced edits to implementation, and only explicit or concrete-risk test-first work to TDD.
|
|
16
|
+
- Review changes against explicit scope, address accepted findings, and rerun fresh verification.
|
|
17
|
+
- Preserve stable facts, scoped instructions, lasting rationale, and completed history in their proper owners.
|
|
18
|
+
- Prepare release documentation when a Change explicitly owns a confirmed release.
|
|
19
|
+
|
|
20
|
+
## How the workflow fits together
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
intent
|
|
24
|
+
→ shape
|
|
25
|
+
→ design when needed
|
|
26
|
+
→ diagnose | TDD | implement
|
|
27
|
+
→ review → address accepted findings
|
|
28
|
+
→ release docs when owned
|
|
29
|
+
→ durable review → archive
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
RSP derives the next action from the selected Change, repository evidence, verification, and blockers. Each capability returns its result to the existing project or RSP owner. RSP does not infer permission to modify code, continue Git operations, commit, publish, deploy, or approve work.
|
|
6
33
|
|
|
7
34
|
## Quick start
|
|
8
35
|
|
|
9
36
|
```bash
|
|
10
|
-
npx -y @oevery/rsp init
|
|
11
|
-
npx -y @oevery/rsp doctor
|
|
37
|
+
npx -y @oevery/rsp@3.1.0-beta.0 init
|
|
38
|
+
npx -y @oevery/rsp@3.1.0-beta.0 doctor
|
|
12
39
|
```
|
|
13
40
|
|
|
14
41
|
Recommended bootstrap flow:
|
|
15
42
|
|
|
16
43
|
```bash
|
|
17
|
-
npx -y @oevery/rsp init --with-project-setup
|
|
44
|
+
npx -y @oevery/rsp@3.1.0-beta.0 init --with-project-setup
|
|
18
45
|
# fill .rsp/changes/project-setup.md
|
|
19
46
|
# fill .rsp/specs/design.md
|
|
20
|
-
npx -y @oevery/rsp doctor
|
|
47
|
+
npx -y @oevery/rsp@3.1.0-beta.0 doctor
|
|
21
48
|
```
|
|
22
49
|
|
|
23
|
-
##
|
|
50
|
+
## Artifact foundation
|
|
24
51
|
|
|
25
|
-
|
|
52
|
+
`Reliable Software Practice` is the product promise; `Rules, Specs, Plans` describes the lightweight artifact model that makes the workflow repository-native:
|
|
53
|
+
|
|
54
|
+
- nearest `AGENTS.md` stores scoped project or module instructions.
|
|
55
|
+
- `rsp-rules.md` is the minimal tool-agnostic fallback protocol.
|
|
26
56
|
- `specs/` stores project-level source-of-truth docs.
|
|
27
57
|
- `changes/` stores open work in a single-file format.
|
|
28
58
|
- `focus.d/` mirrors current focused changes with empty marker files.
|
|
@@ -30,14 +60,16 @@ npx -y @oevery/rsp doctor
|
|
|
30
60
|
|
|
31
61
|
```text
|
|
32
62
|
.rsp/
|
|
33
|
-
├── rules
|
|
34
|
-
│ ├── rsp-rules.md
|
|
35
|
-
│ └── project-rules.md # optional
|
|
63
|
+
├── rsp-rules.md # minimal fallback protocol
|
|
36
64
|
├── specs/
|
|
37
65
|
│ ├── INDEX.md # auto-generated
|
|
38
|
-
│
|
|
66
|
+
│ ├── design.md
|
|
67
|
+
│ └── decisions/ # authoritative Decision Records by default
|
|
39
68
|
├── changes/
|
|
40
|
-
│
|
|
69
|
+
│ ├── <name>.md
|
|
70
|
+
│ └── <group>/
|
|
71
|
+
│ ├── 00-brief.md
|
|
72
|
+
│ └── <change>.md
|
|
41
73
|
├── focus.d/
|
|
42
74
|
│ └── <name>
|
|
43
75
|
└── archives/
|
|
@@ -47,11 +79,22 @@ npx -y @oevery/rsp doctor
|
|
|
47
79
|
## Concepts
|
|
48
80
|
|
|
49
81
|
- `specs/` describes durable project facts and current agreed design.
|
|
82
|
+
- Decision Records describe lasting rationale, alternatives, tradeoffs, and consequences for hard-to-reverse choices. They default to `.rsp/specs/decisions/` or use one configured external path.
|
|
50
83
|
- `changes/` captures open work, including features, fixes, refactors, docs, ops, and research.
|
|
51
84
|
- A change is always a single Markdown file with explicit sections for proposal, spec, design, tasks, verification, and blockers.
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
- Change
|
|
85
|
+
- Keep each Change as a current-plan and final-evidence snapshot: choose the smallest decisive verification, retain new tests only when they add lasting value, and keep temporary probes and execution chronology out of persistent artifacts. Persistent prose names the real domain, system, user, or operator; it mentions AI or agents only when they are actual product participants or constraints.
|
|
86
|
+
- An exact blocker line, `- requires \`<change-work-ref>\`: <reason>`, declares a dependency on another executable Change. Free-form blockers stay external; RSP never guesses edges from prose. Archived prerequisites resolve automatically.
|
|
87
|
+
- Change names are either flat (`<change>`) or one direct grouped child (`<group>/<change>`). Recursive work directories are rejected.
|
|
88
|
+
- A Change Group is optional and is the only composite work shape. Its non-executable, non-focusable logical identity `<group>/brief`, physically stored as `<group>/00-brief.md`, owns the shared goal, constraints, declared slices, completion conditions, durable outcomes, and blockers for at least two direct child Changes.
|
|
89
|
+
- Create a group before its children. Every grouped Change must be declared by the brief, is focused and archived independently, and includes the brief in its context. With no focus, `status` uses Brief declaration order and current blockers to recommend the first executable slice. `status`, `check`, and `doctor` derive group health and completion without persisting another state; `rsp group close` archives only a completed brief. Archived Group identities cannot be reopened.
|
|
90
|
+
- A Group Brief blocker is inherited by its direct children as an external blocker in the derived execution plan; it does not create guessed dependency edges.
|
|
91
|
+
- A Markdown file and directory cannot claim the same work identity.
|
|
92
|
+
- `rsp status`, `rsp check`, and `rsp doctor` inspect the same complete work tree and dependency facts. `status` derives exact edges with their reasons, ready work, blockers, and stable waves without a graph file; `check` and `doctor` reject incomplete archive inspection, malformed or missing targets, self-dependencies, and cycles. The `changes/` root must exist as a real directory, and existing focus/archive roots and group prefixes must also be real directories. Unsupported directories, non-Markdown entries, symlinks, missing or unreadable current work, incomplete reads, and identity collisions are visible errors. `status` exits non-zero instead of hiding invalid work.
|
|
93
|
+
- `rsp init`, `rsp update`, `rsp add spec`, and generated index builders apply the same no-follow managed-path checks. Archive discovery accepts only flat archive files or one real group directory; recursively organized Specs accept only real directories and regular files.
|
|
94
|
+
- Final managed files—such as the project `AGENTS.md`, focus markers, fallback/config files, generated indexes, and placeholders—must also be regular files; RSP rejects static symlink targets before reading or writing them.
|
|
95
|
+
- Completed changes move to `archives/`. Stable current facts belong in Specs; lasting rationale belongs in Decision Records; stable scoped operating instructions belong in nearest project-owned `AGENTS.md`.
|
|
96
|
+
- Do not promote task history, debugging notes, or one-off implementation context into Specs, Decision Records, or project instructions.
|
|
97
|
+
- Change `Spec` delta markers (`### ADDED`, `### MODIFIED`, `### REMOVED`) are planning aids only. `rsp archive` does not automatically promote them into Specs or Decision Records. Durable writeback remains an explicit semantic decision.
|
|
55
98
|
- `rsp check` performs deterministic hygiene checks. It warns about unfinished template placeholders and unresolved clarification markers, but those warnings do not replace the semantic durable-update decision.
|
|
56
99
|
|
|
57
100
|
## File ownership
|
|
@@ -60,10 +103,22 @@ npx -y @oevery/rsp doctor
|
|
|
60
103
|
- `.rsp/specs/INDEX.md`: auto-generated index of additional spec files beyond `design.md`. Rebuild with `rsp update`.
|
|
61
104
|
- `.rsp/archives/INDEX.md`: auto-generated. Rebuild with `rsp update`.
|
|
62
105
|
- `.rsp/specs/design.md`: created by `rsp init`, then owned by the project.
|
|
63
|
-
- `.rsp/
|
|
106
|
+
- `.rsp/specs/decisions/`: the default authoritative Decision Record directory; configure `decisions.path` only when the Host Project already owns one external ADR directory.
|
|
107
|
+
- `.rsp/rsp-rules.md`: generated minimal fallback protocol; use the `rsp` skill when available.
|
|
64
108
|
- Keep durable architecture, boundaries, and cross-cutting technical constraints in `.rsp/specs/design.md`.
|
|
65
109
|
- Treat `.rsp/specs/INDEX.md` as a directory for additional spec files; it does not list `design.md`.
|
|
66
|
-
- Keep stable workflow
|
|
110
|
+
- Keep stable scoped workflow and validation instructions in the nearest project-owned `AGENTS.md`, outside the managed RSP block.
|
|
111
|
+
|
|
112
|
+
## Decision Record path
|
|
113
|
+
|
|
114
|
+
The default authoritative directory is `.rsp/specs/decisions/`. If the Host Project already owns ADRs elsewhere, configure exactly one project-relative external path:
|
|
115
|
+
|
|
116
|
+
```yaml
|
|
117
|
+
decisions:
|
|
118
|
+
path: docs/adr
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
The path cannot be absolute, escape the Host Project, or point at another `.rsp/` core location. `rsp init` and `rsp update` validate routing before managed writes and ensure the directory exists; `rsp show` and `rsp ready` refuse unsafe routing; `rsp doctor` validates directory readability and migration health. These commands never create a Decision Record. Switching to an external path does not migrate existing default records: `rsp doctor` reports inactive `.rsp/specs/decisions/*.md` files until they are moved or deliberately removed.
|
|
67
122
|
|
|
68
123
|
## AGENTS integration
|
|
69
124
|
|
|
@@ -73,19 +128,17 @@ Managed block example:
|
|
|
73
128
|
<!-- rsp:begin -->
|
|
74
129
|
## RSP Entry
|
|
75
130
|
|
|
76
|
-
RSP
|
|
77
|
-
Treat AGENTS.md as navigation only; keep durable rules and design in `.rsp/`.
|
|
131
|
+
RSP tracks current work, stable specs, and archives under `.rsp/`.
|
|
78
132
|
|
|
79
133
|
Read in order:
|
|
80
|
-
1. .
|
|
81
|
-
2. .
|
|
82
|
-
3.
|
|
83
|
-
4.
|
|
84
|
-
5. .
|
|
85
|
-
6. only the relevant additional .rsp/rules/*.md and .rsp/specs/*.md files
|
|
134
|
+
1. Nearest `AGENTS.md` for project or module instructions.
|
|
135
|
+
2. Root `CONTEXT-MAP.md` if present, then the relevant nearest `CONTEXT.md`.
|
|
136
|
+
3. The `rsp` skill; if unavailable, read `.rsp/rsp-rules.md` as the fallback protocol.
|
|
137
|
+
4. `.rsp/focus.d/`; for grouped work read the sibling Group Brief, then the explicitly selected focused Change.
|
|
138
|
+
5. Only the relevant Specs and Decision Records under the configured authoritative path.
|
|
86
139
|
|
|
87
140
|
If `.rsp/focus.d/` is empty and the user has not provided a concrete task, ask what to work on or suggest `npx -y @oevery/rsp create <name>` for tracked work.
|
|
88
|
-
|
|
141
|
+
Do not treat `.rsp/specs/` or `.rsp/changes/` as replacements for nearest `AGENTS.md` or `CONTEXT.md`.
|
|
89
142
|
<!-- rsp:end -->
|
|
90
143
|
```
|
|
91
144
|
|
|
@@ -94,43 +147,96 @@ If your agent supports Agent Skills, load `rsp` for setup, repair, and durable-d
|
|
|
94
147
|
- `managed`: create `AGENTS.md` when needed and insert/update the managed block.
|
|
95
148
|
- `print`: initialize normally and also print the resulting `AGENTS.md` content.
|
|
96
149
|
|
|
97
|
-
##
|
|
150
|
+
## Skills
|
|
151
|
+
|
|
152
|
+
RSP publishes ten host-neutral Skills for on-demand loading:
|
|
153
|
+
|
|
154
|
+
- `rsp`: setup, workflow, durable review, and archive guidance.
|
|
155
|
+
- `rsp-shape`: shape unclear non-trivial work into one ready Change or justified shallow Group without implementing it; progressively load deep clarification for an explicit rigorous challenge or unresolved high-risk decision, and return material design questions to the same WorkRef.
|
|
156
|
+
- `rsp-design`: resolve one tracked domain-model, module/seam, or reversible-exploration question from project evidence, writing only authorized planned design back to the selected Change.
|
|
157
|
+
- `rsp-implement`: implement one selected, ready Change within explicit mutation authority and return truthful Tasks, Blockers, and fresh verification evidence.
|
|
158
|
+
- `rsp-diagnose`: establish a confirmed cause or truthful unresolved diagnosis before production correction.
|
|
159
|
+
- `rsp-tdd`: drive one clear behavior through observed RED, minimal GREEN, optional safe REFACTOR, and fresh verification.
|
|
160
|
+
- `rsp-review`: read-only review of code, document, or mixed Changes against fixed scope and project authority.
|
|
161
|
+
- `rsp-address-review`: dispose fixed review findings, apply only authorized accepted corrections, require fresh verification and report-only re-review, and return a recoverable artifact-scoped continuation when work remains.
|
|
162
|
+
- `rsp-release-docs`: prepare or audit evidence-based changelogs, release notes, and migration notes while adapting to user requirements and repository conventions.
|
|
163
|
+
- `rsp-manage`: continue one explicitly requested focused Change across genuinely independent slices or interruption recovery, while keeping ordinary work direct and orchestration state transient.
|
|
164
|
+
|
|
165
|
+
Each Skill is independently invocable and returns results to existing project or RSP artifact owners. The suite adds no hidden workflow state or recursive Skill orchestration, and no Skill infers commit, push, or publication authority.
|
|
98
166
|
|
|
99
|
-
|
|
167
|
+
Response language and artifact language are independent. Human-facing response headings, labels, explanations, and conclusions follow the requested response language, response-specific project instructions, then the conversation language. Authorized artifact prose follows the requested artifact language, artifact-specific project instructions, then the existing artifact language, and only then the conversation language. Canonical RSP artifact headings, WorkRef values, paths, commands, identifiers, and machine-consumed values remain unchanged; response labels may retain technical tokens in parentheses but never use them as untranslated labels.
|
|
168
|
+
|
|
169
|
+
The 3.1 beta product surface contains these ten Skills. The optional `rsp-manage` capability activates only on explicit request and only for a focused ready Change with genuinely independent slices, long continuation, or interruption recovery. Small or coupled work returns directly to Core or the selected Discipline without a dispatch envelope. Managed runs keep authority in current project and RSP artifacts, keep process chronology transient, use bounded verification, and stop at mutation, lifecycle, Git, publication, environment, or human-decision boundaries.
|
|
170
|
+
|
|
171
|
+
For a complete tracked change, compose the suite as evidence requires: `rsp-shape` returns an executable Change and sends one material design question to `rsp-design`; `rsp-design` returns its evidence, recommendation, alternatives, and any authorized planned-design update to the same WorkRef; Core routes unexplained failures to `rsp-diagnose`, explicit or concrete-risk test-first work to `rsp-tdd`, and ordinary evidenced edits to `rsp-implement`; `rsp-review` returns a read-only report; `rsp-address-review` disposes findings and returns accepted corrections through fresh verification and re-review; when a selected Change explicitly owns a confirmed release identity or range and unfinished release documentation, Core routes that work to `rsp-release-docs`, which turns one evidence ledger into distinct changelog, release-note, and migration surfaces without inferring publication authority; and `rsp` routes implemented current facts, lasting rationale, project-owned context or instructions, and temporary continuation to their existing semantic owners before archive. Use `rsp-manage` only when the user explicitly requests managed continuation and the work qualifies for bounded independent dispatch. Each discipline returns to its existing owner. Ambiguity, failed gates, missing authority, and out-of-scope Git conflicts stop at that owner; no Skill infers Git continuation, commit, delivery, or an automatic retry loop.
|
|
100
172
|
|
|
101
173
|
Reading guidance:
|
|
102
174
|
|
|
103
175
|
- `README.md`: human-oriented overview and examples
|
|
104
|
-
- `.rsp/
|
|
105
|
-
- `skills/rsp/SKILL.md`: operational guide for
|
|
176
|
+
- `.rsp/rsp-rules.md`: minimal fallback protocol when the skill is unavailable
|
|
177
|
+
- `skills/rsp/SKILL.md`: preferred operational guide for agents
|
|
178
|
+
- `skills/rsp-shape/SKILL.md`: bounded shaping and slicing guidance
|
|
179
|
+
- `skills/rsp-design/SKILL.md`: tracked domain, module/seam, and reversible-exploration design guidance
|
|
180
|
+
- `skills/rsp-implement/SKILL.md`: bounded implementation and fresh verification guidance
|
|
181
|
+
- `skills/rsp-diagnose/SKILL.md`: evidence-backed cause isolation before correction
|
|
182
|
+
- `skills/rsp-tdd/SKILL.md`: bounded red-green-refactor guidance
|
|
183
|
+
- `skills/rsp-review/SKILL.md`: read-only review guidance
|
|
184
|
+
- `skills/rsp-address-review/SKILL.md`: review finding disposition, correction, re-review, and recovery guidance
|
|
185
|
+
- `skills/rsp-release-docs/SKILL.md`: evidence-based changelog, release-note, and migration guidance
|
|
186
|
+
- `skills/rsp-manage/SKILL.md`: explicit bounded continuation across independent slices
|
|
106
187
|
|
|
107
188
|
Surface matrix:
|
|
108
189
|
|
|
109
190
|
| Surface | Primary audience | Role |
|
|
110
191
|
|---|---|---|
|
|
111
192
|
| `README.md` | Humans | Overview, onboarding, examples |
|
|
112
|
-
| `.rsp/
|
|
113
|
-
| `skills/rsp/SKILL.md` | Agents |
|
|
114
|
-
| `
|
|
193
|
+
| `.rsp/rsp-rules.md` | Agents without the skill | Minimal tool-agnostic fallback protocol |
|
|
194
|
+
| `skills/rsp/SKILL.md` | Agents | Preferred operational guide |
|
|
195
|
+
| `skills/rsp-shape/SKILL.md` | Agents | Shape one executable Change or justified shallow Group |
|
|
196
|
+
| `skills/rsp-design/SKILL.md` | Agents | Resolve one tracked design question and return it to the same WorkRef |
|
|
197
|
+
| `skills/rsp-implement/SKILL.md` | Agents | Implement one ready Change with fresh verification evidence |
|
|
198
|
+
| `skills/rsp-diagnose/SKILL.md` | Agents | Confirm a cause before production correction |
|
|
199
|
+
| `skills/rsp-tdd/SKILL.md` | Agents | Implement one clear behavior test-first |
|
|
200
|
+
| `skills/rsp-review/SKILL.md` | Agents | Read-only Code and Document review |
|
|
201
|
+
| `skills/rsp-address-review/SKILL.md` | Agents | Resolve review findings and return a recoverable continuation |
|
|
202
|
+
| `skills/rsp-release-docs/SKILL.md` | Agents | Prepare or audit convention-compatible release documentation |
|
|
203
|
+
| `skills/rsp-manage/SKILL.md` | Agents | Continue eligible independent slices only after explicit invocation |
|
|
204
|
+
| `AGENTS.md` | Humans and agents | Scoped project instructions and RSP navigation |
|
|
115
205
|
|
|
116
|
-
Humans should usually start with `README.md`; agents should
|
|
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.
|
|
117
207
|
|
|
118
|
-
When this README shows `rsp <command>`, it assumes the command is already available in your environment.
|
|
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`.
|
|
119
209
|
|
|
120
|
-
|
|
210
|
+
Install the exact package-bundled suite into the current project:
|
|
121
211
|
|
|
122
212
|
```bash
|
|
123
|
-
|
|
213
|
+
rsp skills install --dry-run
|
|
214
|
+
rsp skills install
|
|
124
215
|
```
|
|
125
216
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
`rsp update` refreshes project-local RSP files only. If you use the published RSP skill, refresh it separately after upgrading:
|
|
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:
|
|
129
218
|
|
|
130
219
|
```bash
|
|
131
|
-
npx
|
|
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
|
|
132
222
|
```
|
|
133
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.
|
|
225
|
+
|
|
226
|
+
## Migrating from 2.x
|
|
227
|
+
|
|
228
|
+
Version 3 uses `.rsp/rsp-rules.md` as the only runtime fallback path and removes project rules from the RSP model:
|
|
229
|
+
|
|
230
|
+
See the [complete 3.0 migration guide](https://github.com/oevery/rsp/blob/v3.0.0/docs/migrations/3.0.md) for compatibility, recovery, and validation details.
|
|
231
|
+
|
|
232
|
+
1. Upgrade the RSP CLI.
|
|
233
|
+
2. Run `rsp update` to create the canonical fallback and remove the obsolete generated `.rsp/rules/rsp-rules.md`.
|
|
234
|
+
3. If `.rsp/rules/` remains, move only stable scoped instructions from its residual entries into the nearest project-owned `AGENTS.md`, then remove the obsolete entries.
|
|
235
|
+
4. Flatten any work path deeper than `.rsp/changes/<group>/<change>.md`, and resolve any `.rsp/changes/<name>.md` versus `.rsp/changes/<name>/` collision manually.
|
|
236
|
+
5. Run `rsp doctor` and resolve every remaining migration issue.
|
|
237
|
+
|
|
238
|
+
Repository maintainers can track external skill and workflow sources as offline review inputs. This tooling is intentionally excluded from the published package; see the [source-checkout maintainer guide](https://github.com/oevery/rsp/blob/main/docs/upstreams.md).
|
|
239
|
+
|
|
134
240
|
## Work Model
|
|
135
241
|
|
|
136
242
|
```text
|
|
@@ -156,38 +262,38 @@ During implementation, keep the change file and the actual work in sync: complet
|
|
|
156
262
|
|
|
157
263
|
Agents should treat only entries in `focus.d/` as current work. Unfocused files in `changes/` are still open, but should not be treated as the current target unless the user explicitly asks for them or they are re-focused.
|
|
158
264
|
|
|
159
|
-
|
|
265
|
+
Durable review makes two independent semantic choices: whether current facts or scoped instructions need an update, and whether lasting rationale needs a Decision Record. The RSP skill or a human reviewer owns both judgments.
|
|
160
266
|
|
|
161
|
-
`rsp ready` and `rsp show` expose
|
|
267
|
+
`rsp ready` and `rsp show` expose deterministic readiness and semantic-review signals without turning deterministic success into an archive action. Deterministic readiness comes from checkboxes, blockers, and scenarios; Core or a human still owns the durable-update decision and the advisory archive recommendation.
|
|
162
268
|
|
|
163
|
-
`rsp ready --json` and `rsp show --json`
|
|
269
|
+
`rsp ready --json` and `rsp show --json` include `durableReview.factDecisions`, `rationaleDecisions`, `factCandidateTargets`, and the one authoritative `decisionRecordsPath`. This is routing guidance only; RSP does not fabricate filenames or promote Change content automatically.
|
|
164
270
|
|
|
165
271
|
## Recommended workflow
|
|
166
272
|
|
|
167
273
|
New project:
|
|
168
274
|
|
|
169
|
-
1. `npx -y @oevery/rsp init`
|
|
170
|
-
2. Prefer `npx -y @oevery/rsp init --with-project-setup`, or run `rsp create project-setup` manually
|
|
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
|
|
171
277
|
3. Fill `.rsp/specs/design.md`
|
|
172
278
|
4. Use `rsp add spec <name>` only when a new durable project doc is needed
|
|
173
|
-
5.
|
|
279
|
+
5. Keep lasting rationale in the configured Decision Record directory and stable scoped operating instructions in the nearest project-owned `AGENTS.md`
|
|
174
280
|
6. For tracked open work, start with `rsp create <name>`
|
|
175
281
|
7. If you want an existing open change to become current work, use `rsp focus <name>`
|
|
176
282
|
8. Use `rsp unfocus <name>` when you want to remove a change from the current focus set
|
|
177
283
|
9. Edit the change file directly to implement the work and mark tasks complete
|
|
178
284
|
10. Use the RSP skill or a human review to decide whether durable updates are needed
|
|
179
|
-
11.
|
|
285
|
+
11. After Core recommends archive, run `rsp archive <name>` before final Git delivery; inspect the complete resulting worktree and obtain Git authority separately
|
|
180
286
|
|
|
181
287
|
Existing project with a rich `AGENTS.md`:
|
|
182
288
|
|
|
183
|
-
1. `npx -y @oevery/rsp init`
|
|
289
|
+
1. `npx -y @oevery/rsp@3.1.0-beta.0 init`
|
|
184
290
|
2. Keep the managed block thin
|
|
185
291
|
3. Move durable design into `.rsp/specs/design.md`
|
|
186
|
-
4. Use `rsp add spec <name>`
|
|
292
|
+
4. Use `rsp add spec <name>` only when another durable current-fact document is needed
|
|
187
293
|
|
|
188
294
|
AI-assisted setup:
|
|
189
295
|
|
|
190
|
-
1. `npx -y @oevery/rsp init --agents-mode print --with-project-setup`
|
|
296
|
+
1. `npx -y @oevery/rsp@3.1.0-beta.0 init --agents-mode print --with-project-setup`
|
|
191
297
|
2. Keep the managed block as generated and adapt only the surrounding human-owned content if needed
|
|
192
298
|
3. Have the AI review and fill `.rsp/changes/project-setup.md`
|
|
193
299
|
4. Have the AI fill `.rsp/specs/design.md`
|
|
@@ -198,34 +304,61 @@ AI-assisted setup:
|
|
|
198
304
|
```text
|
|
199
305
|
rsp init --agents-mode <mode> Scaffold .rsp/ and ensure AGENTS.md contains the RSP entry block
|
|
200
306
|
rsp init --with-project-setup Also create .rsp/changes/project-setup.md
|
|
201
|
-
rsp update Refresh
|
|
202
|
-
rsp
|
|
307
|
+
rsp update Refresh the fallback protocol, repair the AGENTS block, and rebuild indices
|
|
308
|
+
rsp ui [--lang auto|en|zh-CN] Open the read-only interactive dashboard
|
|
309
|
+
rsp skills install [--dry-run] [--force]
|
|
310
|
+
Install the invoking package's ten Skills into .agents/skills
|
|
203
311
|
rsp add spec <name> Create .rsp/specs/<name>.md and rebuild specs index
|
|
204
312
|
rsp create <name> [summary] Create .rsp/changes/<name>.md; add --lite for a shorter template
|
|
313
|
+
rsp group create <name> [goal] Create an unfocused .rsp/changes/<name>/00-brief.md
|
|
314
|
+
rsp group close <name> Archive a completed Group Brief after every child is archived
|
|
205
315
|
rsp focus <name> Mark an open change as currently focused
|
|
206
316
|
rsp unfocus <name> Remove an open change from the current focus set
|
|
207
317
|
rsp archive <name> Archive to .rsp/archives/ + update archive index
|
|
208
318
|
rsp archive --dry-run <name> Preview archive readiness without moving the change
|
|
209
|
-
rsp ready <name> [--json] [--verbose]
|
|
319
|
+
rsp ready <name> [--json [--compact]] [--verbose]
|
|
210
320
|
Preview archive readiness (same as archive --dry-run)
|
|
211
|
-
rsp show <name|--focused> [--json] [--verbose]
|
|
321
|
+
rsp show <name|--focused> [--json [--compact]] [--verbose]
|
|
212
322
|
Show change context with readiness signals and context paths
|
|
213
|
-
rsp
|
|
214
|
-
|
|
215
|
-
rsp
|
|
323
|
+
rsp history [--limit <n>] [--since <date>] [--until <date>] [--kind <kind>] [--group <group>] [--json [--compact]]
|
|
324
|
+
List bounded archived Change summaries (default 20, maximum 100)
|
|
325
|
+
rsp history <work-ref> [--json [--compact]]
|
|
326
|
+
Show bounded evidence detail for one exact archived Change
|
|
327
|
+
rsp status [--focused|--blocked|--stale <days>] [--json [--compact]] [--verbose]
|
|
328
|
+
Show project status plus derived dependency plan with focus-aware filters
|
|
329
|
+
rsp check [--focused] [--json [--compact]] [--verbose]
|
|
216
330
|
Validate change files and lightly lint template/scenario structure
|
|
217
|
-
rsp doctor [--fix] [--json] [--verbose]
|
|
331
|
+
rsp doctor [--fix] [--json [--compact]] [--verbose]
|
|
218
332
|
Check setup health and common issues
|
|
219
333
|
```
|
|
220
334
|
|
|
221
|
-
|
|
335
|
+
Use `skills/rsp/SKILL.md` for operations. When the skill is unavailable, use `.rsp/rsp-rules.md` as the minimal fallback protocol.
|
|
336
|
+
|
|
337
|
+
On a real interactive terminal, bare `rsp` opens the same read-only dashboard as `rsp ui`. CI, pipes, redirected streams, and `TERM=dumb` stay on static command output; use `rsp status` for a human snapshot or `rsp status --json` for automation. The dashboard never creates, focuses, or archives work.
|
|
338
|
+
|
|
339
|
+
Dashboard keys: `Tab` cycles Changes/Groups/History, arrows or `j`/`k` move, `/` filters the active scope, `Enter` opens full-width detail, `r` refreshes the active scope, `?` shows help, and `q`, `Ctrl-C`, or top-level `Esc` exits. History is loaded only when first visited, uses the default bounded recent result, and loads one selected record's structured detail by its unique archive path only after `Enter`; use `rsp history` filters for older work. Set `RSP_UI_LANG=en|zh-CN` or pass `rsp ui --lang`; only dashboard-owned labels are localized. Existing CLI help, plain output, JSON, WorkRefs, paths, commands, Skills, and RSP artifacts remain English.
|
|
222
340
|
|
|
223
341
|
When there is no focused change, `rsp status` and `rsp show --focused --json` print `nextActions` instead of guessing which open change is current.
|
|
224
342
|
|
|
343
|
+
Human-readable `rsp status` renders its execution guidance as a dependency forest: each parent requires its children, shared prerequisites are referenced instead of expanded repeatedly, and `Next action` names the currently executable Change or Changes.
|
|
344
|
+
|
|
345
|
+
`rsp status --json` returns the same dependency graph under `plan.nodes`, `plan.ready`, `plan.edges`, `plan.blocked`, and `plan.waves`. Nodes distinguish filter-selected Changes from prerequisite context, while filtered plans retain the transitive prerequisite closure needed to explain the result. JSON stays flat rather than nesting children because prerequisites may be shared by multiple Changes. Each edge reads as “`change` requires `requires`”. These are derived navigation facts, not execution authority or persisted workflow state.
|
|
346
|
+
|
|
347
|
+
`rsp history` inspects authoritative archive files directly instead of trusting the generated archive index. List results are ordered by archive date descending, WorkRef, then source path; inclusive date, exact kind, and exact Group filters are applied before the 1–100 record bound. Each record includes its project-relative archive path as a stable identity. `rsp history <work-ref>` returns bounded summary, scenario and checkbox counts, and bounded Tasks/Verify/Blockers evidence. It never returns raw Markdown; duplicate generations of one WorkRef fail with candidate archive paths instead of choosing implicitly. Unreadable, malformed, path-inconsistent, missing-root, or reserved executable Group Brief identities fail the complete query even when filters would exclude them. Archived Group Briefs are validated but are not list records. The command accepts at most one positional WorkRef. Diagnostics and ambiguous candidates are capped at 20 entries with total/returned/`hasMore` metadata, and human errors report how many entries were omitted.
|
|
348
|
+
|
|
349
|
+
Examples:
|
|
350
|
+
|
|
351
|
+
```sh
|
|
352
|
+
rsp history --since 2026-07-01 --kind fix --limit 10 --json
|
|
353
|
+
rsp history cli-machine-output/add-bounded-history-query --json --compact
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
The JSON-producing inspection commands `status`, `show`, `ready`, `check`, `doctor`, and `history` accept `--json --compact` for the same parsed value as `--json`, serialized on one LF-terminated line. `--compact` requires `--json`; other commands reject it before running command behavior.
|
|
357
|
+
|
|
225
358
|
`rsp create --lite` is a shorter template for explicitly tracked small changes; simple current-session tasks should not create RSP changes unless tracking is intentionally needed.
|
|
226
359
|
|
|
227
360
|
`rsp doctor --fix` runs only safe deterministic repairs. Its `fixed` JSON entries report actual filesystem changes; a healthy project returns `fixed: []` and the human output says no safe fixes are needed.
|
|
228
361
|
|
|
229
362
|
## Platform-agnostic
|
|
230
363
|
|
|
231
|
-
`.rsp/` is a plain file convention. It works with Kilo Code, Cursor, Claude Code, Cline, GitHub Copilot, or any assistant that reads project files.
|
|
364
|
+
`.rsp/` is a plain file convention. It works with Kilo Code, Cursor, Claude Code, Cline, GitHub Copilot, or any assistant that reads project files. RSP 3.1 requires Node.js 22+; users upgrading from 3.0 must update Node before installing.
|