@oevery/rsp 3.1.0-beta.4 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,382 +4,81 @@ English | [简体中文](./README.zh-CN.md)
4
4
 
5
5
  **A repository-native engineering workflow for humans and AI agents.**
6
6
 
7
- RSP helps turn unclear intent into shaped, implemented, reviewed, and verified software changes while keeping project knowledge durable and work recoverable. Its eleven 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**.
7
+ RSP turns unclear intent into shaped, implemented, reviewed, and verified software changes while keeping project knowledge durable and work recoverable. It uses ordinary repository files—Rules, Specs, and Plans—rather than hidden workflow state.
10
8
 
11
9
  ## What RSP helps you do
12
10
 
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 or reconcile release documentation for an explicit confirmed release operation; use a Release Change only when material coordination needs a persistent owner.
19
-
20
- ## How the workflow fits together
11
+ - Shape ambiguous work into an executable Change.
12
+ - Resolve design questions from repository evidence before implementation.
13
+ - Route diagnosis, implementation, TDD, review, and release work to explicit capabilities.
14
+ - Preserve current facts, lasting rationale, scoped instructions, and completed history in the right owners.
15
+ - Keep authority visible: RSP never infers permission to commit, publish, deploy, or approve work.
21
16
 
22
17
  ```text
23
- intent
24
- → shape
25
- → design when needed
26
- → diagnose | TDD | implement
27
- → review → address accepted findings
28
- → release docs for an explicit confirmed operation
29
- → durable review → archive
18
+ intent → shape → design when needed → diagnose | TDD | implement
19
+ → review → durable review → archive
30
20
  ```
31
21
 
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.
33
-
34
- ## Quick start
35
-
36
- ```bash
37
- npx -y @oevery/rsp@3.1.0-beta.4 init
38
- npx -y @oevery/rsp@3.1.0-beta.4 doctor
39
- ```
22
+ ## Five-minute start
40
23
 
41
- Recommended bootstrap flow:
24
+ RSP 3.1 requires Node.js 22 or later. Use the current stable release:
42
25
 
