@oevery/rsp 3.1.0-beta.1 → 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 +101 -87
- package/README.zh-CN.md +88 -64
- package/dist/{chunk-QLXIDVKK.mjs → chunk-7KKAUBKN.mjs} +309 -1255
- package/dist/chunk-JOMFFQRG.mjs +99 -0
- package/dist/chunk-NX55NIC3.mjs +358 -0
- package/dist/chunk-OTJFL6XH.mjs +1022 -0
- package/dist/cli.mjs +533 -561
- package/dist/entry-WZDVKDUM.mjs +174 -0
- package/dist/{entry-LAPR3TNI.mjs → entry-X23GPCVS.mjs} +8 -92
- package/package.json +11 -10
- package/rules/rsp-rules.md +16 -14
- package/skills/rsp/SKILL.md +48 -176
- package/skills/rsp/references/conflict-handling.md +11 -0
- package/skills/rsp/references/durable-review.md +17 -0
- package/skills/rsp/references/groups-dependencies.md +11 -0
- package/skills/rsp/references/managed-routing.md +51 -0
- package/skills/rsp/references/setup-repair.md +11 -0
- package/skills/rsp-commit/SKILL.md +42 -0
- package/skills/rsp-design/SKILL.md +14 -9
- package/skills/rsp-manage/SKILL.md +38 -26
- package/skills/rsp-release-docs/SKILL.md +36 -128
- package/skills/rsp-release-docs/references/evidence-and-surfaces.md +21 -0
- package/skills/rsp-release-docs/references/output-contracts.md +0 -18
- package/skills/rsp-release-docs/references/publication-lifecycle.md +24 -0
- package/skills/{rsp-address-review → rsp-resolve-findings}/SKILL.md +7 -7
- package/skills/rsp-shape/SKILL.md +19 -17
- package/skills/rsp-shape/references/complex-shaping.md +2 -2
- package/skills/rsp-structural-audit/SKILL.md +71 -0
- package/skills/rsp-structural-audit/references/structural-lenses.md +41 -0
package/skills/rsp/SKILL.md
CHANGED
|
@@ -4,225 +4,97 @@ description: Use this skill when initializing RSP, operating an existing .rsp pr
|
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
6
|
author: oevery
|
|
7
|
-
version: "2026.07.
|
|
7
|
+
version: "2026.07.28.1"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# RSP Skill
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Use RSP to derive one current action from project authority and durable work artifacts. This Skill is the preferred operational guide; `.rsp/rsp-rules.md` is the runtime fallback when the Skill is unavailable.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Nearest project instructions and relevant `CONTEXT.md` remain authoritative. Choose response and artifact languages independently: localize human-facing response prose, but preserve canonical RSP headings, WorkRefs, paths, commands, identifiers, and machine values. Write persistent artifacts in domain, system, user, or operator language; mention AI or agents only when they are actual product actors or constraints.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
## Scope
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Write persistent artifacts in domain, system, user, or operator language. Mention AI or agents only when they are actual product actors, consumers, interface participants, or constraints; using AI to perform the work is not itself a durable fact.
|
|
21
|
-
|
|
22
|
-
## When to use
|
|
23
|
-
|
|
24
|
-
- Use for RSP setup, repair, focused RSP work, and pre-archive durable decisions.
|
|
25
|
-
- Use when a user explicitly asks to adopt, inspect, or operate the RSP workflow.
|
|
26
|
-
|
|
27
|
-
## When not to use
|
|
28
|
-
|
|
29
|
-
- Do not load for general coding tasks unrelated to `.rsp/`.
|
|
30
|
-
- Do not load when the repository does not use RSP and the user did not ask to adopt it.
|
|
31
|
-
- Do not create an RSP change for a simple current-session task unless the user explicitly wants RSP tracking.
|
|
32
|
-
- Do not treat this skill or the fallback protocol as a replacement for nearest project `AGENTS.md` instructions or relevant module `CONTEXT.md`.
|
|
18
|
+
Use this Skill for RSP setup or repair, focused `.rsp/` work, and the durable-update decision before archive. Do not use it for unrelated coding or create a Change for a simple session task unless the user explicitly requests tracking.
|
|
33
19
|
|
|
34
20
|
## Derive one next action
|
|
35
21
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
### Route implementation evidence
|
|
39
|
-
|
|
40
|
-
When work has reached implementation, classify the decisive evidence before selecting a capability:
|
|
41
|
-
|
|
42
|
-
- **Diagnosis:** an observed failure is reproducible or materially evidenced, but its cause or owning layer remains unexplained. Conflicting, intermittent, or multi-layer symptoms also take this branch. Select `rsp-diagnose` only when it is available; otherwise use the manual diagnosis fallback: reproduce, locate, test the smallest discriminating hypothesis, and return the evidenced cause without speculative production edits.
|
|
43
|
-
- **TDD:** there is no unexplained failure, the required or corrected behavior is clear, and test-first work is explicitly required by the user, selected Change, or project instructions, or a concrete changed risk makes an observed pre-mutation RED materially safer. Concrete risks include public APIs or protocols, persisted data, security or money, concurrency or cancellation, complex state transitions, and defects that escaped to production. Select `rsp-tdd` only when it is available; otherwise use the manual TDD fallback: observe the focused RED, make the minimum GREEN change, optionally REFACTOR while green, then rerun required checks. Behavior being testable, a test being possible, or the work being a fix is not sufficient by itself.
|
|
44
|
-
- **Ordinary implementation:** this is the default when diagnosis does not apply and no TDD gate above is met. Continue with ordinary `rsp-implement` when the required behavior, cause, or edit is sufficiently evidenced, or use the single manual implementation/verification action when that Skill is unavailable.
|
|
45
|
-
|
|
46
|
-
Diagnosis takes precedence over TDD: do not encode an unexplained symptom as a guessed regression test. Fresh verification is required, but a new test is only one evidence option; prefer the cheapest decisive existing test, static check, build, or acceptance evidence that covers the changed risk. Each branch returns its evidence, Tasks, Verify updates, and unresolved Blockers to the same selected Change. Capability availability changes execution assistance, not the owner or required outcome.
|
|
47
|
-
|
|
48
|
-
### Route release documentation
|
|
49
|
-
|
|
50
|
-
Use the release-documentation branch only when the selected Change explicitly owns a confirmed release identity or range and still has unfinished changelog, release-note, or migration work. Lifecycle stage, completed implementation, or archive readiness alone is insufficient; ordinary Changes continue to the Core durable decision.
|
|
51
|
-
|
|
52
|
-
Treat release identity as an owner decision. It is confirmed only by an explicit user instruction or authoritative repository release configuration; never infer it from version ordering, a previous prerelease, commit contents, or planned prose. Until confirmation, keep any release ledger version-neutral and leave version manifests, target changelog headings, exact-version README commands, versioned release notes, and tag comparisons unchanged.
|
|
53
|
-
|
|
54
|
-
When both conditions hold, select `rsp-release-docs` when available. Otherwise use the manual release-documentation fallback against the same Change: confirm the release range and audience, build one net-release evidence ledger, and project it into the repository-owned changelog, release notes, and applicable migration guidance. This route prepares or audits documentation only; it does not grant commit, tag, push, release creation, publication, deployment, or approval authority.
|
|
55
|
-
|
|
56
|
-
An explicit request to create a release tag, hosted release, registry publication, or equivalent public release has an additional mandatory finalization gate. Before any external action, require either one selected Change or one explicitly named archived release Change to own the confirmed release identity and range, then select the `rsp-release-docs` **Finalize for publication** branch even if the prose was already reviewed. When project authority requires archive before final Git delivery, finish the durable decision and lifecycle closeout first, commit that closeout, and rerun the exact finalization checks against the post-archive candidate ref; only that immutable candidate may receive `ready`. The gate inspects the public tag/package release surfaces, rejects transient publication-state prose in shipped artifacts, and returns a credential-free `ready` or `not ready` handoff. If the Skill is unavailable, perform the same checks with the manual fallback. Neither result executes or grants authority for the external action.
|
|
57
|
-
|
|
58
|
-
After an observed publication, use the `rsp-release-docs` **Reconcile published release** branch only when the selected or explicitly named archived release owner has unfinished external verification or mutable public-surface corrections. Keep immutable discrepancies historical and assign a corrective version or owner instead of moving tags or rewriting packages.
|
|
59
|
-
|
|
60
|
-
Apply these gates in order:
|
|
22
|
+
Read user intent, nearest authority, `rsp status --json`, the selected Change and its readiness, fresh verification evidence, and blockers. Stages are derived guidance, never persisted state.
|
|
61
23
|
|
|
62
|
-
|
|
63
|
-
2. If the user explicitly requests managed continuation, select `rsp-manage` only when it is available. Its eligibility gate activates only for one focused ready Change with genuinely independent slices, long authorized continuation, or interruption recovery; an ineligible request returns the exact ordinary Core or Discipline next action without mutation or controller artifacts. Managed routing is never implicit and grants no lifecycle, Git, publication, deployment, approval, or human-acceptance authority.
|
|
64
|
-
3. If the user requests a report-only review against a fixed scope, select `rsp-review` only when it is available; otherwise name the manual read-only review and return its findings to the selected Change's Tasks, Verify, or Blockers.
|
|
65
|
-
4. If the user explicitly requests a tag, hosted release, registry publication, or published-release reconciliation, resolve exactly one selected or explicitly named archived release owner with the confirmed identity and range, then run the `rsp-release-docs` finalization or reconciliation branch and return its credential-free result. This gate precedes ordinary no-focus and implementation routing so a post-archive release owner is not replaced by an unrelated ready Change. Missing owner evidence returns the exact required release owner; the gate never executes or grants the external action.
|
|
66
|
-
5. If no Change is selected, use the status plan to name one ready WorkRef and the direct focus action. For tiny settled work, return the direct engineering action without creating RSP state. For unclear non-trivial work, select `rsp-shape` only when it is available and the user authorized its Change mutation; otherwise give the manual fallback of creating or refining one Change.
|
|
67
|
-
6. If the user or Shape has isolated one material domain, module/seam, or evidence-seeking design question for the selected Change, select `rsp-design` when available; otherwise return the compact manual design fallback: inspect project authority and the live path, compare credible alternatives, separate evidence from owner choice, and return the result to the same WorkRef without implementation or durable-truth mutation.
|
|
68
|
-
7. If the selected Change is not shape-ready and no bounded design question has been isolated, select `rsp-shape` under the same authority rule or give the manual fallback of completing its Proposal, Spec, Design, Tasks, Verify, and Blockers.
|
|
69
|
-
8. If a shape-ready Change has incomplete implementation tasks, or its required verification is missing, stale, or failed, apply the implementation-evidence routing above. Select only its resulting available capability when authorized; otherwise name its manual fallback owned by that Change.
|
|
70
|
-
9. If implementation Tasks and required verification pass with no blocker, and the selected Change meets both ordinary release-documentation conditions above, select `rsp-release-docs` under the same availability rule or use its manual fallback. Return its evidence and surface dispositions to the same Change.
|
|
71
|
-
10. Otherwise, when required Tasks and verification pass with no blocker, perform the Core durable decision. Archive only after required current facts and rationale are written or explicitly judged unnecessary. Recommend explicit archive as the next action before final Git delivery; Core does not execute archive or grant authority to stage, commit, push, or publish. Keep each completed Change independently reviewable. If later Git authority is granted, deliver that Change as its own logical commit before a separately owned Release Change finalizes versioned shipped surfaces in a dedicated release commit.
|
|
24
|
+
Apply these routes in order:
|
|
72
25
|
|
|
73
|
-
|
|
26
|
+
Before later-turn mutation under a direct report, tiny, or small route, rederive routing from the now-authorized objective and prospective work. If it materially expands into cross-module implementation, multiple acceptance surfaces, repeated production-path correction, real-host validation, or lifecycle delivery, establish or reuse the smallest sufficient WorkRef, then apply managed preflight and fresh qualification before mutation. Follow-ups that remain tiny/small stay direct. Elapsed time and message count are never escalation evidence.
|
|
74
27
|
|
|
75
|
-
|
|
28
|
+
1. Stop for ambiguous authority or selection and return the one required input and its owner. For a material owner decision inside an explicit managed request, continue to the Shape preflight in route 2 so repository inspection precedes the single owner question; otherwise stop here.
|
|
29
|
+
2. For a requested completion or continuation that is not a report-only review or release operation, read [managed routing](references/managed-routing.md) when the request is explicitly managed or the effective status policy has `manage.activation: auto`. It owns owner preflight, qualification, successor discovery, bounded review convergence, and lifecycle/Git separation. Select `rsp-manage` only after that preflight for an eligible selected ready Change or shallow Group; otherwise return the ordinary Core or Discipline action. Automatic activation grants controller selection only; planning, product mutation, lifecycle, Git, and external authority remain separately derived.
|
|
30
|
+
3. Route an explicit report-only review with fixed scope to `rsp-review` when available, otherwise perform the same read-only review manually.
|
|
31
|
+
4. Route an explicit release-documentation, finalization, publication, or reconciliation operation through [Release operations](#release-operations) before ordinary Change routing.
|
|
32
|
+
5. Route one explicit isolated material domain, module/seam, or evidence-seeking design question to installed `rsp-design`; never manually emulate it. Without a selected Change, use report-only Pre-Change Design only for an already bounded question; return its result without inventing a WorkRef or artifact. With a selected Change, return to that WorkRef. Only when unavailable, its manual fallback inspects authority and the live path, compares credible alternatives, and separates evidence from owner choice without implementation or durable-truth mutation.
|
|
33
|
+
6. With no selected Change, name one ready WorkRef and direct focus action. For tiny settled work, return the direct engineering action. When outcome, scope, non-goals, acceptance, or decomposition is materially unclear, use `rsp-shape` when available and Change mutation is authorized; otherwise manually create or refine one Change to the same ready boundary.
|
|
34
|
+
7. If the Change is not shape-ready, route to Shape under the same authority rule.
|
|
35
|
+
8. For incomplete implementation or stale, missing, or failed verification, use [Implementation evidence](#implementation-evidence).
|
|
36
|
+
9. When Tasks and required verification pass without blockers, perform the durable decision. Do not infer a release operation from Change completion.
|
|
76
37
|
|
|
77
|
-
|
|
38
|
+
State the derived stage, one next action, required input, returned owner, and decisive evidence. Name at most one optional capability, only when it is the next action and appears in the host's loaded Skill inventory. Missing capabilities never invalidate RSP: give the manual fallback against the same owner. When Core or qualified Manage has derived one authorized RSP-owned local commit boundary, route exact staging, structured message construction, local commit execution, and post-commit observation to `rsp-commit`; if unavailable, use the bounded manual action in durable review against the same owner. Do not preload, enumerate, or recursively invoke optional capabilities.
|
|
78
39
|
|
|
79
|
-
###
|
|
40
|
+
### Implementation evidence
|
|
80
41
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
4. For diagnostics, run `npx -y @oevery/rsp doctor`.
|
|
85
|
-
5. For safe deterministic repairs, run `npx -y @oevery/rsp doctor --fix` or `npx -y @oevery/rsp update`.
|
|
86
|
-
6. When auditing manually, verify `.rsp/`, managed roots, and nested Spec parents are real directories; the project `AGENTS.md`, managed markers, fallback/config files, indexes, and placeholders are regular files; `AGENTS.md` has the managed block; `specs/design.md` and the configured Decision Record directory exist; every group has one valid brief with matching direct children; work and archive trees are flat or one group level; and `focus.d/` markers match executable Changes.
|
|
87
|
-
7. Treat `doctor --fix` `fixed` entries as actual filesystem changes. An empty `fixed` array or `No safe fixes needed.` means the repair pass changed nothing.
|
|
88
|
-
8. Do not use repair commands for semantic decisions such as stale focus removal, durable updates, or archive readiness.
|
|
42
|
+
- **Diagnosis first:** diagnosis takes precedence over TDD for an evidenced but unexplained, conflicting, intermittent, or multi-layer failure. Use `rsp-diagnose` when available; its manual fallback reproduces, locates, and tests the smallest discriminating hypothesis. Do not encode an unexplained symptom as a guessed regression test.
|
|
43
|
+
- **TDD when justified:** use `rsp-tdd` only when test-first is explicitly required by the user, Change, or project instructions, or when a concrete changed risk makes a pre-mutation RED materially safer. Public contracts, persisted data, security or money, concurrency, complex transitions, and escaped defects qualify; mere testability or being a fix does not. Its manual fallback observes the focused RED, makes the minimum GREEN change, and refactors only while green.
|
|
44
|
+
- **Ordinary implementation by default:** use `rsp-implement`, or the equivalent bounded edit and verification, once the behavior, cause, and owner are sufficiently evidenced.
|
|
89
45
|
|
|
90
|
-
|
|
46
|
+
All branches return evidence, Tasks, Verify updates, and blockers to the same Change. Fresh verification is required, but a new test is only one option; use the cheapest decisive check that covers the changed risk.
|
|
91
47
|
|
|
92
|
-
|
|
93
|
-
2. Treat only `focus.d/` markers as current RSP work; do not treat unfocused files in `changes/` as current work unless the user explicitly asks or you run `npx -y @oevery/rsp focus <name>`.
|
|
94
|
-
3. Resolve executable Change names as either `<change>` or one direct `<group>/<change>` child. Require a real `changes/` root and real existing `focus.d/`, `archives/`, and group prefixes; reject symlinks, incomplete inspection, deeper paths, and file/directory identity collisions.
|
|
95
|
-
4. Use a Change Group only for at least two independently executable Changes sharing one goal or completion contract. Create it with `npx -y @oevery/rsp group create <group> [goal]`, then replace the brief placeholders and declare every direct child identity and boundary under `Slices` before creating children.
|
|
96
|
-
5. Treat logical `<group>/brief`, physically stored as `<group>/00-brief.md`, as non-executable and non-focusable. For grouped work, read it before the selected child Change. Its `Slices` declaration order guides navigation; a Brief blocker is inherited as an external blocker by every direct child without creating edges. Archive children independently, then close only the brief with `npx -y @oevery/rsp group close <group>` when all group gates pass.
|
|
97
|
-
6. Declare an exact prerequisite only as `- requires \`<change-work-ref>\`: <reason>` under the dependent Change's `Blockers`. Targets must be executable Changes, not Group Briefs. Keep external blockers as ordinary prose and never infer an edge from them.
|
|
98
|
-
7. Use `npx -y @oevery/rsp status --json` as the derived dependency view. Read `plan.nodes`, `plan.ready`, `plan.edges`, `plan.blocked`, and `plan.waves`; nodes distinguish selected Changes from prerequisite context, and each edge reads as “`change` requires `requires`” with `reason` and `state`. Filtered plans retain the transitive prerequisite closure needed to explain the selection. Human status renders the same flat graph as a dependency forest; do not infer nested JSON ownership from that presentation. Do not create or maintain a separate graph or copy live delivery state into a Group Brief. Archived prerequisites resolve without rewriting the dependent Change, while incomplete archive inspection produces no ready plan.
|
|
99
|
-
8. Read the focused change before editing code.
|
|
100
|
-
9. If a focused change is missing an explicit `kind`, repair the frontmatter before continuing.
|
|
101
|
-
10. Run `npx -y @oevery/rsp check --focused` before treating focused work as ready; resolve dependency errors, placeholders, or clarification warnings when they represent real unfinished content.
|
|
102
|
-
11. Treat `rsp check` warnings as deterministic hygiene signals, not as the durable-update decision.
|
|
103
|
-
12. Use `npx -y @oevery/rsp create <name> --lite` only when the user explicitly wants RSP tracking for a small, straightforward change.
|
|
104
|
-
13. Convert actionable `## Tasks` checkboxes into your agent-local task tracker when one is available.
|
|
105
|
-
14. Keep implementation sequential by default; parallelize only independent read-only discovery or mechanical checks.
|
|
106
|
-
15. Update `## Tasks`, `## Verify`, and any invalidated `## Proposal`, `## Spec`, or `## Design` content in the same working session as implementation facts change.
|
|
107
|
-
16. Keep the selected Change as a convergent snapshot of the current plan and final decisive evidence. Replace stale or superseded content; keep routine attempts, RED/GREEN loops, command transcripts, and correction chronology in the response, then compress any material history to final outcomes, coverage, omissions, and unresolved risks before archive.
|
|
108
|
-
17. Keep temporary debugging notes, task history, and command transcripts out of `specs/` and project-owned `AGENTS.md` instructions.
|
|
48
|
+
### Release operations
|
|
109
49
|
|
|
110
|
-
|
|
50
|
+
Route here only when the user explicitly requests release documentation, finalization, publication, or reconciliation and the operation has a confirmed identity or range with unfinished release-surface work. A selected Change is not required, and lifecycle stage or archive readiness alone is insufficient.
|
|
111
51
|
|
|
112
|
-
|
|
52
|
+
Release identity is an owner decision confirmed only by explicit user instruction or authoritative repository release configuration. Never infer it from version order, a previous prerelease, commits, or planned prose. Until confirmation, keep ledgers version-neutral and leave manifests, target changelog headings, exact-version commands, versioned notes, and tag comparisons unchanged.
|
|
113
53
|
|
|
114
|
-
|
|
115
|
-
| --- | --- | --- |
|
|
116
|
-
| Planned future design | selected Change `## Design` | Never write planned state as current truth. |
|
|
117
|
-
| Implemented stable current facts | smallest relevant Spec, usually `.rsp/specs/design.md` or an existing domain Spec | Write only observed stable facts under authority. |
|
|
118
|
-
| Lasting rationale and tradeoffs | one exact file under `durableReview.decisionRecordsPath` | Judge independently from current facts; do not duplicate them. |
|
|
119
|
-
| Stable scoped navigation or current context | project-owned `CONTEXT.md`, when that convention exists | Preserve project ownership and edit only with explicit authority. |
|
|
120
|
-
| Stable operating instructions | nearest project-owned `AGENTS.md` outside the managed RSP block | Preserve project ownership and edit only with explicit authority. |
|
|
121
|
-
| Temporary execution state | response continuation | Not durable truth; write a file only when explicitly authorized. |
|
|
54
|
+
Select `rsp-release-docs` when available or use its manual evidence-led fallback. An explicit tag, hosted release, registry publication, or equivalent public action must pass its **Finalize for publication** branch against a clean exact candidate after implementation Change closeout. Finalize versioned shipped surfaces in a separate release commit when Git delivery is authorized. The credential-free `ready` or `not ready` handoff never executes or grants commit, tag, push, release creation, publication, deployment, or approval authority.
|
|
122
55
|
|
|
123
|
-
|
|
56
|
+
Use an optional Release Change only for material decisions, cross-stage coordination, recovery, blockers, or acceptance needing a persistent owner—never for a mechanical checklist. After observed publication, use **Reconcile published release** for unfinished verification or authorized mutable-surface corrections; preserve immutable history and assign drift to a corrective version or owner.
|
|
124
57
|
|
|
125
|
-
|
|
126
|
-
## <localized RSP Continuation heading>
|
|
127
|
-
- <localized WorkRef label>: <selected Change>
|
|
128
|
-
- <localized Authority label>: <project, Change, Spec, decision, or report pointers>
|
|
129
|
-
- <localized Current state label>: <completed, partial, failed, unavailable, or blocked plus decisive state>
|
|
130
|
-
- <localized Changed artifacts label>: <paths or none>
|
|
131
|
-
- <localized Fresh verification label>: <command and result, or pending reason>
|
|
132
|
-
- <localized Blockers label>: <exact blocker and owner, or none>
|
|
133
|
-
- <localized Next action label>: <smallest bounded action and owner>
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Treat this continuation shape as semantic field order rather than fixed English wording. Localize its human-facing title and labels to the response language while preserving WorkRefs, paths, commands, identifiers, and machine-consumed values. A localized label may retain a technical token in parentheses but must not use that English token alone; for example, use `工作引用(WorkRef)` in a Chinese response. Do not use the response language to rewrite referenced project artifact prose.
|
|
137
|
-
|
|
138
|
-
The continuation points to existing owners; it is not a second state store. On resume, reopen every authority pointer, inspect worktree and artifact drift, and refresh any verification supporting the next action. Never create hidden handoff/controller state or persist the continuation without explicit path authority.
|
|
139
|
-
|
|
140
|
-
### Handle an active Git conflict
|
|
141
|
-
|
|
142
|
-
When a merge, rebase, or cherry-pick conflict intersects authorized implementation:
|
|
143
|
-
|
|
144
|
-
1. Inspect the exact Git operation, conflicted paths, current index/worktree, and pre-existing user changes.
|
|
145
|
-
2. Interpret base, ours, and theirs in that operation; trace the relevant behavior and authority instead of choosing a side mechanically.
|
|
146
|
-
3. Resolve only evidenced content inside the WorkRef and mutation authority. Preserve unrelated work and do not stage the resolution unless separately authorized.
|
|
147
|
-
4. Stop when the conflict includes unrelated user work, an unresolved product decision, incomplete side/base evidence, or out-of-scope content. Return the exact conflict and required owner input in the continuation.
|
|
148
|
-
5. After an authorized working-tree resolution, rerun affected checks and return their fresh result.
|
|
149
|
-
|
|
150
|
-
Do not continue or abort the Git operation, commit, push, or infer Git delivery authority from implementation or conflict-resolution authority. RSP does not need a separate merge-conflict Skill for this fallback.
|
|
58
|
+
## Operate the selected Change
|
|
151
59
|
|
|
152
|
-
|
|
60
|
+
Before focusing or mutating a different WorkRef, compare dirty product or durable-truth paths with the prior owner's declared or observed paths. Overlap never transfers ownership: continue the same open WorkRef, explicitly reopen archived acceptance when authorized and applicable, use an explicitly authorized integration owner, or stop for boundary resolution. Disjoint authorized work may proceed without staging or forcing a commit; insufficient evidence stops the transition.
|
|
153
61
|
|
|
154
|
-
|
|
155
|
-
2. Run `npx -y @oevery/rsp show --focused --json` or `npx -y @oevery/rsp ready <name> --json` to collect readiness, warnings, context paths, and `durableReview` guidance.
|
|
156
|
-
3. Treat `durableReview.factCandidateTargets` and `durableReview.decisionRecordsPath` as advisory routing context, not as permission to edit generated indexes or invent a Decision Record filename.
|
|
157
|
-
4. Treat `Spec` delta markers (`### ADDED`, `### MODIFIED`, `### REMOVED`) as planning aids only; do not merge them automatically.
|
|
158
|
-
5. Read only the current Change, relevant Specs and Decision Records, nearest project-owned `AGENTS.md`, and code files needed for the semantic decision.
|
|
159
|
-
6. Produce the durable decision output before archiving.
|
|
62
|
+
Read the focused Change, its sibling Group Brief when grouped, and only the relevant Specs and Decision Records before implementation. Use generated local `.rsp/specs/**/00-index.md` files only as direct-child navigation; never treat them as durable owners. Run `npx -y @oevery/rsp check --focused` before treating it as ready. Only `focus.d/` markers select current work; open filenames do not. Preserve one explicit `kind` and the canonical Proposal, Spec, Design, Tasks, Verify, and Blockers sections.
|
|
160
63
|
|
|
161
|
-
|
|
64
|
+
Keep the Change a convergent snapshot of the current plan and final decisive evidence. Replace superseded content; keep routine attempts, RED/GREEN chronology, temporary probes, and command transcripts in the response. Update Tasks, Verify, and any invalidated Proposal, Spec, or Design in the same session.
|
|
162
65
|
|
|
163
|
-
|
|
66
|
+
Persist only `open` and `archived`; derive readiness, blockers, stage, and next actions. Do not infer implementation, review, Git, publication, or approval authority from focus, readiness, routing, or capability availability.
|
|
164
67
|
|
|
165
|
-
|
|
68
|
+
When fresh evidence shows that an archived executable Change did not meet its original acceptance, keep the correction under the same WorkRef by explicitly running `rsp reopen <work-ref> --reason <text>`. Reopen retains the selected archive as history, restores and focuses open work, and adds unfinished Task and Verify evidence. If multiple archives share the WorkRef, require exact `--from .rsp/archives/...` selection rather than choosing the newest. Treat the open WorkRef as current dependency state; do not cascade into archived dependents or implicitly reopen a closed Change Group. Use a new corrective Change for genuinely new scope or an independently delivered correction. Reopen is lifecycle mutation only and grants no Git, release, publication, deployment, or approval authority.
|
|
166
69
|
|
|
167
|
-
|
|
168
|
-
- `Update existing spec or scoped instruction`
|
|
169
|
-
- `Create a new durable spec` only when the knowledge is project-level, reusable, and does not fit `specs/design.md`, an existing spec, or a scoped project instruction
|
|
70
|
+
Load detailed procedures only when their path is active:
|
|
170
71
|
|
|
171
|
-
|
|
72
|
+
- Read [setup and repair](references/setup-repair.md) before initializing, auditing, migrating, or repairing RSP state.
|
|
73
|
+
- Read [groups and dependencies](references/groups-dependencies.md) before creating, focusing, planning, or closing grouped/dependent work.
|
|
74
|
+
- Read [conflict handling](references/conflict-handling.md) only when an active merge, rebase, or cherry-pick conflict intersects authorized work.
|
|
75
|
+
- Read [durable review](references/durable-review.md) only after required Tasks and verification pass, or when auditing archive readiness.
|
|
172
76
|
|
|
173
|
-
|
|
174
|
-
- `Create or update a Decision Record`
|
|
77
|
+
## Ownership and safety
|
|
175
78
|
|
|
176
|
-
|
|
79
|
+
Route planned design to the selected Change; stable implemented facts to the smallest relevant Spec or authorized scoped instruction; lasting rationale to one exact Decision Record; stable navigation to project-owned `CONTEXT.md`; stable operating rules to project-owned `AGENTS.md`; and temporary continuation to the response. Never write planned state as current truth or duplicate facts into rationale.
|
|
177
80
|
|
|
178
|
-
|
|
81
|
+
Use RSP commands for managed setup, focus, repair, indexes, archive, and reopen. Do not directly create command-owned files, edit generated indexes or `.rsp/rsp-rules.md` as durable truth, or modify the managed RSP block. Preserve unrelated work. Core recommends explicit archive only after the durable decision; it does not execute archive or grant staging, commit, push, publication, deletion, deployment, approval, or human-acceptance authority. A configured `manage.closeout` preset remains dormant unless Core selected and qualified Manage for the current continuation; declined, unavailable, or unselected Manage leaves Core advisory even under `lifecycle` or `local`. Core also does not execute reopen without explicit lifecycle authority. The qualified Manage rules in [managed routing](references/managed-routing.md) are the sole scoped exceptions.
|
|
179
82
|
|
|
180
|
-
|
|
181
|
-
- the change changed a project boundary, default, or constraint
|
|
182
|
-
- future agents or developers would likely make mistakes without the fact
|
|
183
|
-
- the fact is worth rereading in later sessions as durable project knowledge
|
|
83
|
+
When accepted work remains, return a localized continuation with these semantic fields in order: `WorkRef`, `Authority`, `Current state`, `Changed artifacts`, `Fresh verification`, `Blockers`, `Next action`. Preserve technical values. The continuation points to existing owners, is not a second state store, and must not be persisted without explicit path authority. On resume, reopen its pointers, inspect drift, and refresh decisive evidence.
|
|
184
84
|
|
|
185
|
-
|
|
85
|
+
## Durable decision output
|
|
186
86
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
- project-wide design, boundaries, defaults, and durable context -> `.rsp/specs/design.md`
|
|
190
|
-
- stable project or module operating instructions -> nearest project-owned `AGENTS.md`, only with authority to edit its non-managed content
|
|
191
|
-
- stable navigation or scoped current context -> project-owned `CONTEXT.md`, only when the project uses it and authority permits the edit
|
|
192
|
-
- an additional reusable project-level spec -> `.rsp/specs/<name>.md`
|
|
193
|
-
- lasting rationale -> one exact Markdown file under `durableReview.decisionRecordsPath`
|
|
194
|
-
|
|
195
|
-
Do not choose generated indexes, `.rsp/rsp-rules.md`, or the managed RSP block in `AGENTS.md` as ordinary durable writeback targets.
|
|
196
|
-
|
|
197
|
-
Prefer `.rsp/specs/design.md` or an existing durable file before creating a new spec file.
|
|
198
|
-
|
|
199
|
-
Write stable facts or lasting rationale, not narrative history, task-by-task notes, temporary debugging history, or archive-only detail. Do not duplicate current facts into a Decision Record or rationale into a Spec. If you cannot identify concrete durable content, do not invent it.
|
|
200
|
-
|
|
201
|
-
## Output template
|
|
202
|
-
|
|
203
|
-
Use these semantic fields in this exact order. Localize the heading and human-facing labels to the response language; preserve the decision values shown in angle brackets as canonical values.
|
|
87
|
+
After loading [durable review](references/durable-review.md), choose current facts and rationale independently. Localize headings and labels, but preserve the canonical values below:
|
|
204
88
|
|
|
205
89
|
```md
|
|
206
90
|
## <localized Durable Decision heading>
|
|
207
91
|
- <localized Current facts label>: <No current-fact update needed | Update existing spec or scoped instruction | Create a new durable spec>
|
|
208
92
|
- <localized Current-fact target label>: <exact file path or N/A>
|
|
209
|
-
- <localized Facts to write label>:
|
|
210
|
-
- <durable fact or none>
|
|
93
|
+
- <localized Facts to write label>: <durable facts or none>
|
|
211
94
|
- <localized Decision Record label>: <No Decision Record needed | Create or update a Decision Record>
|
|
212
95
|
- <localized Decision Record target label>: <exact file path or N/A>
|
|
213
|
-
- <localized Rationale to write label>:
|
|
214
|
-
- <lasting rationale or none>
|
|
96
|
+
- <localized Rationale to write label>: <lasting rationale or none>
|
|
215
97
|
- <localized Archive ready label>: <yes | no>
|
|
216
98
|
```
|
|
217
99
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
Rules for the output:
|
|
221
|
-
|
|
222
|
-
- Each target must be an exact file path when its decision requires an update; `durableReview.decisionRecordsPath` is a directory, not the final target.
|
|
223
|
-
- `Facts to write` must contain durable facts, not task history or debugging notes.
|
|
224
|
-
- `Rationale to write` must contain lasting rationale, alternatives, tradeoffs, or consequences, not a duplicate of current facts.
|
|
225
|
-
- If real blockers remain or a required fact or rationale update is not yet written, `Archive ready` must be `no`.
|
|
226
|
-
- If neither axis has a missing update and remaining verify risk is consciously accepted, `Archive ready` may be `yes`.
|
|
227
|
-
- Do not use CLI warning text as a substitute for semantic durable-update judgment.
|
|
228
|
-
- CLI `archiveReady: judgment` means the skill or a human must decide; it is not automatic approval.
|
|
100
|
+
Response-only Continuation and Durable Decision labels are not canonical artifact headings. In Chinese, for example, use `## 持久化决策`, `决策记录(Decision Record)`, and `可归档(Archive ready)`, not English labels alone. A required unwritten update or real blocker makes archive readiness `no`; CLI `archiveReady: judgment` is advisory, not approval.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Conflict handling
|
|
2
|
+
|
|
3
|
+
Load this reference only when an active merge, rebase, or cherry-pick conflict intersects authorized implementation.
|
|
4
|
+
|
|
5
|
+
1. Inspect the exact Git operation, conflicted paths, index/worktree, and pre-existing user edits.
|
|
6
|
+
2. Interpret base, ours, and theirs in that operation; resolve behavior from authority and evidence rather than choosing a side mechanically.
|
|
7
|
+
3. Modify only evidenced content inside the WorkRef and mutation authority. Preserve unrelated work and do not stage without separate authority.
|
|
8
|
+
4. Stop for unrelated user work, an unresolved product decision, incomplete side/base evidence, or out-of-scope content. Return the exact conflict and owner input.
|
|
9
|
+
5. After an authorized working-tree resolution, rerun affected checks.
|
|
10
|
+
|
|
11
|
+
Conflict-resolution authority does not authorize continuing or aborting the Git operation, staging, committing, or pushing.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Durable review
|
|
2
|
+
|
|
3
|
+
Load this reference only after required Tasks and verification pass, or when auditing archive readiness.
|
|
4
|
+
|
|
5
|
+
Run `rsp check --focused` and `rsp show --focused --json`, or `rsp ready <name> --json` for an explicit Change. Treat `durableReview.factCandidateTargets` and `decisionRecordsPath` as routing advice, not permission. Spec delta markers are planning aids and are never promoted automatically.
|
|
6
|
+
|
|
7
|
+
Choose current facts and rationale independently. Use no update when there is no stable fact or lasting rationale worth rereading.
|
|
8
|
+
|
|
9
|
+
Write a current-fact update only when implementation changed a stable behavior, boundary, default, or constraint that future maintainers need. Prefer the smallest existing domain Spec, `.rsp/specs/design.md` for project-wide boundaries/navigation, or an explicitly authorized scoped `CONTEXT.md`/`AGENTS.md`; create a new Spec only for reusable project-level truth that fits nowhere existing.
|
|
10
|
+
|
|
11
|
+
Create or update a Decision Record only for a hard-to-reverse or surprising choice with a real tradeoff. It owns rationale, alternatives, tradeoffs, and consequences—not duplicated current facts. Choose one exact file under `durableReview.decisionRecordsPath`, not the directory itself.
|
|
12
|
+
|
|
13
|
+
Never use generated indexes, archives, `.rsp/rsp-rules.md`, or the managed RSP block as ordinary writeback targets. Keep narrative history, debugging notes, task chronology, and transient evidence out of Specs and Decisions.
|
|
14
|
+
|
|
15
|
+
Before archive, compress the Change to current design, completed outcomes, decisive evidence, omissions, remaining risks, and blockers. Archive only after required updates are written or explicitly unnecessary. Ordinary work needs later explicit Git authority for one independently reviewable logical commit. A `manage.closeout` preset applies only when Core selected and qualified Manage for the current continuation; declined, unavailable, or unselected Manage leaves Core advisory and configuration executes neither archive nor commit. In a qualified managed continuation, lifecycle closeout is independent from Git and follows the effective ceiling: `manual` leaves archive advisory, while `lifecycle` or `local` permits `rsp archive <change-work-ref>` after Core durable review unless nearer authority narrows it. For a shallow Group with lifecycle closeout, independently review and archive each child, re-derive completion, and run `rsp group close <group>` only after every child and Group gate passes. Inspect each complete lifecycle diff before deciding Git separately. `manual` and `lifecycle` grant no commit; `local` may justify recovery checkpoints and, after lifecycle closeout, requires one `rsp-commit` invocation for a terminal non-small Change or Group when owner, paths, fresh decisive verification, and a clean exact boundary are known and no nearer denial exists. Terminal small work defaults to no commit; ambiguous, mixed, stale, or denied boundaries stop without staging. A separately authorized release operation may use a dedicated release commit. Push remains separate and requires the user to mention it explicitly.
|
|
16
|
+
|
|
17
|
+
When commit eligibility and authority exist, give `rsp-commit` one envelope containing the Change, Group/wave, or confirmed release owner, exact allowed paths, decisive evidence, lifecycle state, and current authority. If that Skill is unavailable, perform the same bounded manual action: reread nearest authority and owner; inspect staged, unstaged, and untracked paths, the cached diff, and recent non-merge messages; stop without staging on ambiguity or stale evidence; stage only allowed paths; re-inspect the complete cached boundary; derive a repository-consistent Conventional subject plus a proportionate body and truthful RSP trailers; create one local commit; then observe its complete message, paths, remaining worktree, and remote safety without amending or performing any external action.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Groups and dependencies
|
|
2
|
+
|
|
3
|
+
Load this reference before creating, focusing, planning, or closing grouped or dependent work.
|
|
4
|
+
|
|
5
|
+
- Executable WorkRefs are `<change>` or one direct `<group>/<change>` child. Deeper paths are unsupported.
|
|
6
|
+
- Use a Change Group only for at least two independently executable Changes sharing a goal or completion contract. Create it with `npx -y @oevery/rsp group create <group> [goal]`, replace placeholders, and declare each direct child under `Slices` before creating it.
|
|
7
|
+
- `<group>/brief`, stored as `<group>/00-brief.md`, is not executable or focusable. Read it before a selected child. Its declaration order guides navigation and its blockers are inherited as external blockers, not graph edges.
|
|
8
|
+
- Declare an exact prerequisite only as `- requires \`<change-work-ref>\`: <reason>` under the dependent Change's `Blockers`. Targets must be executable Changes.
|
|
9
|
+
- Use `rsp status --json` as the derived dependency view. `plan.nodes`, `ready`, `edges`, `blocked`, and `waves` are authoritative for the current inspection. Each edge means “change requires prerequisite”; filtered plans retain transitive prerequisite context.
|
|
10
|
+
- Do not infer nested ownership from the human dependency forest, create a parallel graph, or copy live delivery state into a Group Brief. Archived prerequisites resolve without rewriting dependents; incomplete inspection fails closed.
|
|
11
|
+
- Archive children independently. Close the brief with `rsp group close <group>` only after every direct child and group completion gate passes.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Managed routing
|
|
2
|
+
|
|
3
|
+
Load this reference only for a requested completion or continuation that is not a report-only review or release operation and is either explicitly managed or has effective `manage.activation: auto` in status. Missing configuration preserves `explicit` activation with `local` closeout compatibility. Invalid configuration fails closed as `explicit` plus `manual` and must remain visible.
|
|
4
|
+
|
|
5
|
+
## PREFLIGHT — resolve the owner
|
|
6
|
+
|
|
7
|
+
Treat the requested goal and independently allowed planning and product mutations as a transient authority envelope. Automatic activation grants controller selection only and never adds planning or product-mutation authority. Resolve the smallest sufficient owner before testing Manage eligibility.
|
|
8
|
+
|
|
9
|
+
Before focusing, dispatching, or mutating a different WorkRef, inspect dirty paths and the diff against the prior owner's declared and observed product or durable-truth paths. Overlap never changes owner implicitly: continue the same open WorkRef, explicitly reopen its archived acceptance when authorized and applicable, use an explicitly authorized integration owner, or stop for boundary resolution. Disjoint authorized work may proceed without staging or a forced commit; insufficient ownership evidence stops the transition.
|
|
10
|
+
|
|
11
|
+
- Reuse one unambiguous selected ready owner.
|
|
12
|
+
- Return tiny settled work to direct engineering without a synthetic Change or controller artifact.
|
|
13
|
+
- For clear non-trivial work with no sufficient ready owner, an explicit managed request authorizes only in-scope RSP planning artifacts unless the user requests no edits. Under automatic activation, route to Shape only when the current request or nearer authority independently permits those artifacts; configuration alone never does. Then re-read status/readiness and re-evaluate without another authorization round.
|
|
14
|
+
- If repository evidence leaves a material product, acceptance, public-interface, scope, mutation-authority, external-action, or human choice, Shape returns the single highest-impact owner decision and creates no implementation or controller artifact.
|
|
15
|
+
|
|
16
|
+
A prior direct report, tiny, or small route is not sticky. Before later-turn mutation, rederive from the now-authorized objective and prospective work. Material expansion into cross-module implementation, multiple acceptance surfaces, repeated production-path correction, real-host validation, or lifecycle delivery requires Core to establish or reuse the smallest sufficient WorkRef and rerun this preflight plus fresh Manage qualification before mutation. Unchanged tiny/small follow-ups remain direct; elapsed time and message count alone never trigger escalation.
|
|
17
|
+
|
|
18
|
+
PREFLIGHT is complete only when one selected ready Change or shallow Group owns the requested outcome and no material decision remains.
|
|
19
|
+
|
|
20
|
+
## QUALIFY — select or decline Manage
|
|
21
|
+
|
|
22
|
+
Select `rsp-manage` only for one selected ready Change or shallow Group that qualifies through at least one independent path: genuinely independent slices, prospectively long authorized continuation, or interruption recovery. A Change with long/recovery work does not also need independent or parallelizable slices. Derive “long” before dispatch from the authorized objective and its expected phases; elapsed wall-clock minutes are never qualification evidence. Small coupled one-step work and worker-only work remain ineligible and return to ordinary Core or Discipline action. Automatic routing is policy-selected, bounded by the requested goal, and not inferred from readiness alone.
|
|
23
|
+
|
|
24
|
+
## CONTINUE — rederive from evidence
|
|
25
|
+
|
|
26
|
+
After accepted managed progress, re-read `rsp status --json` and apply PREFLIGHT again.
|
|
27
|
+
|
|
28
|
+
- Continue a clear in-scope ready successor.
|
|
29
|
+
- When ownership is clearly missing, Manage suspends dispatch and returns discovery evidence to Core. Shape keeps a cohesive correction in its Change, gives one independently verifiable and archivable result one Change, or gives at least two such results sharing one goal one shallow Group. Core then requalifies without another authorization round.
|
|
30
|
+
- Stop naturally only when neither a ready successor nor clearly missing ownership remains.
|
|
31
|
+
- Stop earlier for a material behavior, acceptance, public-interface, scope, mutation-authority, external-action, or human decision.
|
|
32
|
+
|
|
33
|
+
Never persist the goal envelope, WorkSet, waves, discovery classification, or transition chronology.
|
|
34
|
+
|
|
35
|
+
## CONVERGE — bound review correction
|
|
36
|
+
|
|
37
|
+
After a managed fixed-scope re-review, correlate the report, selected Change, original authority, fresh verification, and transient convergence count. Return an in-scope `accepted` remaining or new Finding as `correction-needed` to another bounded Resolve Findings pass without asking the user to continue. Resolve Findings never self-loops.
|
|
38
|
+
|
|
39
|
+
Allow at most three Resolve Findings passes per Change and stop earlier when the same Finding remains after two completed corrections. Stop for `needs-clarification`, material behavior/interface/scope or authority change, verification-budget expansion, an additional real-host/provider/network run outside existing authority, failed or unavailable decisive verification, or repeated non-convergence. Never persist the convergence count or correction chronology.
|
|
40
|
+
|
|
41
|
+
## CLOSE — apply the bounded preset
|
|
42
|
+
|
|
43
|
+
Enter CLOSE only when Core selected and QUALIFY accepted Manage for the current continuation. If Manage was declined, unavailable, or unselected, every `manage.closeout` preset is dormant: ordinary Core may report readiness and the explicit next lifecycle or Git action, but configuration executes neither archive nor commit. Do not infer the current-continuation gate from readiness, an earlier managed run, or project policy alone; keep the selection and qualification result transient.
|
|
44
|
+
|
|
45
|
+
After that gate passes, use effective `manage.closeout` as an automatic grant ceiling, narrowed by nearer restrictions and host enforcement. `manual` grants neither automatic archive nor commit. `lifecycle` grants lifecycle closeout after Core durable review but no Git action. `local` adds separately justified recovery checkpoints and the deterministic terminal route below. Explicit current-turn authority may allow a named local action that the preset does not automate; denial still wins.
|
|
46
|
+
|
|
47
|
+
When lifecycle closeout is granted, archive a Change after Core durable review. A shallow Group independently reviews and archives each child, re-derives completion, then runs `rsp group close <group>` only after every child and the Group gate pass. Inspect the complete lifecycle diff after each mutation, including terminal owners.
|
|
48
|
+
|
|
49
|
+
Decide Git delivery separately. Under `local` or explicit commit authority, accepted downstream work may justify an exact-path recovery checkpoint unless commits are reserved or denied. Terminal small work defaults to no commit. After lifecycle closeout, a qualified `local` terminal non-small Change or Group with a derived owner, allowed paths, fresh decisive verification, one clean exact boundary, and no nearer denial must be handed exactly once to `rsp-commit`; do not require the user to repeat `commit`. An ambiguous, mixed, stale, or denied boundary stops without staging. Commit owns structured message construction, one local commit, and post-commit observation; when unavailable, return the equivalent bounded Core manual action against the same owner.
|
|
50
|
+
|
|
51
|
+
Push requires an explicit user mention plus an unambiguous remote, branch, and milestone. Never force-push; preserve local commits on failure. Managed authority never includes publication, deployment, approval, or human acceptance.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Setup and repair
|
|
2
|
+
|
|
3
|
+
Load this reference only before initializing, auditing, migrating, or repairing RSP-managed state.
|
|
4
|
+
|
|
5
|
+
1. Initialize with `npx -y @oevery/rsp init [--agents-mode managed|print] [--with-project-setup]`.
|
|
6
|
+
2. `--with-project-setup` creates and focuses `changes/project-setup.md`. Without it, create that Change only when explicit bootstrap tracking is still needed.
|
|
7
|
+
3. Put project-wide boundaries in `.rsp/specs/design.md`, use generated local `00-index.md` files only for direct-child navigation, put cohesive reusable facts in the smallest domain Spec, and keep stable operating instructions in the nearest project-owned `AGENTS.md` outside its managed block.
|
|
8
|
+
4. Diagnose with `npx -y @oevery/rsp doctor`. Apply only deterministic repairs with `doctor --fix` or `rsp update`; `fixed` entries are real filesystem mutations, while an empty list means nothing changed.
|
|
9
|
+
5. Do not use repair commands to decide stale focus, semantic durable updates, or archive readiness.
|
|
10
|
+
|
|
11
|
+
For manual audit, require `.rsp/`, managed roots, and nested Spec parents to be real directories. Require the project `AGENTS.md`, managed markers, fallback/config files, generated local `00-index.md` files, and placeholders to be regular files. Confirm the managed block, root and populated-directory Specs indexes, `specs/design.md`, configured Decision Record exclusion, valid group briefs and direct children, supported path depth, and focus markers matching executable Changes. Symlinks, special files, incomplete inspection, unrecognized reserved indexes, and file/directory identity collisions fail closed.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rsp-commit
|
|
3
|
+
description: Create one authorized, exact-scope local commit for an RSP-owned Change, Group wave, or confirmed release boundary with a repository-consistent structured message.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: oevery
|
|
7
|
+
version: "2026.07.26.1"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# RSP Commit
|
|
11
|
+
|
|
12
|
+
Create one reviewable local commit after Core or qualified Manage has already derived the owner, allowed paths, decisive verification, lifecycle state, and commit authority. Skill availability grants none of those facts. Accept only one Change, one integration-coupled Group wave, one Group closeout, or one confirmed release commit boundary.
|
|
13
|
+
|
|
14
|
+
## Audit the envelope
|
|
15
|
+
|
|
16
|
+
Read nearest project authority, the relevant open Change, Group Brief and children, archive, or confirmed release owner, then inspect `git status`, staged, unstaged, and untracked paths, the cached diff, and recent non-merge commit messages. Recheck the supplied verification and lifecycle facts against current repository state.
|
|
17
|
+
|
|
18
|
+
Stop without staging when the owner, allowed paths, commit authority, verification, lifecycle state, or logical boundary is missing, ambiguous, stale, or conflicts with unrelated work. Stop when an allowed path contains mixed owned and unrelated changes that cannot be staged without guessing. Never infer archive, Group closeout, commit, push, tag, publication, approval, amend, rebase, force-push, or history-rewrite authority.
|
|
19
|
+
|
|
20
|
+
## Derive the message
|
|
21
|
+
|
|
22
|
+
Choose subject language from explicit current instruction, then nearest repository authority, then the clear style of recent non-merge commits. Response language, RSP artifact language, and preferences remembered from another repository do not select it. When recent history is materially mixed and no nearer rule resolves it, return the single language decision to its owner.
|
|
23
|
+
|
|
24
|
+
Use the repository's established Conventional Commit form when present. Derive type and scope from the owned outcome and repository history, not from the conversation. Keep the subject concise and imperative or otherwise repository-consistent.
|
|
25
|
+
|
|
26
|
+
A tiny or mechanical boundary may be subject-only when that subject fully explains it. For a non-trivial Change, integration wave, Group closeout, or release commit, add two to four concise bullets covering:
|
|
27
|
+
|
|
28
|
+
- the observable outcome;
|
|
29
|
+
- material behavior or compatibility boundaries; and
|
|
30
|
+
- an important omission or risk when one affects review.
|
|
31
|
+
|
|
32
|
+
Do not copy file lists, command transcripts, routine verification output, execution chronology, or the full Change/archive. Add only truthful trailers: one `RSP-WorkRef:` per included WorkRef, `RSP-Group:` when the Group is the commit owner, authoritative external references already owned by the work, and `BREAKING CHANGE:` only for an actual breaking change. Never invent an issue, co-author, sign-off, breaking change, or AI attribution.
|
|
33
|
+
|
|
34
|
+
## Commit the exact boundary
|
|
35
|
+
|
|
36
|
+
Stage only the explicit allowed paths. Re-read `git status --short`, inspect the complete cached path list and cached diff, and confirm they represent exactly one owner boundary with no sensitive material. If the cached boundary is wrong, stop and leave unrelated work untouched; do not repair it by broad staging, destructive reset, or history rewrite.
|
|
37
|
+
|
|
38
|
+
Create one local commit with the prepared subject, optional body, and trailers. Do not push, tag, publish, amend, rebase, or force-push. Afterward observe `HEAD`, the complete committed message, committed paths, remaining worktree state, and remote refs when a remote-safety assertion is required. A commit command succeeding is insufficient if the observed message or paths differ from the prepared boundary.
|
|
39
|
+
|
|
40
|
+
## Return the receipt
|
|
41
|
+
|
|
42
|
+
Return the commit SHA, owner and included WorkRefs, committed paths, parsed subject/body/trailers, remaining worktree paths, and explicit omissions. Report a stop before staging, commit failure, or post-commit mismatch truthfully; never silently amend or create a second commit to repair the first.
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rsp-design
|
|
3
|
-
description: Resolve one material domain-model, module/seam, or evidence-seeking design question for an explicit or
|
|
3
|
+
description: Resolve one material domain-model, module/seam, or evidence-seeking design question before a Change or for an explicit or focused RSP Change without implementing production behavior or writing durable project truth.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
6
|
author: oevery
|
|
7
|
-
version: "2026.07.
|
|
7
|
+
version: "2026.07.27.1"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# RSP Design
|
|
11
11
|
|
|
12
|
-
Resolve one design question
|
|
12
|
+
Resolve one design question. Do not implement it.
|
|
13
13
|
|
|
14
14
|
## Establish the question and authority
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
State one explicit bounded design question. Read project authority and the smallest relevant Specs, decisions, code, tests, callers, and runtime evidence.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Choose one ownership mode:
|
|
19
|
+
|
|
20
|
+
- **Pre-Change Design:** use when no Change is selected and the request already contains one bounded design question. When this Skill is installed, Core selects it instead of manually emulating the discipline; the manual fallback is only for an unavailable Skill. Remain report-only and return to the user. If outcome, scope, non-goals, acceptance, or decomposition remains materially unclear, return the request to Shape instead of creating an implicit planning owner. Do not invent a WorkRef, continuation, or artifact.
|
|
21
|
+
- **Tracked Design:** require an explicit WorkRef or exactly one unambiguous focus marker. Read the selected Change and sibling Group Brief, then return the result to the same WorkRef.
|
|
22
|
+
|
|
23
|
+
Stop on an ambiguous question, evidence boundary, owner intent, authorized-write owner, or required mutation authority. Never invent product intent.
|
|
19
24
|
|
|
20
25
|
## Load one design mode
|
|
21
26
|
|
|
@@ -25,11 +30,11 @@ Load only the reference matching the question:
|
|
|
25
30
|
- Read [module and seam design](references/module-seams.md) for interface obligations, caller complexity, adapters, test surfaces, or seam placement.
|
|
26
31
|
- Read [reversible exploration](references/reversible-exploration.md) only when a material conclusion depends on unobserved behavior and a cheap safe probe can provide it.
|
|
27
32
|
|
|
28
|
-
|
|
33
|
+
Separate evidence-driven conclusions from owner choices. Compare one credible alternative when alternatives exist; do not manufacture options when evidence or authority forces the conclusion.
|
|
29
34
|
|
|
30
35
|
## Preserve artifact ownership
|
|
31
36
|
|
|
32
|
-
Default to report-only.
|
|
37
|
+
Default to report-only. Pre-Change Design never mutates artifacts. In Tracked Design, when the user or project explicitly authorizes updating the selected Change, write settled planned design only under its `Design` section. Do not write Specs, Decision Records, `CONTEXT.md`, `AGENTS.md`, production code, lifecycle state, focus, archives, or Git state. Identify possible durable current facts or rationale only as artifact-routing candidates for the Core durable review.
|
|
33
38
|
|
|
34
39
|
An exploration additionally requires explicit disposable-code authority and the cleanup contract in its reference. A design request alone grants neither production mutation nor external side-effect authority.
|
|
35
40
|
|
|
@@ -37,7 +42,7 @@ An exploration additionally requires explicit disposable-code authority and the
|
|
|
37
42
|
|
|
38
43
|
Follow Core's response-versus-artifact language boundary: use the requested language for natural prose, while any authorized `Design` update follows the selected Change's language and canonical headings. Do not use a technical token alone as a response label; retain it only in parentheses after a localized label. Return these semantic fields:
|
|
39
44
|
|
|
40
|
-
- selected WorkRef and exact question;
|
|
45
|
+
- ownership mode, selected WorkRef when tracked, and exact question;
|
|
41
46
|
- inspected evidence and material gaps;
|
|
42
47
|
- recommendation and evidence-driven reasoning;
|
|
43
48
|
- credible alternatives and tradeoffs;
|
|
@@ -45,4 +50,4 @@ Follow Core's response-versus-artifact language boundary: use the requested lang
|
|
|
45
50
|
- artifact routing and any authorized Change update;
|
|
46
51
|
- smallest next action.
|
|
47
52
|
|
|
48
|
-
|
|
53
|
+
Pre-Change results return to the user; name Shape as the smallest next action only when accepted work needs an executable owner. Tracked results return to Shape or the user against the same WorkRef. Do not create parallel state, recursively invoke another Skill, implement, review, archive, stage, commit, push, publish, deploy, or approve.
|