@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 CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.6",
2
+ "version": "1.0.7",
3
3
  "counts": {
4
4
  "skills": 258
5
5
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ericrisco/rsc",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "Eric Risco's agent-skills catalog as a granular, self-recommending CLI installer.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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.
@@ -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`.
@@ -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
@@ -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.