43
26
  ```bash
44
- npx -y @oevery/rsp@3.1.0-beta.4 init --with-project-setup
27
+ npx -y @oevery/rsp@latest init --with-project-setup
45
28
  # fill .rsp/changes/project-setup.md
46
29
  # fill .rsp/specs/design.md
47
- npx -y @oevery/rsp@3.1.0-beta.4 doctor
48
- ```
49
-
50
- ## Artifact foundation
51
-
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.
56
- - `specs/` stores project-level source-of-truth docs.
57
- - `changes/` stores open work in a single-file format.
58
- - `focus.d/` mirrors current focused changes with empty marker files.
59
- - `archives/` stores completed work.
60
-
61
- ```text
62
- .rsp/
63
- ├── rsp-rules.md # minimal fallback protocol
64
- ├── specs/
65
- │ ├── 00-index.md # auto-generated direct-child navigation
66
- │ ├── design.md
67
- │ ├── decisions/ # authoritative Decision Records by default; excluded from Specs indexes
68
- │ └── <domain>/
69
- │ ├── 00-index.md # auto-generated direct-child navigation
70
- │ └── <spec>.md
71
- ├── changes/
72
- │ ├── <name>.md
73
- │ └── <group>/
74
- │ ├── 00-brief.md
75
- │ └── <change>.md
76
- ├── focus.d/
77
- │ └── <name>
78
- └── archives/
79
- └── YYYY-MM-DD_<change>.md
80
- ```
81
-
82
- ## Concepts
83
-
84
- - `specs/` describes durable project facts and current agreed design.
85
- - 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.
86
- - `changes/` captures open work, including features, fixes, refactors, docs, ops, and research.
87
- - A change is always a single Markdown file with explicit sections for proposal, spec, design, tasks, verification, and blockers.
88
- - 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.
89
- - 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.
90
- - Change names are either flat (`<change>`) or one direct grouped child (`<group>/<change>`). Recursive work directories are rejected.
91
- - 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.
92
- - 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.
93
- - 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.
94
- - A Markdown file and directory cannot claim the same work identity.
95
- - `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.
96
- - `rsp init`, `rsp update`, `rsp add spec`, and the generated Specs index builder 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.
97
- - Final managed files—such as the project `AGENTS.md`, focus markers, fallback/config files, the generated Specs index, and placeholders—must also be regular files; RSP rejects static symlink targets before reading or writing them.
98
- - 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`.
99
- - When later evidence shows that the original acceptance was not actually met, `rsp reopen <work-ref> --reason <text>` restores the same executable WorkRef as focused open work and retains the selected archive as history. Multiple archives require an exact `--from .rsp/archives/...` path. Use a new corrective Change for genuinely new scope or an independently delivered correction; reopening never rewrites Git or published history.
100
- - Do not promote task history, debugging notes, or one-off implementation context into Specs, Decision Records, or project instructions.
101
- - 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.
102
- - `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.
103
-
104
- ## File ownership
105
-
106
- - `AGENTS.md`: only the `<!-- rsp:begin --> ... <!-- rsp:end -->` block is managed by RSP.
107
- - `.rsp/specs/**/00-index.md`: fully generated direct-child navigation for the root and populated Spec directories. Reconcile all local indexes with `rsp update`; `rsp add spec` refreshes only the affected directory chain.
108
- - `.rsp/specs/design.md`: created by `rsp init`, then owned by the project.
109
- - `.rsp/specs/decisions/`: the default authoritative Decision Record directory; configure `decisions.path` only when the Host Project already owns one external ADR directory.
110
- - `.rsp/rsp-rules.md`: generated minimal fallback protocol; use the `rsp` skill when available.
111
- - Keep project-wide boundaries in `.rsp/specs/design.md`; use the nearest `00-index.md` to discover cohesive reusable facts in the smallest domain Spec.
112
- - Treat every `00-index.md` as generated navigation, never as an editable current-fact or rationale owner. Each index lists only direct child Specs and populated child Spec directories; Decision Records are excluded.
113
- - Keep stable scoped workflow and validation instructions in the nearest project-owned `AGENTS.md`, outside the managed RSP block.
114
-
115
- ## Decision Record path
116
-
117
- The default authoritative directory is `.rsp/specs/decisions/`. If the Host Project already owns ADRs elsewhere, configure exactly one project-relative external path:
118
-
119
- ```yaml
120
- decisions:
121
- path: docs/adr
122
- ```
123
-
124
- 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.
125
-
126
- ## AGENTS integration
127
-
128
- Managed block example:
129
-
130
- ```md
131
- <!-- rsp:begin -->
132
- ## RSP Entry
133
-
134
- RSP tracks current work, stable specs, and archives under `.rsp/`.
135
-
136
- Read in order:
137
- 1. Nearest `AGENTS.md` for project or module instructions.
138
- 2. Root `CONTEXT-MAP.md` if present, then the relevant nearest `CONTEXT.md`.
139
- 3. The `rsp` skill; if unavailable, read `.rsp/rsp-rules.md` as the fallback protocol.
140
- 4. `.rsp/focus.d/`; for grouped work read the sibling Group Brief, then the explicitly selected focused Change.
141
- 5. Only the relevant Specs and Decision Records under the configured authoritative path.
142
-
143
- 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.
144
- Do not treat `.rsp/specs/` or `.rsp/changes/` as replacements for nearest `AGENTS.md` or `CONTEXT.md`.
145
- <!-- rsp:end -->
146
- ```
147
-
148
- `rsp init --agents-mode <mode>`:
149
-
150
- - `managed`: create `AGENTS.md` when needed and insert/update the managed block.
151
- - `print`: initialize normally and also print the resulting `AGENTS.md` content.
152
-
153
- ## Skills
154
-
155
- RSP publishes eleven default host-neutral lifecycle Skills for on-demand loading, plus one explicitly installed project-level audit Skill:
156
-
157
- | Skill | Role |
158
- |---|---|
159
- | `rsp` | Derive the next action; guide setup, durable review, and archive decisions. |
160
- | `rsp-shape` | Shape one executable Change or justified shallow Group without implementation. |
161
- | `rsp-design` | Resolve one bounded domain, module/seam, or reversible-exploration question before or within tracked work. |
162
- | `rsp-implement` | Implement one selected ready Change with fresh verification. |
163
- | `rsp-diagnose` | Confirm a cause, or return a truthful unresolved diagnosis, before correction. |
164
- | `rsp-tdd` | Drive one clear behavior through RED, GREEN, and safe REFACTOR. |
165
- | `rsp-review` | Review a fixed code, document, or mixed comparison without mutation. |
166
- | `rsp-resolve-findings` | Dispose fixed findings, correct accepted ones, verify, and request re-review. |
167
- | `rsp-commit` | Create one authorized exact-scope local commit with a repository-consistent structured message. |
168
- | `rsp-release-docs` | Draft, audit, finalize, or reconcile evidence-based release surfaces. |
169
- | `rsp-manage` | Continue one explicitly requested or project-enabled eligible ready Change or shallow Group. |
170
- | `rsp-structural-audit` (optional) | Audit one bounded repository or subtree for evidence-backed structural risks without mutation. |
171
-
172
- Each lifecycle Skill returns to an existing project or RSP owner. Report-only Pre-Change Design and `rsp-structural-audit` may return one bounded result directly to the user without inventing an artifact owner. The suite adds no hidden workflow state or recursive Skill orchestration. No Skill infers commit, push, publication, deployment, approval, or human-acceptance authority.
173
-
174
- Response language is user/session-owned; artifact and commit-message language are durable project surfaces. Project `.rsp/config.yaml` never selects response language: response prose follows an explicit current request, user/host personal instructions, then conversation language. A project may set one durable `language.default` and independently override `language.artifacts` or `language.commit`. New authorized artifact prose follows an explicit artifact request, the configured effective artifact language, artifact-specific project instructions, then conversation language; existing artifacts keep their established language unless translation is explicitly authorized. Commit prose follows an explicit current commit-language instruction, configured effective commit language, repository commit authority, then clear recent non-merge history. Configuration changes never rewrite existing artifacts. CLI-generated scaffolds contain canonical structural tokens, neutral `<…>` placeholders, and verbatim user input instead of a locale catalog or silent English prose fallback; Core and discipline Skills fill their authorized natural-language content. Canonical RSP headings, paths, commands, identifiers, Conventional Commit types/scopes, trailers, and machine-consumed values remain unchanged; WorkRefs use the safe Unicode identity contract rather than the prose-language fallback chain.
175
-
176
- ```yaml
177
- language:
178
- default: en
179
- ```
180
-
181
- `default` is required when the mapping is present and supplies both durable surfaces. Optional `artifacts` and `commit` override only their respective surfaces. `response` is intentionally unsupported because a shared repository must not constrain each collaborator's conversation language. Omit `language` entirely to leave both durable values unset. Plain status shows configured durable values, while status JSON always exposes `language.artifacts` and `language.commit` as a canonical language tag or `null`. Language configuration never grants staging, commit, push, or publication authority.
182
-
183
- Compose the suite from evidence: an explicit bounded question may enter report-only Pre-Change Design before Shape; otherwise Shape settles the executable owner and Tracked Design returns one material question to it. Core then chooses Diagnose, TDD, or Implement; Review stays report-only; Resolve Findings corrects accepted findings and requests re-review; Core performs the durable decision before archive. An explicit release operation with a confirmed identity or range may enter Release Docs without a Release Change; create one only for material decisions, coordination, recovery, blockers, or acceptance. Manage is optional: it accepts one selected ready Change or shallow Group that needs independent dispatch, long continuation, or recovery, while small or coupled work stays direct. Projects may keep explicit activation or let Core select eligible managed work automatically.
184
-
185
- ### Managed automation policy
186
-
187
- Configure automatic selection and local closeout independently in `.rsp/config.yaml`:
188
-
189
- ```yaml
190
- manage:
191
- activation: auto
192
- closeout: lifecycle
30
+ npx -y @oevery/rsp@latest doctor
193
31
  ```
194
32
 
195
- `activation` is `explicit` or `auto`. `auto` authorizes Core to select Manage for an eligible requested completion or continuation; it does not grant planning, product-mutation, lifecycle, Git, or external authority. `closeout` is one of:
196
-
197
- - `manual`: neither archive nor commit is automatic.
198
- - `lifecycle`: archive may follow durable review, but commit still needs separate authority.
199
- - `local`: lifecycle closeout plus separately justified recovery checkpoints; after lifecycle closeout, a qualified clean verified terminal non-small boundary routes once to `rsp-commit`, while terminal small work stays uncommitted.
200
-
201
- Change granularity follows one observable outcome and its shared acceptance, verification, review, archive, and rollback boundary; it does not prescribe Git commit count. Each `rsp-commit` invocation still creates exactly one local commit.
202
-
203
- New `rsp init` config templates use the shown `auto` plus `lifecycle` policy. If `manage` is absent, RSP instead resolves `activation: explicit` and `closeout: local` for compatibility with the previous explicitly requested Manage behavior. Plain `rsp status` and the top-level `manage` object in `rsp status --json` show the resolved values. Nearest scoped restrictions and host enforcement can narrow the configured ceiling. RSP intentionally has no `full` preset: push, tag, publication, deployment, approval, and human acceptance remain explicit and external.
204
-
205
- Humans should start with this README. Agents should follow the nearest `AGENTS.md`, prefer `skills/rsp/SKILL.md`, and use `.rsp/rsp-rules.md` only when the Skill is unavailable.
206
-
207
- 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.4 <command>`; stable users can keep using the unversioned package entrypoint for npm `latest`.
208
-
209
- Install the exact package's default lifecycle suite into the current project:
210
-
211
- ```bash
212
- rsp skills install --dry-run
213
- rsp skills install
214
- ```
215
-
216
- On a dual TTY, `rsp skills` opens the interactive manager: the default suite is selected and locked, while optional project Skills can be selected before one confirmed atomic install. For scripts, redirected terminals, and CI, use the deterministic discovery and install commands:
217
-
218
- ```bash
219
- rsp skills list
220
- rsp skills list --json
221
- ```
222
-
223
- The command preflights the eleven default package-owned targets, leaves unrelated `.agents/skills` entries (including optional Skills) untouched, and requires explicit `--force` before replacing a divergent selected directory. Install the optional project-level audit Skill by exact name:
224
-
225
- When upgrading an installation that still contains `rsp-address-review` or `rsp-codebase-audit`, their replacements are `rsp-resolve-findings` and `rsp-structural-audit`. The installer stops without mutation until `--force` explicitly authorizes transactional removal of the obsolete package-owned directory; `--dry-run --force` previews both removal and installation.
226
-
227
- ```bash
228
- rsp skills install rsp-structural-audit --dry-run
229
- rsp skills install rsp-structural-audit
230
- ```
231
-
232
- Both forms install from the package that invoked `rsp`, so prerelease dogfooding can pin one exact npm identity:
33
+ Then create and focus one tracked change:
233
34
 
