@oevery/rsp 3.1.0-beta.2 → 3.1.0-beta.3
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 +44 -33
- package/README.zh-CN.md +37 -31
- package/dist/{chunk-EALHA3ZS.mjs → chunk-7KKAUBKN.mjs} +246 -253
- package/dist/{chunk-4K53353L.mjs → chunk-NX55NIC3.mjs} +40 -4
- package/dist/cli.mjs +443 -302
- package/dist/{entry-UWUX3HM7.mjs → entry-WZDVKDUM.mjs} +1 -1
- package/dist/{entry-N7WLWGTI.mjs → entry-X23GPCVS.mjs} +1 -1
- package/package.json +1 -1
- package/rules/rsp-rules.md +9 -5
- package/skills/rsp/SKILL.md +10 -4
- package/skills/rsp/references/durable-review.md +1 -1
- package/skills/rsp/references/managed-routing.md +11 -5
- package/skills/rsp/references/setup-repair.md +2 -2
- package/skills/rsp-design/SKILL.md +2 -2
- package/skills/rsp-manage/SKILL.md +27 -12
- package/skills/{rsp-address-review → rsp-resolve-findings}/SKILL.md +4 -4
- package/skills/rsp-shape/SKILL.md +2 -2
- package/skills/{rsp-codebase-audit → rsp-structural-audit}/SKILL.md +5 -3
- package/skills/{rsp-codebase-audit → rsp-structural-audit}/references/structural-lenses.md +6 -0
package/README.md
CHANGED
|
@@ -34,17 +34,17 @@ RSP derives the next action from the selected Change, repository evidence, verif
|
|
|
34
34
|
## Quick start
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
38
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
37
|
+
npx -y @oevery/rsp@3.1.0-beta.3 init
|
|
38
|
+
npx -y @oevery/rsp@3.1.0-beta.3 doctor
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Recommended bootstrap flow:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
44
|
+
npx -y @oevery/rsp@3.1.0-beta.3 init --with-project-setup
|
|
45
45
|
# fill .rsp/changes/project-setup.md
|
|
46
46
|
# fill .rsp/specs/design.md
|
|
47
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
47
|
+
npx -y @oevery/rsp@3.1.0-beta.3 doctor
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
## Artifact foundation
|
|
@@ -62,9 +62,12 @@ npx -y @oevery/rsp@3.1.0-beta.2 doctor
|
|
|
62
62
|
.rsp/
|
|
63
63
|
├── rsp-rules.md # minimal fallback protocol
|
|
64
64
|
├── specs/
|
|
65
|
-
│ ├──
|
|
65
|
+
│ ├── 00-index.md # auto-generated direct-child navigation
|
|
66
66
|
│ ├── design.md
|
|
67
|
-
│
|
|
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
|
|
68
71
|
├── changes/
|
|
69
72
|
│ ├── <name>.md
|
|
70
73
|
│ └── <group>/
|
|
@@ -73,7 +76,7 @@ npx -y @oevery/rsp@3.1.0-beta.2 doctor
|
|
|
73
76
|
├── focus.d/
|
|
74
77
|
│ └── <name>
|
|
75
78
|
└── archives/
|
|
76
|
-
└──
|
|
79
|
+
└── YYYY-MM-DD_<change>.md
|
|
77
80
|
```
|
|
78
81
|
|
|
79
82
|
## Concepts
|
|
@@ -90,9 +93,10 @@ npx -y @oevery/rsp@3.1.0-beta.2 doctor
|
|
|
90
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.
|
|
91
94
|
- A Markdown file and directory cannot claim the same work identity.
|
|
92
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.
|
|
93
|
-
- `rsp init`, `rsp update`, `rsp add spec`, and generated index
|
|
94
|
-
- Final managed files—such as the project `AGENTS.md`, focus markers, fallback/config files, generated
|
|
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.
|
|
95
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.
|
|
96
100
|
- Do not promote task history, debugging notes, or one-off implementation context into Specs, Decision Records, or project instructions.
|
|
97
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.
|
|
98
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.
|
|
@@ -100,13 +104,12 @@ npx -y @oevery/rsp@3.1.0-beta.2 doctor
|
|
|
100
104
|
## File ownership
|
|
101
105
|
|
|
102
106
|
- `AGENTS.md`: only the `<!-- rsp:begin --> ... <!-- rsp:end -->` block is managed by RSP.
|
|
103
|
-
- `.rsp/specs
|
|
104
|
-
- `.rsp/archives/INDEX.md`: auto-generated. Rebuild with `rsp update`.
|
|
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.
|
|
105
108
|
- `.rsp/specs/design.md`: created by `rsp init`, then owned by the project.
|
|
106
109
|
- `.rsp/specs/decisions/`: the default authoritative Decision Record directory; configure `decisions.path` only when the Host Project already owns one external ADR directory.
|
|
107
110
|
- `.rsp/rsp-rules.md`: generated minimal fallback protocol; use the `rsp` skill when available.
|
|
108
|
-
- Keep project-wide boundaries
|
|
109
|
-
- Treat
|
|
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.
|
|
110
113
|
- Keep stable scoped workflow and validation instructions in the nearest project-owned `AGENTS.md`, outside the managed RSP block.
|
|
111
114
|
|
|
112
115
|
## Decision Record path
|
|
@@ -160,17 +163,17 @@ RSP publishes eleven default host-neutral lifecycle Skills for on-demand loading
|
|
|
160
163
|
| `rsp-diagnose` | Confirm a cause, or return a truthful unresolved diagnosis, before correction. |
|
|
161
164
|
| `rsp-tdd` | Drive one clear behavior through RED, GREEN, and safe REFACTOR. |
|
|
162
165
|
| `rsp-review` | Review a fixed code, document, or mixed comparison without mutation. |
|
|
163
|
-
| `rsp-
|
|
166
|
+
| `rsp-resolve-findings` | Dispose fixed findings, correct accepted ones, verify, and request re-review. |
|
|
164
167
|
| `rsp-commit` | Create one authorized exact-scope local commit with a repository-consistent structured message. |
|
|
165
168
|
| `rsp-release-docs` | Draft, audit, finalize, or reconcile evidence-based release surfaces. |
|
|
166
169
|
| `rsp-manage` | Continue one explicitly requested or project-enabled eligible ready Change or shallow Group. |
|
|
167
|
-
| `rsp-
|
|
170
|
+
| `rsp-structural-audit` (optional) | Audit one bounded repository or subtree for evidence-backed structural risks without mutation. |
|
|
168
171
|
|
|
169
|
-
Each lifecycle Skill returns to an existing project or RSP owner. Report-only Pre-Change Design and `rsp-
|
|
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.
|
|
170
173
|
|
|
171
174
|
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.
|
|
172
175
|
|
|
173
|
-
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;
|
|
176
|
+
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.
|
|
174
177
|
|
|
175
178
|
### Managed automation policy
|
|
176
179
|
|
|
@@ -186,13 +189,15 @@ manage:
|
|
|
186
189
|
|
|
187
190
|
- `manual`: neither archive nor commit is automatic.
|
|
188
191
|
- `lifecycle`: archive may follow durable review, but commit still needs separate authority.
|
|
189
|
-
- `local`: lifecycle closeout plus
|
|
192
|
+
- `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.
|
|
193
|
+
|
|
194
|
+
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.
|
|
190
195
|
|
|
191
196
|
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.
|
|
192
197
|
|
|
193
198
|
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.
|
|
194
199
|
|
|
195
|
-
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.
|
|
200
|
+
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.3 <command>`; stable users can keep using the unversioned package entrypoint for npm `latest`.
|
|
196
201
|
|
|
197
202
|
Install the exact package's default lifecycle suite into the current project:
|
|
198
203
|
|
|
@@ -210,16 +215,18 @@ rsp skills list --json
|
|
|
210
215
|
|
|
211
216
|
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:
|
|
212
217
|
|
|
218
|
+
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.
|
|
219
|
+
|
|
213
220
|
```bash
|
|
214
|
-
rsp skills install rsp-
|
|
215
|
-
rsp skills install rsp-
|
|
221
|
+
rsp skills install rsp-structural-audit --dry-run
|
|
222
|
+
rsp skills install rsp-structural-audit
|
|
216
223
|
```
|
|
217
224
|
|
|
218
225
|
Both forms install from the package that invoked `rsp`, so prerelease dogfooding can pin one exact npm identity:
|
|
219
226
|
|
|
220
227
|
```bash
|
|
221
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
222
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
228
|
+
npx -y @oevery/rsp@3.1.0-beta.3 skills install --dry-run
|
|
229
|
+
npx -y @oevery/rsp@3.1.0-beta.3 skills install
|
|
223
230
|
```
|
|
224
231
|
|
|
225
232
|
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.
|
|
@@ -273,8 +280,8 @@ Durable review makes two independent semantic choices: whether current facts or
|
|
|
273
280
|
|
|
274
281
|
New project:
|
|
275
282
|
|
|
276
|
-
1. `npx -y @oevery/rsp@3.1.0-beta.
|
|
277
|
-
2. Prefer `npx -y @oevery/rsp@3.1.0-beta.
|
|
283
|
+
1. `npx -y @oevery/rsp@3.1.0-beta.3 init`
|
|
284
|
+
2. Prefer `npx -y @oevery/rsp@3.1.0-beta.3 init --with-project-setup`, or run `rsp create project-setup` manually
|
|
278
285
|
3. Fill `.rsp/specs/design.md`
|
|
279
286
|
4. Use `rsp add spec <name>` only when a new durable project doc is needed
|
|
280
287
|
5. Keep lasting rationale in the configured Decision Record directory and stable scoped operating instructions in the nearest project-owned `AGENTS.md`
|
|
@@ -284,17 +291,18 @@ New project:
|
|
|
284
291
|
9. Edit the change file directly to implement the work and mark tasks complete
|
|
285
292
|
10. Use the RSP skill or a human review to decide whether durable updates are needed
|
|
286
293
|
11. After Core recommends archive, run `rsp archive <name>` before final Git delivery; inspect the complete resulting worktree and obtain Git authority separately
|
|
294
|
+
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
|
|
287
295
|
|
|
288
296
|
Existing project with a rich `AGENTS.md`:
|
|
289
297
|
|
|
290
|
-
1. `npx -y @oevery/rsp@3.1.0-beta.
|
|
298
|
+
1. `npx -y @oevery/rsp@3.1.0-beta.3 init`
|
|
291
299
|
2. Keep the managed block thin
|
|
292
300
|
3. Keep project-wide boundaries and navigation in `.rsp/specs/design.md`, and route cohesive durable facts to the smallest domain Spec
|
|
293
301
|
4. Use `rsp add spec <name>` only when another durable current-fact document is needed
|
|
294
302
|
|
|
295
303
|
AI-assisted setup:
|
|
296
304
|
|
|
297
|
-
1. `npx -y @oevery/rsp@3.1.0-beta.
|
|
305
|
+
1. `npx -y @oevery/rsp@3.1.0-beta.3 init --agents-mode print --with-project-setup`
|
|
298
306
|
2. Keep the managed block as generated and adapt only the surrounding human-owned content if needed
|
|
299
307
|
3. Have the AI review and fill `.rsp/changes/project-setup.md`
|
|
300
308
|
4. Have the AI fill `.rsp/specs/design.md`
|
|
@@ -305,7 +313,7 @@ AI-assisted setup:
|
|
|
305
313
|
```text
|
|
306
314
|
rsp init --agents-mode <mode> Scaffold .rsp/ and ensure AGENTS.md contains the RSP entry block
|
|
307
315
|
rsp init --with-project-setup Also create .rsp/changes/project-setup.md
|
|
308
|
-
rsp update Refresh
|
|
316
|
+
rsp update Refresh managed project files, not packaged Skills
|
|
309
317
|
rsp ui [--lang auto|en|zh-CN] Open the read-only interactive dashboard
|
|
310
318
|
rsp skills Open the interactive project Skill manager on a dual TTY
|
|
311
319
|
rsp skills list [--json] List bundled Skills and exact project installation status
|
|
@@ -317,13 +325,15 @@ rsp group create <name> [goal] Create an unfocused .rsp/changes/<name>/00-brief.
|
|
|
317
325
|
rsp group close <name> Archive a completed Group Brief after every child is archived
|
|
318
326
|
rsp focus <name> Mark an open change as currently focused
|
|
319
327
|
rsp unfocus <name> Remove an open change from the current focus set
|
|
320
|
-
rsp archive <name> Archive to .rsp/archives/
|
|
321
|
-
rsp archive --dry-run <name>
|
|
328
|
+
rsp archive <name> Archive to .rsp/archives/
|
|
329
|
+
rsp archive --dry-run <name> Deprecated compatibility route to rsp ready; never moves the change
|
|
330
|
+
rsp reopen <name> --reason <text> [--from <archive-path>]
|
|
331
|
+
Restore the same WorkRef as focused open work and retain archive history
|
|
322
332
|
rsp ready <name> [--json [--compact]] [--verbose]
|
|
323
|
-
|
|
333
|
+
Canonical read-only archive readiness projection
|
|
324
334
|
rsp show <name|--focused> [--json [--compact]] [--verbose]
|
|
325
335
|
Show change context with readiness signals and context paths
|
|
326
|
-
rsp history [--limit <n>] [--since <date>] [--until <date>] [--kind <kind>] [--group <group>] [--json [--compact]]
|
|
336
|
+
rsp history [--limit <n>] [--since <date>] [--until <date>] [--kind <kind>] [--group <group>] [--search <text>] [--json [--compact]]
|
|
327
337
|
List bounded archived Change summaries (default 20, maximum 100)
|
|
328
338
|
rsp history <work-ref> [--json [--compact]]
|
|
329
339
|
Show bounded evidence detail for one exact archived Change
|
|
@@ -347,12 +357,13 @@ Human-readable `rsp status` renders its execution guidance as a dependency fores
|
|
|
347
357
|
|
|
348
358
|
`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.
|
|
349
359
|
|
|
350
|
-
`rsp history` inspects authoritative archive files directly
|
|
360
|
+
`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.
|
|
351
361
|
|
|
352
362
|
Examples:
|
|
353
363
|
|
|
354
364
|
```sh
|
|
355
365
|
rsp history --since 2026-07-01 --kind fix --limit 10 --json
|
|
366
|
+
rsp history --search migration --limit 10 --json
|
|
356
367
|
rsp history cli-machine-output/add-bounded-history-query --json --compact
|
|
357
368
|
```
|
|
358
369
|
|
package/README.zh-CN.md
CHANGED
|
@@ -34,17 +34,17 @@ RSP 根据 selected Change、仓库证据、验证结果和 blockers 推导下
|
|
|
34
34
|
## 快速开始
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
38
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
37
|
+
npx -y @oevery/rsp@3.1.0-beta.3 init
|
|
38
|
+
npx -y @oevery/rsp@3.1.0-beta.3 doctor
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
推荐启动流程:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
44
|
+
npx -y @oevery/rsp@3.1.0-beta.3 init --with-project-setup
|
|
45
45
|
# 填写 .rsp/changes/project-setup.md
|
|
46
46
|
# 填写 .rsp/specs/design.md
|
|
47
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
47
|
+
npx -y @oevery/rsp@3.1.0-beta.3 doctor
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
## Artifact foundation
|
|
@@ -62,9 +62,12 @@ npx -y @oevery/rsp@3.1.0-beta.2 doctor
|
|
|
62
62
|
.rsp/
|
|
63
63
|
├── rsp-rules.md # 最小 fallback protocol
|
|
64
64
|
├── specs/
|
|
65
|
-
│ ├──
|
|
65
|
+
│ ├── 00-index.md # 自动生成的直接子项导航
|
|
66
66
|
│ ├── design.md
|
|
67
|
-
│
|
|
67
|
+
│ ├── decisions/ # 默认的权威 Decision Records;不进入 Specs 索引
|
|
68
|
+
│ └── <domain>/
|
|
69
|
+
│ ├── 00-index.md # 自动生成的直接子项导航
|
|
70
|
+
│ └── <spec>.md
|
|
68
71
|
├── changes/
|
|
69
72
|
│ ├── <name>.md
|
|
70
73
|
│ └── <group>/
|
|
@@ -73,7 +76,7 @@ npx -y @oevery/rsp@3.1.0-beta.2 doctor
|
|
|
73
76
|
├── focus.d/
|
|
74
77
|
│ └── <name>
|
|
75
78
|
└── archives/
|
|
76
|
-
└──
|
|
79
|
+
└── YYYY-MM-DD_<change>.md
|
|
77
80
|
```
|
|
78
81
|
|
|
79
82
|
## 概念
|
|
@@ -100,13 +103,12 @@ npx -y @oevery/rsp@3.1.0-beta.2 doctor
|
|
|
100
103
|
## 文件所有权
|
|
101
104
|
|
|
102
105
|
- `AGENTS.md`:只有 `<!-- rsp:begin --> ... <!-- rsp:end -->` 受管块由 RSP 维护。
|
|
103
|
-
- `.rsp/specs
|
|
104
|
-
- `.rsp/archives/INDEX.md`:自动生成,使用 `rsp update` 重建。
|
|
106
|
+
- `.rsp/specs/**/00-index.md`:为根目录及含内容的 Spec 目录生成直接子项导航。使用 `rsp update` 对齐全部本地索引;`rsp add spec` 只刷新受影响的目录链。
|
|
105
107
|
- `.rsp/specs/design.md`:由 `rsp init` 创建,之后由项目维护。
|
|
106
108
|
- `.rsp/specs/decisions/`:默认的权威 Decision Record 目录;只有 Host Project 已有外部 ADR 目录时才配置 `decisions.path`。
|
|
107
109
|
- `.rsp/rsp-rules.md`:生成的最小 fallback protocol;可用时优先加载 `rsp` skill。
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
+
- 将项目级边界放在 `.rsp/specs/design.md`;通过最近的 `00-index.md` 发现归属于最小领域 Spec 的成组、可复用事实。
|
|
111
|
+
- 所有 `00-index.md` 都只是生成导航,不能作为可编辑的当前事实或理由 owner。每个索引只列直接子 Spec 与含内容的直接子目录,并排除 Decision Records。
|
|
110
112
|
- 将稳定且有作用域的工作流、验证和本地运行指令放在 nearest project-owned `AGENTS.md` 的非受管区域。
|
|
111
113
|
|
|
112
114
|
## Decision Record 路径
|
|
@@ -160,17 +162,17 @@ RSP 发布十一个默认、宿主无关、按需加载的生命周期 Skills,
|
|
|
160
162
|
| `rsp-diagnose` | 修正前确认原因,或如实返回 unresolved diagnosis。 |
|
|
161
163
|
| `rsp-tdd` | 让一个清晰行为经过 RED、GREEN 与安全的 REFACTOR。 |
|
|
162
164
|
| `rsp-review` | 对固定的 Code、Document 或 mixed comparison 做只读审查。 |
|
|
163
|
-
| `rsp-
|
|
165
|
+
| `rsp-resolve-findings` | 处置固定 findings,修正 accepted 项,验证并请求复审。 |
|
|
164
166
|
| `rsp-commit` | 使用与仓库一致的结构化消息创建一个已授权、精确范围的本地提交。 |
|
|
165
167
|
| `rsp-release-docs` | 起草、审计、定稿或校准基于证据的发布表面。 |
|
|
166
168
|
| `rsp-manage` | 继续一个显式请求或项目启用且符合条件的 ready Change 或 shallow Group。 |
|
|
167
|
-
| `rsp-
|
|
169
|
+
| `rsp-structural-audit`(可选) | 只读审计一个有界仓库或子树,发现有证据支撑的结构风险。 |
|
|
168
170
|
|
|
169
|
-
每个生命周期 Skill 都把结果返回现有项目或 RSP owner。只读的 Pre-Change Design 与 `rsp-
|
|
171
|
+
每个生命周期 Skill 都把结果返回现有项目或 RSP owner。只读的 Pre-Change Design 与 `rsp-structural-audit` 可以把一个有界结果直接返回用户,而不虚构 artifact owner。套件不引入隐藏 workflow state 或递归 Skill 编排。任何 Skill 都不会推断 commit、push、publication、deployment、approval 或 human-acceptance 权限。
|
|
170
172
|
|
|
171
173
|
响应语言与产物语言相互独立。面向人的响应标题、标签、解释和结论依次遵循明确指定的响应语言、项目中针对响应的指令和会话语言;已授权写入的产物正文依次遵循明确指定的产物语言、项目中针对产物的指令、目标产物的现有语言,最后才回退到会话语言。RSP 的 canonical artifact headings、WorkRef 值、路径、命令、标识符和机器消费值保持不变;响应标签可以在括号中保留技术 token,但不能直接使用未翻译的 token 作为标签。
|
|
172
174
|
|
|
173
|
-
按证据组合套件:Shape 确定 owner;Design 返回一个关键问题;Core 在 Diagnose、TDD 与 Implement 之间选择;Review 保持只读;
|
|
175
|
+
按证据组合套件:Shape 确定 owner;Design 返回一个关键问题;Core 在 Diagnose、TDD 与 Implement 之间选择;Review 保持只读;Resolve Findings 修正 accepted findings 并请求复审;Core 在 archive 前执行 durable decision。显式 release operation 在 identity 或 range 已确认时,可以不创建 Release Change 就进入 Release Docs;只有重大决策、协调、恢复、blocker 或 acceptance 需要持久 owner 时才创建。Manage 是可选能力:它接受一个 selected ready Change 或 shallow Group,并要求独立调度、长时 continuation 或恢复需求;小型或紧耦合工作保持直接执行。项目可以保持显式启用,也可以让 Core 自动选择符合条件的 managed work。
|
|
174
176
|
|
|
175
177
|
### Managed automation policy
|
|
176
178
|
|
|
@@ -186,13 +188,15 @@ manage:
|
|
|
186
188
|
|
|
187
189
|
- `manual`:archive 与 commit 都不会自动执行。
|
|
188
190
|
- `lifecycle`:durable review 后可以 archive,但 commit 仍需要独立权限。
|
|
189
|
-
- `local`:允许 lifecycle closeout
|
|
191
|
+
- `local`:允许 lifecycle closeout 和有独立依据的 recovery checkpoint;lifecycle closeout 后,符合条件且 clean、已验证的非小型终态边界会调用一次 `rsp-commit`,小型终态仍不提交。
|
|
192
|
+
|
|
193
|
+
Change 粒度由一个可观察结果及其共享的 acceptance、verification、review、archive 和 rollback 边界决定,不规定 Git commit 数量。每次 `rsp-commit` 调用仍只创建一个本地 commit。
|
|
190
194
|
|
|
191
195
|
新的 `rsp init` config template 使用上面的 `auto` 加 `lifecycle` policy。如果省略 `manage`,RSP 则为兼容既有显式 Manage 行为解析为 `activation: explicit` 与 `closeout: local`。普通 `rsp status` 和 `rsp status --json` 顶层的 `manage` 对象都会显示解析后的值。nearest scoped restriction 与 host enforcement 可以缩小该配置上限。RSP 有意不提供 `full` preset:push、tag、publication、deployment、approval 与 human acceptance 始终保持显式且属于外部边界。
|
|
192
196
|
|
|
193
197
|
人类应从本 README 开始;agent 应遵循 nearest `AGENTS.md`,优先加载 `skills/rsp/SKILL.md`,仅在 Skill 不可用时读取 `.rsp/rsp-rules.md`。
|
|
194
198
|
|
|
195
|
-
如果文档中写的是 `rsp <command>`,默认前提是你的环境里已经能直接运行 `rsp`。进行 opt-in beta 评估时,应固定精确 prerelease 身份,例如 `npx -y @oevery/rsp@3.1.0-beta.
|
|
199
|
+
如果文档中写的是 `rsp <command>`,默认前提是你的环境里已经能直接运行 `rsp`。进行 opt-in beta 评估时,应固定精确 prerelease 身份,例如 `npx -y @oevery/rsp@3.1.0-beta.3 <command>`;stable 用户仍可使用不带版本的入口获取 npm `latest`。
|
|
196
200
|
|
|
197
201
|
将当前精确包内置的默认生命周期 Skill 套件安装到当前项目:
|
|
198
202
|
|
|
@@ -210,16 +214,18 @@ rsp skills list --json
|
|
|
210
214
|
|
|
211
215
|
该命令会预检十一个默认 package-owned targets,保留无关的 `.agents/skills` 条目(包括可选 Skills),并且只有显式传入 `--force` 才会替换内容不同的已选目录。按精确名称安装可选的项目级审计 Skill:
|
|
212
216
|
|
|
217
|
+
升级仍包含 `rsp-address-review` 或 `rsp-codebase-audit` 的安装时,其替代项分别是 `rsp-resolve-findings` 和 `rsp-structural-audit`。安装器会在变更前停止,直到 `--force` 显式授权事务性移除这个过时的 package-owned 目录;`--dry-run --force` 可同时预览移除与安装。
|
|
218
|
+
|
|
213
219
|
```bash
|
|
214
|
-
rsp skills install rsp-
|
|
215
|
-
rsp skills install rsp-
|
|
220
|
+
rsp skills install rsp-structural-audit --dry-run
|
|
221
|
+
rsp skills install rsp-structural-audit
|
|
216
222
|
```
|
|
217
223
|
|
|
218
224
|
两种形式都从调用 `rsp` 的同一个包安装,因此 beta 评估可以固定精确 npm 身份:
|
|
219
225
|
|
|
220
226
|
```bash
|
|
221
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
222
|
-
npx -y @oevery/rsp@3.1.0-beta.
|
|
227
|
+
npx -y @oevery/rsp@3.1.0-beta.3 skills install --dry-run
|
|
228
|
+
npx -y @oevery/rsp@3.1.0-beta.3 skills install
|
|
223
229
|
```
|
|
224
230
|
|
|
225
231
|
精确 prerelease 身份可以避免依赖持续移动的 dist-tag。`rsp update` 只刷新由 RSP 管理的项目文件;刷新 package-owned Skill 套件需要单独运行 `rsp skills install`。
|
|
@@ -273,8 +279,8 @@ durable review 包含两个独立语义判断:是否更新当前事实或作
|
|
|
273
279
|
|
|
274
280
|
新项目:
|
|
275
281
|
|
|
276
|
-
1. `npx -y @oevery/rsp@3.1.0-beta.
|
|
277
|
-
2. 优先使用 `npx -y @oevery/rsp@3.1.0-beta.
|
|
282
|
+
1. `npx -y @oevery/rsp@3.1.0-beta.3 init`
|
|
283
|
+
2. 优先使用 `npx -y @oevery/rsp@3.1.0-beta.3 init --with-project-setup`,或手动执行 `rsp create project-setup`
|
|
278
284
|
3. 填写 `.rsp/specs/design.md`
|
|
279
285
|
4. 仅在需要新的长期项目文档时使用 `rsp add spec <name>`
|
|
280
286
|
5. 将长期理由写入配置的 Decision Record 目录,将稳定的作用域操作指令写入 nearest project-owned `AGENTS.md`
|
|
@@ -287,14 +293,14 @@ durable review 包含两个独立语义判断:是否更新当前事实或作
|
|
|
287
293
|
|
|
288
294
|
已有复杂 `AGENTS.md` 的项目:
|
|
289
295
|
|
|
290
|
-
1. `npx -y @oevery/rsp@3.1.0-beta.
|
|
296
|
+
1. `npx -y @oevery/rsp@3.1.0-beta.3 init`
|
|
291
297
|
2. 保持受管块尽量薄
|
|
292
298
|
3. 将项目级边界与导航放在 `.rsp/specs/design.md`,把成组的长期事实放入最小领域 Spec
|
|
293
299
|
4. 只有需要额外的 durable current-fact 文档时才使用 `rsp add spec <name>`
|
|
294
300
|
|
|
295
301
|
AI 协助接入:
|
|
296
302
|
|
|
297
|
-
1. `npx -y @oevery/rsp@3.1.0-beta.
|
|
303
|
+
1. `npx -y @oevery/rsp@3.1.0-beta.3 init --agents-mode print --with-project-setup`
|
|
298
304
|
2. 保持受管块原样,只在需要时调整周围由人维护的内容
|
|
299
305
|
3. 让 AI 审阅并填写 `.rsp/changes/project-setup.md`
|
|
300
306
|
4. 让 AI 填写 `.rsp/specs/design.md`
|
|
@@ -305,7 +311,7 @@ AI 协助接入:
|
|
|
305
311
|
```text
|
|
306
312
|
rsp init --agents-mode <mode> 搭建 .rsp/,并确保 AGENTS.md 含有 RSP 入口块
|
|
307
313
|
rsp init --with-project-setup 同时创建 .rsp/changes/project-setup.md
|
|
308
|
-
rsp update
|
|
314
|
+
rsp update 刷新受管项目文件,不更新 packaged Skills
|
|
309
315
|
rsp ui [--lang auto|en|zh-CN] 打开只读交互式仪表盘
|
|
310
316
|
rsp skills 在 dual TTY 中打开交互式项目 Skill 管理器
|
|
311
317
|
rsp skills list [--json] 列出内置 Skills 及其精确项目安装状态
|
|
@@ -317,13 +323,13 @@ rsp group create <name> [goal] 创建不进入 focus 的 .rsp/changes/<name>/00-
|
|
|
317
323
|
rsp group close <name> 所有子 Change 归档后关闭并归档 Group Brief
|
|
318
324
|
rsp focus <name> 将一个 open change 标记为当前聚焦
|
|
319
325
|
rsp unfocus <name> 将一个 open change 移出当前聚焦集合
|
|
320
|
-
rsp archive <name> 归档到 .rsp/archives/
|
|
321
|
-
rsp archive --dry-run <name>
|
|
326
|
+
rsp archive <name> 归档到 .rsp/archives/
|
|
327
|
+
rsp archive --dry-run <name> 已弃用的 rsp ready 兼容入口;不会移动 change
|
|
322
328
|
rsp ready <name> [--json [--compact]] [--verbose]
|
|
323
|
-
|
|
329
|
+
canonical 只读归档就绪投影
|
|
324
330
|
rsp show <name|--focused> [--json [--compact]] [--verbose]
|
|
325
331
|
显示 change 上下文,带就绪信号和上下文路径
|
|
326
|
-
rsp history [--limit <n>] [--since <date>] [--until <date>] [--kind <kind>] [--group <group>] [--json [--compact]]
|
|
332
|
+
rsp history [--limit <n>] [--since <date>] [--until <date>] [--kind <kind>] [--group <group>] [--search <text>] [--json [--compact]]
|
|
327
333
|
列出有界的已归档 Change 摘要(默认 20,最大 100)
|
|
328
334
|
rsp history <work-ref> [--json [--compact]]
|
|
329
335
|
显示一个精确已归档 Change 的有界证据详情
|
|
@@ -347,7 +353,7 @@ rsp doctor [--fix] [--json [--compact]] [--verbose]
|
|
|
347
353
|
|
|
348
354
|
`rsp status --json` 会在 `plan.nodes`、`plan.ready`、`plan.edges`、`plan.blocked` 和 `plan.waves` 中返回同一份依赖图。节点会区分过滤器选中的 Change 与仅用于解释的前置依赖上下文;过滤后的计划会保留解释结果所需的传递前置依赖闭包。由于同一个前置依赖可能被多个 Change 共享,JSON 保持扁平图结构而不嵌套 children。每条边都读作“`change` requires `requires`”。这些内容是派生的导航事实,不是执行授权或持久化 workflow state。
|
|
349
355
|
|
|
350
|
-
`rsp history` 直接检查权威 archive
|
|
356
|
+
`rsp history` 直接检查权威 archive 文件;系统不再生成或读取 Archive Index。列表按 archive date 降序、WorkRef、source path 排序,在 1–100 的结果上限前应用 inclusive date、精确 kind、精确 Group 以及 WorkRef/summary 的大小写不敏感字面搜索。详情只返回有界 summary、scenario/checkbox counts 与结构化 Tasks/Verify/Blockers evidence,不返回 raw Markdown;重复 WorkRef、不可读或格式错误的 archive 会 fail closed。`status` archive trend 与 TUI History 使用同一份已验证 inspection。
|
|
351
357
|
|
|
352
358
|
产生 JSON 的 `status`、`show`、`ready`、`check`、`doctor` 和 `history` 都支持 `--json --compact`:内容与普通 `--json` 解析结果相同,但序列化为一行并以 LF 结尾。`--compact` 必须与 `--json` 同时使用,其他命令会在执行行为前拒绝它。
|
|
353
359
|
|