@ericrisco/rsc 0.1.6 → 0.1.7
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/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/implement/SKILL.md +12 -6
- package/skills/sdd/SKILL.md +2 -0
- package/skills/specify/SKILL.md +9 -0
package/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -23,12 +23,18 @@ into them rather than reinventing them.
|
|
|
23
23
|
## Before you write a line of code
|
|
24
24
|
|
|
25
25
|
Run this short gate. Skipping it is the most common way an implement session goes sideways.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
**This gate is a hard refuse, not a checklist to feel good about:** if it fails you stop and route
|
|
27
|
+
back — you do not write feature code anyway.
|
|
28
|
+
|
|
29
|
+
1. **The spec + plan must exist AND be approved.** Open the spec (`02-DOCS/wiki/sdd/specs/<slug>.md`),
|
|
30
|
+
the plan (`02-DOCS/wiki/sdd/plans/<slug>.md`, which holds the task list), and the constitution
|
|
31
|
+
(`02-DOCS/wiki/sdd/constitution.md`). If any is missing, **you are not allowed to implement** —
|
|
32
|
+
route back: no spec → `specify`; no plan → `plan`; no task list inside the plan → `tasks`;
|
|
33
|
+
unresolved `analyze` findings → resolve them first. If a spec/plan exists but the user has not
|
|
34
|
+
actually seen and **approved** it, get that approval first. Never "start coding to discover the
|
|
35
|
+
plan as you go", and never accept "just build it, skip the spec" on a non-trivial feature — name
|
|
36
|
+
the gate in one friendly line and route to `specify`. (Only a true one-line, low-risk change
|
|
37
|
+
earns a skip, and you say so.)
|
|
32
38
|
2. **Read the SDD runtime config.** Open `02-DOCS/wiki/sdd/config.yaml`. If it is missing on
|
|
33
39
|
non-trivial work, stop and route to `sdd-init`. Use `testing.strict_tdd`,
|
|
34
40
|
`testing.commands.apply`, `testing.commands.verify`, `sdd.review_budget` and
|
package/skills/sdd/SKILL.md
CHANGED
|
@@ -70,6 +70,8 @@ constitution ─(once per project)─┐
|
|
|
70
70
|
|
|
71
71
|
When a request lands, do not start typing code. Place it on the map first, then invoke the phase skill that owns it.
|
|
72
72
|
|
|
73
|
+
> **The new-feature gate (hard).** The moment the user is thinking about a new feature or change — "add…", "build…", "it should also…", "quiero añadir…" — it goes to `specify` first, *even if a stack skill (nextjs/fastapi/flutter/react…) also fired and could just build it*. **No feature code is written — by any skill — until a spec AND a plan exist and the user has approved them.** A stack skill about to build an unspec'd, non-trivial feature must stop and route here. The only exception is a genuinely one-line, low-risk change; name it and skip.
|
|
74
|
+
|
|
73
75
|
1. **No `02-DOCS/wiki/sdd/config.yaml` and this is non-trivial?** → `sdd-init`.
|
|
74
76
|
2. **No constitution yet AND this project will grow?** → `constitution` once, then come back to the chain.
|
|
75
77
|
3. **Ambiguous / architectural / risky change before spec?** → optional proposal artifact via `specify`.
|
package/skills/specify/SKILL.md
CHANGED
|
@@ -13,6 +13,15 @@ This is the **specify** phase of the rsc-sdd chain: `constitution` → **`specif
|
|
|
13
13
|
|
|
14
14
|
A spec is a contract about behaviour and outcomes, readable by a non-technical stakeholder and precise enough that a `plan` can be derived from it. The output is one file: `02-DOCS/wiki/sdd/specs/<slug>.md`, indexed in the root `CLAUDE.md` Knowledge map.
|
|
15
15
|
|
|
16
|
+
## Detect the moment — and hold the gate
|
|
17
|
+
|
|
18
|
+
The instant the user is **thinking about a new feature or change** — "I want to add…", "can we build…", "it should also…", "wouldn't it be nice if…", "necesito que haga…", "quiero añadir…" — this phase owns it, *even if a stack skill (nextjs/fastapi/flutter…) also fired and is itching to build it*. Catch it here first.
|
|
19
|
+
|
|
20
|
+
**The hard gate (non-negotiable for any non-trivial feature):**
|
|
21
|
+
> No feature code gets written until (1) this spec exists and the user has **approved** it, and (2) `plan` has produced a technical plan + task list. If the user tries to jump straight to "just build it", do not. Name the gate in one friendly line, capture the spec, and walk the chain. The only bypass is a genuinely one-line, low-risk change (typo/copy/config) — say so out loud and skip.
|
|
22
|
+
|
|
23
|
+
You are not slowing them down; you are making the intent reviewable *before* code exists, which is cheaper than discovering the misunderstanding in a PR. End every spec by handing to `clarify`/`plan` — never to `implement`.
|
|
24
|
+
|
|
16
25
|
## The one rule that defines this skill
|
|
17
26
|
|
|
18
27
|
**No implementation leaks.** The moment the spec names a framework, a table schema, a library, an endpoint shape, a file path, or an algorithm, it has stopped being a spec. Those decisions belong to `plan` and the stack skills. Specify describes the *observable behaviour and the reason for it*; the system that delivers it is deliberately left open.
|