234
35
  ```bash
235
- npx -y @oevery/rsp@3.1.0-beta.4 skills install --dry-run
236
- npx -y @oevery/rsp@3.1.0-beta.4 skills install
36
+ rsp create improve-login "Make login failures actionable"
37
+ rsp focus improve-login
38
+ rsp show --focused
237
39
  ```
238
40
 
239
- 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.
240
-
241
- ## Migrating from 2.x
242
-
243
- Version 3 uses `.rsp/rsp-rules.md` as the only runtime fallback path and removes project rules from the RSP model:
244
-
245
- 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.
41
+ Follow the nearest `AGENTS.md`, edit the focused Change as work progresses, run fresh project checks, make the durable-update decision, and archive only after acceptance is satisfied.
246
42
 
247
- 1. Upgrade the RSP CLI.
248
- 2. Run `rsp update` to create the canonical fallback and remove the obsolete generated `.rsp/rules/rsp-rules.md`.
249
- 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.
250
- 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.
251
- 5. Run `rsp doctor` and resolve every remaining migration issue.
43
+ [Read the full getting-started guide](./docs/site/en/getting-started.md).
252
44
 
253
- 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).
254
-
255
- ## Work Model
45
+ ## Artifact model
256
46
 
257
47
  ```text
258
- open → archived
259
- ```
260
-
261
- Directory roles are intentionally single-purpose:
262
-
263
- - `changes/`: open changes
264
- - `focus.d/`: currently focused changes
265
- - `archives/`: completed history
266
-
267
- Inside `open`, typical work includes:
268
-
269
- - `create`: create and scope a change.
270
- - `focus` / `unfocus`: decide which open change is currently foregrounded.
271
- - Edit the change file directly — fill sections, mark tasks, write design decisions.
272
- - Review whether durable updates are needed before archive.
273
-
274
- During implementation, keep the change file and the actual work in sync: complete `## Tasks` checkboxes as code lands, update `## Verify` with the checks actually run, and revise `## Design` if implementation discoveries change the plan.
275
-
276
- `archive` moves completed work into history. Archive never blocks — it warns but leaves the final decision to the agent or human.
277
-
278
- 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.
279
-
280
- 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.
281
-
282
- `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.
283
-
284
- `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.
285
-
286
- ## Recommended workflow
287
-
288
- New project:
289
-
290
- 1. `npx -y @oevery/rsp@3.1.0-beta.4 init`
291
- 2. Prefer `npx -y @oevery/rsp@3.1.0-beta.4 init --with-project-setup`, or run `rsp create project-setup` manually
292
- 3. Fill `.rsp/specs/design.md`
293
- 4. Use `rsp add spec <name>` only when a new durable project doc is needed
294
- 5. Keep lasting rationale in the configured Decision Record directory and stable scoped operating instructions in the nearest project-owned `AGENTS.md`
295
- 6. For tracked open work, start with `rsp create <name>`
296
- 7. If you want an existing open change to become current work, use `rsp focus <name>`
297
- 8. Use `rsp unfocus <name>` when you want to remove a change from the current focus set
298
- 9. Edit the change file directly to implement the work and mark tasks complete
299
- 10. Use the RSP skill or a human review to decide whether durable updates are needed
300
- 11. After Core recommends archive, run `rsp archive <name>` before final Git delivery; inspect the complete resulting worktree and obtain Git authority separately
301
- 12. If later evidence invalidates the original completion, run `rsp reopen <name> --reason <text>` and resolve the restored unfinished Task and Verify evidence under the same WorkRef
302
-
303
- Existing project with a rich `AGENTS.md`:
304
-
305
- 1. `npx -y @oevery/rsp@3.1.0-beta.4 init`
306
- 2. Keep the managed block thin
307
- 3. Keep project-wide boundaries and navigation in `.rsp/specs/design.md`, and route cohesive durable facts to the smallest domain Spec
308
- 4. Use `rsp add spec <name>` only when another durable current-fact document is needed
309
-
310
- AI-assisted setup:
311
-
312
- 1. `npx -y @oevery/rsp@3.1.0-beta.4 init --agents-mode print --with-project-setup`
313
- 2. Keep the managed block as generated and adapt only the surrounding human-owned content if needed
314
- 3. Have the AI review and fill `.rsp/changes/project-setup.md`
315
- 4. Have the AI fill `.rsp/specs/design.md`
316
- 5. Run `rsp doctor`
317
-
318
- ## CLI
319
-
320
- ```text
321
- rsp init --agents-mode <mode> Scaffold .rsp/ and ensure AGENTS.md contains the RSP entry block
322
- rsp init --with-project-setup Also create .rsp/changes/project-setup.md
323
- rsp update Refresh managed project files, not packaged Skills
324
- rsp ui [--lang auto|en|zh-CN] Open the read-only interactive dashboard
325
- rsp skills Open the interactive project Skill manager on a dual TTY
326
- rsp skills list [--json] List bundled Skills and exact project installation status
327
- rsp skills install [name] [--dry-run] [--force]
328
- Install the default eleven Skills or one exact optional Skill into .agents/skills
329
- rsp add spec <name> Create .rsp/specs/<name>.md and rebuild specs index
330
- rsp create <name> [summary] Create .rsp/changes/<name>.md; add --lite for a shorter template
331
- rsp group create <name> [goal] Create an unfocused .rsp/changes/<name>/00-brief.md
332
- rsp group close <name> Archive a completed Group Brief after every child is archived
333
- rsp focus <name> Mark an open change as currently focused
334
- rsp unfocus <name> Remove an open change from the current focus set
335
- rsp archive <name> Archive to .rsp/archives/
336
- rsp archive --dry-run <name> Deprecated compatibility route to rsp ready; never moves the change
337
- rsp reopen <name> --reason <text> [--from <archive-path>]
338
- Restore the same WorkRef as focused open work and retain archive history
339
- rsp ready <name> [--json [--compact]] [--verbose]
340
- Canonical read-only archive readiness projection
341
- rsp show <name|--focused> [--json [--compact]] [--verbose]
342
- Show change context with readiness signals and context paths
343
- rsp history [--limit <n>] [--since <date>] [--until <date>] [--kind <kind>] [--group <group>] [--search <text>] [--json [--compact]]
344
- List bounded archived Change summaries (default 20, maximum 100)
345
- rsp history <work-ref> [--json [--compact]]
346
- Show bounded evidence detail for one exact archived Change
347
- rsp status [--focused|--blocked|--stale <days>] [--json [--compact]] [--verbose]
348
- Show project status plus derived dependency plan with focus-aware filters
349
- rsp check [--focused] [--json [--compact]] [--verbose]
350
- Validate change files and lightly lint template/scenario structure
351
- rsp doctor [--fix] [--json [--compact]] [--verbose]
352
- Check setup health and common issues
48
+ .rsp/
49
+ ├── rsp-rules.md # minimal fallback protocol
50
+ ├── specs/ # durable current facts
51
+ ├── changes/ # open work
52
+ ├── focus.d/ # empty markers selecting current work
53
+ └── archives/ # completed history
353
54
  ```
