@ericrisco/rsc 1.0.6 → 1.0.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/analyze/SKILL.md +22 -0
- package/skills/clarify/SKILL.md +22 -0
- package/skills/constitution/SKILL.md +22 -0
- package/skills/plan/SKILL.md +22 -0
- package/skills/review/SKILL.md +22 -0
package/manifest.json
CHANGED
package/package.json
CHANGED
package/skills/analyze/SKILL.md
CHANGED
|
@@ -101,6 +101,28 @@ Render it at the dial's verbosity. Do not log a decision to `decisions.md` — a
|
|
|
101
101
|
| Siding with the plan when it contradicts the constitution | The constitution wins by definition — flag CRITICAL. If the principle itself is wrong, that is a `constitution` change the user makes, not a quiet override here. |
|
|
102
102
|
| Guessing what a vague requirement meant | Guessing defeats the gate. Mark AMBIGUOUS and route to `clarify`; do not encode your guess. |
|
|
103
103
|
|
|
104
|
+
## Result envelope
|
|
105
|
+
|
|
106
|
+
End with the parseable block every SDD phase shares, so the dispatcher can chain without
|
|
107
|
+
interpreting prose (contract: `../sdd/SKILL.md`):
|
|
108
|
+
|
|
109
|
+
```json result-envelope
|
|
110
|
+
{
|
|
111
|
+
"status": "complete|blocked|failed",
|
|
112
|
+
"executive_summary": "Cross-read of spec/plan/tasks against the constitution; findings ranked.",
|
|
113
|
+
"artifact": "02-DOCS/wiki/sdd/analysis/<slug>.md",
|
|
114
|
+
"next_recommended": "implement",
|
|
115
|
+
"risk": "low|medium|high",
|
|
116
|
+
"skill_resolution": {
|
|
117
|
+
"used": ["analyze"],
|
|
118
|
+
"missing": [],
|
|
119
|
+
"fallback": [],
|
|
120
|
+
"compact_rules": ["Read adversarially across artifacts, not inside one.", "A finding without a location is an opinion."]
|
|
121
|
+
},
|
|
122
|
+
"evidence": ["report path exists", "blockers listed with artifact + location", "constitution conflicts named"]
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
104
126
|
## Next in the chain
|
|
105
127
|
|
|
106
128
|
On `GATE: PASS` (or once the user consciously accepts the remaining MEDIUM/LOW findings), proceed to **`implement`** — execute the tasks with TDD discipline, delegating concrete test tooling to the relevant stack skill (`fastapi`, `nextjs`, `go`, `flutter`, `postgresdb`). On `GATE: BLOCKED`, route each CRITICAL/HIGH finding to its owning phase (`clarify`, `plan`, `tasks`, or `constitution`), let the user resolve, then re-run `analyze`. The gate only opens once.
|
package/skills/clarify/SKILL.md
CHANGED
|
@@ -113,6 +113,28 @@ After baking back, the spec line becomes a bounded, testable behavior with accep
|
|
|
113
113
|
|
|
114
114
|
The gate is passed when the spec, constitution and profile were all read (settled questions cited, not re-asked); all ten taxonomy categories were considered; only the build-changing gaps were put to the user, as dial-sized decisions with recommendations; every answer is baked into the spec body with observable acceptance criteria, logged under `## Clarifications` and bounded under `## Out of scope`; and the final re-read opened no new gap.
|
|
115
115
|
|
|
116
|
+
## Result envelope
|
|
117
|
+
|
|
118
|
+
End with the parseable block every SDD phase shares, so the dispatcher can chain without
|
|
119
|
+
interpreting prose (contract: `../sdd/SKILL.md`):
|
|
120
|
+
|
|
121
|
+
```json result-envelope
|
|
122
|
+
{
|
|
123
|
+
"status": "complete|blocked|failed",
|
|
124
|
+
"executive_summary": "Open points resolved; the spec is de-risked and ready to plan against.",
|
|
125
|
+
"artifact": "02-DOCS/wiki/sdd/specs/<slug>.md",
|
|
126
|
+
"next_recommended": "plan",
|
|
127
|
+
"risk": "low|medium|high",
|
|
128
|
+
"skill_resolution": {
|
|
129
|
+
"used": ["clarify"],
|
|
130
|
+
"missing": [],
|
|
131
|
+
"fallback": [],
|
|
132
|
+
"compact_rules": ["Ask only what changes the spec.", "An unanswered question is recorded, never invented."]
|
|
133
|
+
},
|
|
134
|
+
"evidence": ["answers folded back into the spec", "remaining open points listed with their owner"]
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
116
138
|
## Next in the chain
|
|
117
139
|
|
|
118
140
|
Hand off to **`plan`** — turn the now-sharp spec into a technical implementation plan (architecture, interfaces, data flow, testing strategy, risks), deferring stack specifics to the relevant stack skill. The chain continues: clarify → **plan** → tasks → analyze → implement → verify → review → ship. `debug` is callable any time if what you are "clarifying" turns out to be a runtime fault, not a spec gap.
|
|
@@ -132,6 +132,28 @@ This skill's `02-DOCS` record is the constitution at `02-DOCS/wiki/sdd/constitut
|
|
|
132
132
|
|
|
133
133
|
Every later rsc-sdd phase reads this file before it works. The harness maintains and improves the article over the life of the project; this skill is the place that ratifies and amends it.
|
|
134
134
|
|
|
135
|
+
## Result envelope
|
|
136
|
+
|
|
137
|
+
End with the parseable block every SDD phase shares, so the dispatcher can chain without
|
|
138
|
+
interpreting prose (contract: `../sdd/SKILL.md`):
|
|
139
|
+
|
|
140
|
+
```json result-envelope
|
|
141
|
+
{
|
|
142
|
+
"status": "complete|blocked|failed",
|
|
143
|
+
"executive_summary": "Constitution written with N numbered, testable rules the later phases inherit.",
|
|
144
|
+
"artifact": "02-DOCS/wiki/sdd/constitution.md",
|
|
145
|
+
"next_recommended": "specify",
|
|
146
|
+
"risk": "low|medium|high",
|
|
147
|
+
"skill_resolution": {
|
|
148
|
+
"used": ["constitution"],
|
|
149
|
+
"missing": [],
|
|
150
|
+
"fallback": [],
|
|
151
|
+
"compact_rules": ["Principles are inherited constraints, not choices to re-make.", "Every rule is testable or it is a preference."]
|
|
152
|
+
},
|
|
153
|
+
"evidence": ["constitution path exists", "rules numbered and testable", "decisions log appended"]
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
135
157
|
## Next in the chain
|
|
136
158
|
|
|
137
159
|
The constitution is the guardrail; now describe what to build. Hand off to **`../specify/SKILL.md`** — turn a fuzzy intent into a spec (what & why, no implementation), grounded in these principles. The full chain: **constitution → specify → clarify → plan → tasks → analyze → implement → verify → review → ship** (with `debug`, `worktrees`, `parallel` callable on demand). The dispatcher is `../sdd/SKILL.md`.
|
package/skills/plan/SKILL.md
CHANGED
|
@@ -141,6 +141,28 @@ regardless. (`implement` re-checks this as a hard gate before its first commit.)
|
|
|
141
141
|
- Concrete framework/ORM/test-runner mechanics → the stack skill (`../fastapi/SKILL.md`,
|
|
142
142
|
`../nextjs/SKILL.md`, `../go/SKILL.md`, `../flutter/SKILL.md`, `../postgresdb/SKILL.md`).
|
|
143
143
|
|
|
144
|
+
## Result envelope
|
|
145
|
+
|
|
146
|
+
End with the parseable block every SDD phase shares, so the dispatcher can chain without
|
|
147
|
+
interpreting prose (contract: `../sdd/SKILL.md`):
|
|
148
|
+
|
|
149
|
+
```json result-envelope
|
|
150
|
+
{
|
|
151
|
+
"status": "complete|blocked|failed",
|
|
152
|
+
"executive_summary": "Technical plan derived from the clarified spec, with the isolation decision made.",
|
|
153
|
+
"artifact": "02-DOCS/wiki/sdd/plans/<slug>.md",
|
|
154
|
+
"next_recommended": "tasks",
|
|
155
|
+
"risk": "low|medium|high",
|
|
156
|
+
"skill_resolution": {
|
|
157
|
+
"used": ["plan"],
|
|
158
|
+
"missing": [],
|
|
159
|
+
"fallback": [],
|
|
160
|
+
"compact_rules": ["The plan answers HOW; the spec owns WHAT.", "Name the isolation choice before the build starts."]
|
|
161
|
+
},
|
|
162
|
+
"evidence": ["plan path exists", "each spec acceptance criterion has an approach", "risks and rollback stated"]
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
144
166
|
## Next in the chain
|
|
145
167
|
|
|
146
168
|
Plan written, indexed, decisions logged → propose isolation (above), then hand off to
|
package/skills/review/SKILL.md
CHANGED
|
@@ -237,6 +237,28 @@ Review is mostly a conversation, but two artifacts persist into the harness wiki
|
|
|
237
237
|
|
|
238
238
|
Index both in `02-DOCS/wiki/index.md` (the Knowledge map; root `CLAUDE.md` keeps only a short pointer) under the `sdd/` topic — the harness owns that map; this skill just keeps its rows honest.
|
|
239
239
|
|
|
240
|
+
## Result envelope
|
|
241
|
+
|
|
242
|
+
End with the parseable block every SDD phase shares, so the dispatcher can chain without
|
|
243
|
+
interpreting prose (contract: `../sdd/SKILL.md`):
|
|
244
|
+
|
|
245
|
+
```json result-envelope
|
|
246
|
+
{
|
|
247
|
+
"status": "complete|blocked|failed",
|
|
248
|
+
"executive_summary": "Adversarial review against spec/plan/constitution; verdict and blocking findings.",
|
|
249
|
+
"artifact": "02-DOCS/wiki/sdd/reviews/<slug>.md",
|
|
250
|
+
"next_recommended": "ship",
|
|
251
|
+
"risk": "low|medium|high",
|
|
252
|
+
"skill_resolution": {
|
|
253
|
+
"used": ["review"],
|
|
254
|
+
"missing": [],
|
|
255
|
+
"fallback": [],
|
|
256
|
+
"compact_rules": ["Rank or it is noise: blocker / should-fix / nit.", "A finding without a repro is a question, not a defect."]
|
|
257
|
+
},
|
|
258
|
+
"evidence": ["verdict stated (APPROVE | APPROVE WITH NITS | CHANGES REQUESTED)", "each blocker carries location + repro + fix"]
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
240
262
|
## Next in the chain
|
|
241
263
|
|
|
242
264
|
When the diff carries an **APPROVE** / **APPROVE WITH NITS** verdict and every blocker is resolved, hand off to **ship** — close the branch via PR / merge / cleanup, with **git authorship as Eric, never Claude**. If the review came back **CHANGES REQUESTED**, the loop goes back to **implement** (fix), then **verify** (re-prove green), then back here for re-review. Don't ship a diff that hasn't earned its verdict.
|