@oevery/rsp 3.1.0-beta.5 → 3.2.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 +45 -351
- package/README.zh-CN.md +46 -335
- package/dist/{chunk-3X2V6IEW.mjs → chunk-JYDEJEM4.mjs} +2 -2
- package/dist/{chunk-UVYEXKYS.mjs → chunk-SEGJLWRE.mjs} +2 -3
- package/dist/{chunk-ZKZVWJQ7.mjs → chunk-ZORUJTVS.mjs} +43 -14
- package/dist/cli.mjs +11 -5
- package/dist/{entry-ETZGIFKP.mjs → entry-I22OUIW5.mjs} +13 -7
- package/dist/{entry-BKEJDNOQ.mjs → entry-RG6HREUN.mjs} +4 -4
- package/package.json +10 -3
- package/rules/rsp-rules.md +29 -58
- package/skills/rsp/SKILL.md +30 -16
- package/skills/rsp/references/durable-review.md +5 -3
- package/skills/rsp/references/managed-routing.md +19 -15
- package/skills/rsp-commit/SKILL.md +5 -1
- package/skills/rsp-diagnose/SKILL.md +1 -1
- package/skills/rsp-implement/SKILL.md +3 -1
- package/skills/rsp-manage/SKILL.md +51 -32
- package/skills/rsp-manage/references/closeout.md +11 -0
- package/skills/rsp-manage/references/interruption-recovery.md +7 -0
- package/skills/rsp-manage/references/review-convergence.md +7 -0
- package/skills/rsp-release-docs/SKILL.md +2 -0
- package/skills/rsp-resolve-findings/SKILL.md +1 -1
- package/skills/rsp-review/SKILL.md +4 -27
- package/skills/rsp-review/references/code-review.md +14 -0
- package/skills/rsp-review/references/document-review.md +15 -0
- package/skills/rsp-shape/SKILL.md +13 -3
- package/skills/rsp-shape/references/deep-clarification.md +2 -0
- package/skills/rsp-structural-audit/SKILL.md +1 -1
- package/skills/rsp-tdd/SKILL.md +1 -1
package/README.md
CHANGED
|
@@ -4,387 +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
|
|
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
|
|
14
|
-
- Resolve
|
|
15
|
-
- Route
|
|
16
|
-
-
|
|
17
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
## Quick start
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
npx -y @oevery/rsp@3.1.0-beta.5 init
|
|
38
|
-
npx -y @oevery/rsp@3.1.0-beta.5 doctor
|
|
39
|
-
```
|
|
22
|
+
## Five-minute start
|
|
40
23
|
|
|
41
|
-
|
|
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@
|
|
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@
|
|
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. `rsp group create` never reuses an archived identity; `rsp group reopen <group> --reason <text>` explicitly restores one retained Brief snapshot as unfinished, unfocused continuation of that same Group.
|
|
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. If its Group is closed, first use `rsp group reopen <group> --reason <text>`, then reopen only the incomplete child. Multiple matching Change or Group archives require an exact `--from .rsp/archives/...` path. Group reopen creates no focus and never reopens children or dependents. 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
|
-
- Managed progress questions report current evidence and do not implicitly pause an authorized run. Explicit pause confirms active work has stopped but preserves the focused WorkRef; only explicit release or `rsp unfocus` clears selection. Blocked or paused runs return a response-only continuation, and resume rereads authority, status, diff, blockers, and verification before requalifying Manage. RSP persists no paused or controller state.
|
|
102
|
-
- 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.
|
|
103
|
-
- `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.
|
|
104
|
-
|
|
105
|
-
## File ownership
|
|
106
|
-
|
|
107
|
-
- `AGENTS.md`: only the `<!-- rsp:begin --> ... <!-- rsp:end -->` block is managed by RSP.
|
|
108
|
-
- `.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.
|
|
109
|
-
- `.rsp/specs/design.md`: created by `rsp init`, then owned by the project.
|
|
110
|
-
- `.rsp/specs/decisions/`: the default authoritative Decision Record directory; configure `decisions.path` only when the Host Project already owns one external ADR directory.
|
|
111
|
-
- `.rsp/rsp-rules.md`: generated minimal fallback protocol; use the `rsp` skill when available.
|
|
112
|
-
- 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.
|
|
113
|
-
- 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.
|
|
114
|
-
- Keep stable scoped workflow and validation instructions in the nearest project-owned `AGENTS.md`, outside the managed RSP block.
|
|
115
|
-
|
|
116
|
-
## Decision Record path
|
|
117
|
-
|
|
118
|
-
The default authoritative directory is `.rsp/specs/decisions/`. If the Host Project already owns ADRs elsewhere, configure exactly one project-relative external path:
|
|
119
|
-
|
|
120
|
-
```yaml
|
|
121
|
-
decisions:
|
|
122
|
-
path: docs/adr
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
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.
|
|
126
|
-
|
|
127
|
-
## AGENTS integration
|
|
128
|
-
|
|
129
|
-
Managed block example:
|
|
130
|
-
|
|
131
|
-
```md
|
|
132
|
-
<!-- rsp:begin -->
|
|
133
|
-
## RSP Entry
|
|
134
|
-
|
|
135
|
-
RSP tracks current work, stable specs, and archives under `.rsp/`.
|
|
136
|
-
|
|
137
|
-
Read in order:
|
|
138
|
-
1. Nearest `AGENTS.md` for project or module instructions.
|
|
139
|
-
2. Root `CONTEXT-MAP.md` if present, then the relevant nearest `CONTEXT.md`.
|
|
140
|
-
3. The `rsp` skill; if unavailable, read `.rsp/rsp-rules.md` as the fallback protocol.
|
|
141
|
-
4. `.rsp/focus.d/`; for grouped work read the sibling Group Brief, then the explicitly selected focused Change.
|
|
142
|
-
5. Only the relevant Specs and Decision Records under the configured authoritative path.
|
|
143
|
-
|
|
144
|
-
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.
|
|
145
|
-
Do not treat `.rsp/specs/` or `.rsp/changes/` as replacements for nearest `AGENTS.md` or `CONTEXT.md`.
|
|
146
|
-
<!-- rsp:end -->
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
`rsp init --agents-mode <mode>`:
|
|
150
|
-
|
|
151
|
-
- `managed`: create `AGENTS.md` when needed and insert/update the managed block.
|
|
152
|
-
- `print`: initialize normally and also print the resulting `AGENTS.md` content.
|
|
153
|
-
|
|
154
|
-
## Skills
|
|
155
|
-
|
|
156
|
-
RSP publishes eleven default host-neutral lifecycle Skills for on-demand loading, plus one explicitly installed project-level audit Skill:
|
|
157
|
-
|
|
158
|
-
| Skill | Role |
|
|
159
|
-
|---|---|
|
|
160
|
-
| `rsp` | Derive the next action; guide setup, durable review, and archive decisions. |
|
|
161
|
-
| `rsp-shape` | Shape one executable Change or justified shallow Group without implementation. |
|
|
162
|
-
| `rsp-design` | Resolve one bounded domain, module/seam, or reversible-exploration question before or within tracked work. |
|
|
163
|
-
| `rsp-implement` | Implement one selected ready Change with fresh verification. |
|
|
164
|
-
| `rsp-diagnose` | Confirm a cause, or return a truthful unresolved diagnosis, before correction. |
|
|
165
|
-
| `rsp-tdd` | Drive one clear behavior through RED, GREEN, and safe REFACTOR. |
|
|
166
|
-
| `rsp-review` | Review a fixed code, document, or mixed comparison without mutation. |
|
|
167
|
-
| `rsp-resolve-findings` | Dispose fixed findings, correct accepted ones, verify, and request re-review. |
|
|
168
|
-
| `rsp-commit` | Create one authorized exact-scope local commit with a repository-consistent structured message. |
|
|
169
|
-
| `rsp-release-docs` | Draft, audit, finalize, or reconcile evidence-based release surfaces. |
|
|
170
|
-
| `rsp-manage` | Continue one explicitly requested or project-enabled eligible ready Change or shallow Group. |
|
|
171
|
-
| `rsp-structural-audit` (optional) | Audit one bounded repository or subtree for evidence-backed structural risks without mutation. |
|
|
172
|
-
|
|
173
|
-
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.
|
|
174
|
-
|
|
175
|
-
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.
|
|
176
|
-
|
|
177
|
-
```yaml
|
|
178
|
-
language:
|
|
179
|
-
default: en
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
`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.
|
|
183
|
-
|
|
184
|
-
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.
|
|
185
|
-
|
|
186
|
-
### Managed automation policy
|
|
187
|
-
|
|
188
|
-
Configure automatic selection and local closeout independently in `.rsp/config.yaml`:
|
|
189
|
-
|
|
190
|
-
```yaml
|
|
191
|
-
manage:
|
|
192
|
-
activation: auto
|
|
193
|
-
closeout: lifecycle
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
`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:
|
|
197
|
-
|
|
198
|
-
- `manual`: neither archive nor commit is automatic.
|
|
199
|
-
- `lifecycle`: archive may follow durable review, but commit still needs separate authority.
|
|
200
|
-
- `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.
|
|
201
|
-
|
|
202
|
-
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.
|
|
203
|
-
|
|
204
|
-
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.
|
|
205
|
-
|
|
206
|
-
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.
|
|
207
|
-
|
|
208
|
-
When this README shows `rsp <command>`, it assumes the command is already available in your environment. For opt-in beta evaluation, pin the exact prerelease identity, such as `npx -y @oevery/rsp@3.1.0-beta.5 <command>`; stable users can keep using the unversioned package entrypoint for npm `latest`.
|
|
209
|
-
|
|
210
|
-
Install the exact package's default lifecycle suite into the current project:
|
|
211
|
-
|
|
212
|
-
```bash
|
|
213
|
-
rsp skills install --dry-run
|
|
214
|
-
rsp skills install
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
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:
|
|
218
|
-
|
|
219
|
-
```bash
|
|
220
|
-
rsp skills list
|
|
221
|
-
rsp skills list --json
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
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:
|
|
225
|
-
|
|
226
|
-
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.
|
|
227
|
-
|
|
228
|
-
```bash
|
|
229
|
-
rsp skills install rsp-structural-audit --dry-run
|
|
230
|
-
rsp skills install rsp-structural-audit
|
|
30
|
+
npx -y @oevery/rsp@latest doctor
|
|
231
31
|
```
|
|
232
32
|
|
|
233
|
-
|
|
33
|
+
Then create and focus one tracked change:
|
|
234
34
|
|
|
235
35
|
```bash
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
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.
|
|
241
|
-
|
|
242
|
-
## Migrating from 2.x
|
|
243
|
-
|
|
244
|
-
Version 3 uses `.rsp/rsp-rules.md` as the only runtime fallback path and removes project rules from the RSP model:
|
|
245
|
-
|
|
246
|
-
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.
|
|
247
|
-
|
|
248
|
-
1. Upgrade the RSP CLI.
|
|
249
|
-
2. Run `rsp update` to create the canonical fallback and remove the obsolete generated `.rsp/rules/rsp-rules.md`.
|
|
250
|
-
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.
|
|
251
|
-
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.
|
|
252
|
-
5. Run `rsp doctor` and resolve every remaining migration issue.
|
|
253
|
-
|
|
254
|
-
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).
|
|
255
|
-
|
|
256
|
-
## Work Model
|
|
257
|
-
|
|
258
|
-
```text
|
|
259
|
-
open → archived
|
|
36
|
+
rsp create improve-login "Make login failures actionable"
|
|
37
|
+
rsp focus improve-login
|
|
38
|
+
rsp show --focused
|
|
260
39
|
```
|
|
261
40
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
- `changes/`: open changes
|
|
265
|
-
- `focus.d/`: currently focused changes
|
|
266
|
-
- `archives/`: completed history
|
|
267
|
-
|
|
268
|
-
Inside `open`, typical work includes:
|
|
269
|
-
|
|
270
|
-
- `create`: create and scope a change.
|
|
271
|
-
- `focus` / `unfocus`: decide which open change is currently foregrounded.
|
|
272
|
-
- Edit the change file directly — fill sections, mark tasks, write design decisions.
|
|
273
|
-
- Review whether durable updates are needed before archive.
|
|
274
|
-
|
|
275
|
-
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.
|
|
276
|
-
|
|
277
|
-
`archive` moves completed work into history. Archive never blocks — it warns but leaves the final decision to the agent or human.
|
|
278
|
-
|
|
279
|
-
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.
|
|
280
|
-
|
|
281
|
-
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.
|
|
282
|
-
|
|
283
|
-
`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.
|
|
284
|
-
|
|
285
|
-
`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.
|
|
286
|
-
|
|
287
|
-
## Recommended workflow
|
|
288
|
-
|
|
289
|
-
New project:
|
|
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.
|
|
290
42
|
|
|
291
|
-
|
|
292
|
-
2. Prefer `npx -y @oevery/rsp@3.1.0-beta.5 init --with-project-setup`, or run `rsp create project-setup` manually
|
|
293
|
-
3. Fill `.rsp/specs/design.md`
|
|
294
|
-
4. Use `rsp add spec <name>` only when a new durable project doc is needed
|
|
295
|
-
5. Keep lasting rationale in the configured Decision Record directory and stable scoped operating instructions in the nearest project-owned `AGENTS.md`
|
|
296
|
-
6. For tracked open work, start with `rsp create <name>`
|
|
297
|
-
7. If you want an existing open change to become current work, use `rsp focus <name>`
|
|
298
|
-
8. Use `rsp unfocus <name>` when you want to remove a change from the current focus set
|
|
299
|
-
9. Edit the change file directly to implement the work and mark tasks complete
|
|
300
|
-
10. Use the RSP skill or a human review to decide whether durable updates are needed
|
|
301
|
-
11. After Core recommends archive, run `rsp archive <name>` before final Git delivery; inspect the complete resulting worktree and obtain Git authority separately
|
|
302
|
-
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
|
|
43
|
+
[Read the full getting-started guide](./docs/site/en/getting-started.md).
|
|
303
44
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
1. `npx -y @oevery/rsp@3.1.0-beta.5 init`
|
|
307
|
-
2. Keep the managed block thin
|
|
308
|
-
3. Keep project-wide boundaries and navigation in `.rsp/specs/design.md`, and route cohesive durable facts to the smallest domain Spec
|
|
309
|
-
4. Use `rsp add spec <name>` only when another durable current-fact document is needed
|
|
310
|
-
|
|
311
|
-
AI-assisted setup:
|
|
312
|
-
|
|
313
|
-
1. `npx -y @oevery/rsp@3.1.0-beta.5 init --agents-mode print --with-project-setup`
|
|
314
|
-
2. Keep the managed block as generated and adapt only the surrounding human-owned content if needed
|
|
315
|
-
3. Have the AI review and fill `.rsp/changes/project-setup.md`
|
|
316
|
-
4. Have the AI fill `.rsp/specs/design.md`
|
|
317
|
-
5. Run `rsp doctor`
|
|
318
|
-
|
|
319
|
-
## CLI
|
|
45
|
+
## Artifact model
|
|
320
46
|
|
|
321
47
|
```text
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
rsp skills install [name] [--dry-run] [--force]
|
|
329
|
-
Install the default eleven Skills or one exact optional Skill into .agents/skills
|
|
330
|
-
rsp add spec <name> Create .rsp/specs/<name>.md and rebuild specs index
|
|
331
|
-
rsp create <name> [summary] Create .rsp/changes/<name>.md; add --lite or --issue <url> [--issue-relation relates|closes]
|
|
332
|
-
rsp group create <name> [goal] Create an unfocused .rsp/changes/<name>/00-brief.md
|
|
333
|
-
rsp group close <name> Archive a completed Group Brief after every child is archived
|
|
334
|
-
rsp group reopen <name> --reason <text> [--from <archive-path>]
|
|
335
|
-
Restore the same Group Brief as unfinished, unfocused open work and retain history
|
|
336
|
-
rsp focus <name> Mark an open change as currently focused
|
|
337
|
-
rsp unfocus <name> Remove an open change from the current focus set
|
|
338
|
-
rsp archive <name> Archive to .rsp/archives/
|
|
339
|
-
rsp archive --dry-run <name> Deprecated compatibility route to rsp ready; never moves the change
|
|
340
|
-
rsp reopen <name> --reason <text> [--from <archive-path>]
|
|
341
|
-
Restore the same WorkRef as focused open work and retain archive history
|
|
342
|
-
rsp ready <name> [--json [--compact]] [--verbose]
|
|
343
|
-
Canonical read-only archive readiness projection
|
|
344
|
-
rsp show <name|--focused> [--json [--compact]] [--verbose]
|
|
345
|
-
Show change context with readiness signals and context paths
|
|
346
|
-
rsp history [--limit <n>] [--since <date>] [--until <date>] [--kind <kind>] [--group <group>] [--search <text>] [--json [--compact]]
|
|
347
|
-
List bounded archived Change summaries (default 20, maximum 100)
|
|
348
|
-
rsp history <work-ref> [--json [--compact]]
|
|
349
|
-
Show bounded evidence detail for one exact archived Change
|
|
350
|
-
rsp status [--focused|--blocked|--stale <days>] [--json [--compact]] [--verbose]
|
|
351
|
-
Show project status plus derived dependency plan with focus-aware filters
|
|
352
|
-
rsp check [--focused] [--json [--compact]] [--verbose]
|
|
353
|
-
Validate change files and lightly lint template/scenario structure
|
|
354
|
-
rsp doctor [--fix] [--json [--compact]] [--verbose]
|
|
355
|
-
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
|
|
356
54
|
```
|
|
357
55
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
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`.
|
|
361
57
|
|
|
362
|
-
|
|
58
|
+
## Documentation
|
|
363
59
|
|
|
364
|
-
|
|
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.2.0.md)
|
|
68
|
+
- [Design philosophy](./docs/maintainers/design-philosophy.md) and [maintainer upstream research](./docs/maintainers/upstreams.md)
|
|
365
69
|
|
|
366
|
-
|
|
70
|
+
Run the documentation locally:
|
|
367
71
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
Examples:
|
|
373
|
-
|
|
374
|
-
```sh
|
|
375
|
-
rsp history --since 2026-07-01 --kind fix --limit 10 --json
|
|
376
|
-
rsp history --search migration --limit 10 --json
|
|
377
|
-
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
|
|
378
76
|
```
|
|
379
77
|
|
|
380
|
-
The
|
|
381
|
-
|
|
382
|
-
`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.
|
|
383
|
-
|
|
384
|
-
`rsp create <name> --issue <url>` attaches one validated external issue without network access and defaults to `relation: relates`; `--issue-relation closes` must be explicit and requires `--issue`. Issue options never update an existing Change: that invocation fails without changing the Change or focus. RSP stores only the canonical URL and relationship, never credentials, fetched title/body, or retrieval state. `status --json`, `show`, and `history` preserve valid relationships; immutable archives with older issue metadata remain readable but omit that opaque legacy projection. Shape may use available host access to retrieve real issue content, but failed access degrades to login retry, pasted source data, or a link-only draft rather than fabrication. Commit may add a closing keyword only for a terminal commit with completed acceptance and an owned `closes` relationship; otherwise it keeps a non-closing canonical URL reference.
|
|
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.
|
|
385
79
|
|
|
386
|
-
|
|
80
|
+
## Platform support
|
|
387
81
|
|
|
388
|
-
|
|
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.
|
|
389
83
|
|
|
390
|
-
|
|
84
|
+
RSP is licensed under the [MIT License](./LICENSE).
|