354
55
 
355
- Use `skills/rsp/SKILL.md` for operations. When the skill is unavailable, use `.rsp/rsp-rules.md` as the minimal fallback protocol.
356
-
357
- 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.
56
+ A Change is one Markdown file with canonical Proposal, Spec, Design, Tasks, Verify, and Blockers sections. Stable facts belong in Specs, lasting rationale in Decision Records, and scoped operating instructions in the nearest project-owned `AGENTS.md`.
358
57
 
359
- 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. This UI setting does not localize CLI help, plain output, JSON, paths, commands, Skills, or existing artifacts. WorkRefs may use the safe Unicode identity contract, and new artifact prose follows the project language policy described above.
58
+ ## Documentation
360
59
 
361
- When there is no focused change, `rsp status` and `rsp show --focused --json` print `nextActions` instead of guessing which open change is current.
60
+ - [Getting started](./docs/site/en/getting-started.md)
61
+ - [Core concepts and artifact ownership](./docs/site/en/concepts.md)
62
+ - [Daily workflow](./docs/site/en/guides/daily-workflow.md)
63
+ - [Skills and managed work](./docs/site/en/guides/skills.md)
64
+ - [Configuration reference](./docs/site/en/reference/configuration.md)
65
+ - [CLI reference](./docs/site/en/reference/cli.md)
66
+ - [3.0 migration guide](./docs/migrations/3.0.md) and [3.1 migration guide](./docs/migrations/3.1.md)
67
+ - [Release notes](./docs/releases/3.1.1.md)
68
+ - [Design philosophy](./docs/maintainers/design-philosophy.md) and [maintainer upstream research](./docs/maintainers/upstreams.md)
362
69
 
363
- 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.
70
+ Run the documentation locally:
364
71
 
365
- `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.
366
-
367
- `rsp history` inspects authoritative archive files directly; no generated Archive Index is created or read. List results are ordered by archive date descending, WorkRef, then source path; inclusive date, exact kind, exact Group, and case-insensitive literal WorkRef/summary search 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. `status` archive trends and TUI History use the same validated inspection.
368
-
369
- Examples:
370
-
371
- ```sh
372
- rsp history --since 2026-07-01 --kind fix --limit 10 --json
373
- rsp history --search migration --limit 10 --json
374
- rsp history cli-machine-output/add-bounded-history-query --json --compact
72
+ ```bash
73
+ pnpm docs:dev
74
+ pnpm docs:check
75
+ pnpm docs:build
375
76
  ```
376
77
 
377
- 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.
378
-
379
- `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.
78
+ The site is only a presentation layer over the Markdown in this repository. It adds bilingual navigation, local search, and page outlines without introducing a content database or runtime service.
380
79
 
381
- `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.
80
+ ## Platform support
382
81
 
383
- ## Platform-agnostic
82
+ RSP is a tool-agnostic file convention and works with any assistant or editor that can read project files. Humans start here; agents follow the nearest `AGENTS.md`, load `skills/rsp/SKILL.md` when available, and use `.rsp/rsp-rules.md` only when the Skill is unavailable.
384
83
 
385
- `.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.
84
+ RSP is licensed under the [MIT License](./LICENSE).