@ericrisco/rsc 0.1.7 → 0.1.9
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 +5 -5
- package/package.json +1 -1
- package/skills/author-skill/SKILL.md +1 -1
- package/skills/author-skill/references/rsc-conventions.md +2 -2
- package/skills/harness/SKILL.md +12 -0
- package/skills/implement/SKILL.md +1 -1
- package/skills/init/SKILL.md +12 -10
- package/skills/init/evals/cases.yaml +1 -1
- package/skills/init/references/recommend-skills.md +15 -15
- package/skills/orient/evals/cases.yaml +1 -1
- package/skills/sdd-init/SKILL.md +15 -2
- package/skills/sdd-init/evals/cases.yaml +1 -1
- package/skills/specify/SKILL.md +25 -14
- package/skills/suggest/SKILL.md +5 -5
- package/skills/suggest/evals/README.md +2 -2
- package/skills/suggest/evals/cases.yaml +4 -4
package/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.
|
|
2
|
+
"version": "0.1.9",
|
|
3
3
|
"counts": {
|
|
4
4
|
"skills": 231
|
|
5
5
|
},
|
|
@@ -279,7 +279,7 @@
|
|
|
279
279
|
},
|
|
280
280
|
{
|
|
281
281
|
"id": "author-skill",
|
|
282
|
-
"description": "Use when authoring a NEW skill or editing an existing one for the rsc catalog — writing or fixing a SKILL.md, crafting a trigger-rich third-person description that fires on the right prompts, deciding what goes in references/ vs the body, writing evals/cases.yaml + evals/README.md, or wiring a skill into the catalog (tags, recommends, manifest). Triggers: 'write a skill', 'author a skill', 'create a new skill', 'escribe una skill', 'haz una skill nueva', 'edit this skill', 'improve this skill', 'my skill never triggers', 'my skill always fires', 'fix the description', 'the frontmatter is invalid', 'write evals for this skill', 'add this skill to the catalog', 'audit this skill against the rubric', 'progressive disclosure', 'SKILL.md too long'. Knows the rsc conventions: hybrid layout, tags/recommends frontmatter, manifest.json, the npx rsc CLI, the Knowledge map. NOT building runtime features (that is the SDD chain) and NOT general docs.",
|
|
282
|
+
"description": "Use when authoring a NEW skill or editing an existing one for the rsc catalog — writing or fixing a SKILL.md, crafting a trigger-rich third-person description that fires on the right prompts, deciding what goes in references/ vs the body, writing evals/cases.yaml + evals/README.md, or wiring a skill into the catalog (tags, recommends, manifest). Triggers: 'write a skill', 'author a skill', 'create a new skill', 'escribe una skill', 'haz una skill nueva', 'edit this skill', 'improve this skill', 'my skill never triggers', 'my skill always fires', 'fix the description', 'the frontmatter is invalid', 'write evals for this skill', 'add this skill to the catalog', 'audit this skill against the rubric', 'progressive disclosure', 'SKILL.md too long'. Knows the rsc conventions: hybrid layout, tags/recommends frontmatter, manifest.json, the npx @ericrisco/rsc CLI, the Knowledge map. NOT building runtime features (that is the SDD chain) and NOT general docs.",
|
|
283
283
|
"tags": [
|
|
284
284
|
"skill",
|
|
285
285
|
"authoring",
|
|
@@ -2017,7 +2017,7 @@
|
|
|
2017
2017
|
},
|
|
2018
2018
|
{
|
|
2019
2019
|
"id": "init",
|
|
2020
|
-
"description": "Use when starting from nothing or pointing the rsc-skills harness at an existing project — the front door / bootstrapper. It gauges the user's technical level FIRST (non-technical by default), sets an explanation/accompaniment dial, then discovers what they want to build OR govern (any software stack, OR a non-code harness: running a company/ops, research, personal knowledge, content). It detects greenfield vs brownfield, profiles the user into 02-DOCS, RECOMMENDS which rsc skills to install (printing the exact `npx rsc add` commands), and hands off to the harness skill to scaffold 01-TOOLS + 02-DOCS. Triggers: 'empezar de cero', 'no sé por dónde empezar', 'start a new project', 'bootstrap', 'set up the harness', 'monta el proyecto', 'quiero montar una empresa/ops/wiki con esto', 'arranca', 'init'. NOT the scaffolder itself (that's the harness skill) and NOT a specific stack skill.",
|
|
2020
|
+
"description": "Use when starting from nothing or pointing the rsc-skills harness at an existing project — the front door / bootstrapper. It gauges the user's technical level FIRST (non-technical by default), sets an explanation/accompaniment dial, then discovers what they want to build OR govern (any software stack, OR a non-code harness: running a company/ops, research, personal knowledge, content). It detects greenfield vs brownfield, profiles the user into 02-DOCS, RECOMMENDS which rsc skills to install (printing the exact `npx @ericrisco/rsc add` commands), and hands off to the harness skill to scaffold 01-TOOLS + 02-DOCS. Triggers: 'empezar de cero', 'no sé por dónde empezar', 'start a new project', 'bootstrap', 'set up the harness', 'monta el proyecto', 'quiero montar una empresa/ops/wiki con esto', 'arranca', 'init'. NOT the scaffolder itself (that's the harness skill) and NOT a specific stack skill.",
|
|
2021
2021
|
"tags": [
|
|
2022
2022
|
"init",
|
|
2023
2023
|
"bootstrap",
|
|
@@ -3971,7 +3971,7 @@
|
|
|
3971
3971
|
},
|
|
3972
3972
|
{
|
|
3973
3973
|
"id": "specify",
|
|
3974
|
-
"description": "Use when a feature, change, or product idea is still fuzzy and needs
|
|
3974
|
+
"description": "Use when a feature, change, or product idea is still fuzzy and needs brainstorming into an APPROVED spec BEFORE any planning or code — the brainstorming front door of SDD. Turns a one-line intent into a WHAT/WHY spec (problem, goals, users, scope, behaviour, acceptance) with zero implementation detail, via one-question-at-a-time dialogue, 2-3 proposed approaches with a recommendation, and a design the user approves before anything gets built. Triggers: 'write a spec for…', 'spec this out', 'brainstorm this feature', 'especifica esta feature', 'I want to add X', 'tengo una idea', 'se me ha ocurrido', '¿y si…?', 'wouldn't it be nice if…', 'let's think this through', 'what should this feature do', 'draft a PRD', or any moment someone jumps to HOW before WHAT is agreed. NOT the technical plan (that's `plan`), NOT the de-risking ambiguity sweep (that's `clarify`), NOT project-wide principles (that's `constitution`).",
|
|
3975
3975
|
"tags": [
|
|
3976
3976
|
"sdd",
|
|
3977
3977
|
"spec",
|
|
@@ -4112,7 +4112,7 @@
|
|
|
4112
4112
|
},
|
|
4113
4113
|
{
|
|
4114
4114
|
"id": "suggest",
|
|
4115
|
-
"description": "Always-on. Use whenever the current task would clearly benefit from an rsc skill that is not yet installed — detect the gap, name the skill, and (with a one-word confirm) install it via `npx rsc add <id>`. Triggers on any task that maps to a known rsc capability the session lacks: building a web/app/API, a database, security, deployment, agents, content, or connecting/documenting a company.",
|
|
4115
|
+
"description": "Always-on. Use whenever the current task would clearly benefit from an rsc skill that is not yet installed — detect the gap, name the skill, and (with a one-word confirm) install it via `npx @ericrisco/rsc add <id>`. Triggers on any task that maps to a known rsc capability the session lacks: building a web/app/API, a database, security, deployment, agents, content, or connecting/documenting a company.",
|
|
4116
4116
|
"tags": [
|
|
4117
4117
|
"suggest",
|
|
4118
4118
|
"detect",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: author-skill
|
|
3
|
-
description: "Use when authoring a NEW skill or editing an existing one for the rsc catalog — writing or fixing a SKILL.md, crafting a trigger-rich third-person description that fires on the right prompts, deciding what goes in references/ vs the body, writing evals/cases.yaml + evals/README.md, or wiring a skill into the catalog (tags, recommends, manifest). Triggers: 'write a skill', 'author a skill', 'create a new skill', 'escribe una skill', 'haz una skill nueva', 'edit this skill', 'improve this skill', 'my skill never triggers', 'my skill always fires', 'fix the description', 'the frontmatter is invalid', 'write evals for this skill', 'add this skill to the catalog', 'audit this skill against the rubric', 'progressive disclosure', 'SKILL.md too long'. Knows the rsc conventions: hybrid layout, tags/recommends frontmatter, manifest.json, the npx rsc CLI, the Knowledge map. NOT building runtime features (that is the SDD chain) and NOT general docs."
|
|
3
|
+
description: "Use when authoring a NEW skill or editing an existing one for the rsc catalog — writing or fixing a SKILL.md, crafting a trigger-rich third-person description that fires on the right prompts, deciding what goes in references/ vs the body, writing evals/cases.yaml + evals/README.md, or wiring a skill into the catalog (tags, recommends, manifest). Triggers: 'write a skill', 'author a skill', 'create a new skill', 'escribe una skill', 'haz una skill nueva', 'edit this skill', 'improve this skill', 'my skill never triggers', 'my skill always fires', 'fix the description', 'the frontmatter is invalid', 'write evals for this skill', 'add this skill to the catalog', 'audit this skill against the rubric', 'progressive disclosure', 'SKILL.md too long'. Knows the rsc conventions: hybrid layout, tags/recommends frontmatter, manifest.json, the npx @ericrisco/rsc CLI, the Knowledge map. NOT building runtime features (that is the SDD chain) and NOT general docs."
|
|
4
4
|
tags: [skill, authoring, meta]
|
|
5
5
|
recommends: []
|
|
6
6
|
origin: risco
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A skill is not done when `SKILL.md` reads well. It is done when it is *in the
|
|
4
4
|
catalog* — frontmatter valid, indexed in the manifest, discoverable by the
|
|
5
|
-
`npx rsc` recommender, and reachable where the agent will find it. This reference
|
|
5
|
+
`npx @ericrisco/rsc` recommender, and reachable where the agent will find it. This reference
|
|
6
6
|
is the rsc plumbing.
|
|
7
7
|
|
|
8
8
|
## The layout (single source of truth)
|
|
@@ -52,7 +52,7 @@ profiles: [core, full] # optional: named-profile membership
|
|
|
52
52
|
There are no bundles and no `/<bundle>:<id>` namespacing. A skill installs under
|
|
53
53
|
the target's rsc namespace (e.g. `~/.claude/skills/rsc/<id>/`) and is invoked by
|
|
54
54
|
its `name`. The `suggest` detector is always installed (the floor) and proposes
|
|
55
|
-
installing any skill a task needs via `npx rsc add <id>`.
|
|
55
|
+
installing any skill a task needs via `npx @ericrisco/rsc add <id>`.
|
|
56
56
|
|
|
57
57
|
## Wiring steps for a new skill
|
|
58
58
|
|
package/skills/harness/SKILL.md
CHANGED
|
@@ -259,6 +259,18 @@ Print a final report:
|
|
|
259
259
|
- `01-TOOLS/<X>/test_connection.{sh,py}` once `.env` is filled.
|
|
260
260
|
- Any subproject with a dirty git tree to clean up.
|
|
261
261
|
|
|
262
|
+
## Equip — install the skills this workspace needs
|
|
263
|
+
|
|
264
|
+
Once the structure stands, make sure the workspace has the rsc skills its stack and goals call for — detection here, not just at `init`:
|
|
265
|
+
|
|
266
|
+
1. **Detect → propose.** From the detected stacks/providers and the user's goals in `02-DOCS/wiki/harness/`, build a shortlist. Ask the CLI if unsure: `npx @ericrisco/rsc consult "<stack + goal>"`. (Map e.g. detected Stripe→`stripe`, Postgres→`postgresdb`, Next→`nextjs`+`design`, a company/ops focus→`finance-ops`/`invoicing`/`gdpr-privacy`…)
|
|
267
|
+
2. **Confirm, then install yourself.** Show the shortlist with a one-line *why* each (matched to the dial), get a one-word confirm, and run it via Bash — installing writes to their environment, so always confirm first:
|
|
268
|
+
```bash
|
|
269
|
+
npx @ericrisco/rsc add <skill> [<skill> ...]
|
|
270
|
+
```
|
|
271
|
+
Can't run a shell? Print the exact command for another terminal tab.
|
|
272
|
+
3. **Flag the new session.** New skills load at session start — tell the user to open a **new tab/session** (or reload Cursor/Codex/Gemini) in this folder for them to activate. Log the installed set in `02-DOCS/wiki/harness/decisions.md`.
|
|
273
|
+
|
|
262
274
|
## Iron rules (non-negotiable)
|
|
263
275
|
|
|
264
276
|
These rules cut across every phase. Violating any one of them aborts the run.
|
|
@@ -41,7 +41,7 @@ back — you do not write feature code anyway.
|
|
|
41
41
|
`sdd.registry_path`. Do not choose a different test command from memory while config exists.
|
|
42
42
|
3. **Read the skill registry.** Open `.rsc/skill-registry.json` if present. Select only the
|
|
43
43
|
relevant stack/process skills for this task, then digest them into compact rules. If the
|
|
44
|
-
registry is missing, run or recommend `npx rsc registry refresh` and record the fallback.
|
|
44
|
+
registry is missing, run or recommend `npx @ericrisco/rsc registry refresh` and record the fallback.
|
|
45
45
|
4. **Read the accompaniment dial.** Open `02-DOCS/wiki/harness/user-profile.md` and read the
|
|
46
46
|
technical + accompaniment level. It sets how loud you are at each checkpoint (see the dial table
|
|
47
47
|
below). No profile yet → assume non-technical, narrate more, and ask before any irreversible step.
|
package/skills/init/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: init
|
|
3
|
-
description: "Use when starting from nothing or pointing the rsc-skills harness at an existing project — the front door / bootstrapper. It gauges the user's technical level FIRST (non-technical by default), sets an explanation/accompaniment dial, then discovers what they want to build OR govern (any software stack, OR a non-code harness: running a company/ops, research, personal knowledge, content). It detects greenfield vs brownfield, profiles the user into 02-DOCS, RECOMMENDS which rsc skills to install (printing the exact `npx rsc add` commands), and hands off to the harness skill to scaffold 01-TOOLS + 02-DOCS. Triggers: 'empezar de cero', 'no sé por dónde empezar', 'start a new project', 'bootstrap', 'set up the harness', 'monta el proyecto', 'quiero montar una empresa/ops/wiki con esto', 'arranca', 'init'. NOT the scaffolder itself (that's the harness skill) and NOT a specific stack skill."
|
|
3
|
+
description: "Use when starting from nothing or pointing the rsc-skills harness at an existing project — the front door / bootstrapper. It gauges the user's technical level FIRST (non-technical by default), sets an explanation/accompaniment dial, then discovers what they want to build OR govern (any software stack, OR a non-code harness: running a company/ops, research, personal knowledge, content). It detects greenfield vs brownfield, profiles the user into 02-DOCS, RECOMMENDS which rsc skills to install (printing the exact `npx @ericrisco/rsc add` commands), and hands off to the harness skill to scaffold 01-TOOLS + 02-DOCS. Triggers: 'empezar de cero', 'no sé por dónde empezar', 'start a new project', 'bootstrap', 'set up the harness', 'monta el proyecto', 'quiero montar una empresa/ops/wiki con esto', 'arranca', 'init'. NOT the scaffolder itself (that's the harness skill) and NOT a specific stack skill."
|
|
4
4
|
tags: [init, bootstrap, start, new, setup]
|
|
5
5
|
recommends: [harness]
|
|
6
6
|
profiles: [minimal, core, full]
|
|
@@ -110,9 +110,9 @@ Figure out two things: **the state of the ground** and **what they want**.
|
|
|
110
110
|
|
|
111
111
|
Record everything to `02-DOCS/wiki/harness/` as you go. Use the greenfield and brownfield questionnaires (for software AND non-code harnesses) in `references/discovery.md`. Ask in batches sized to the accompaniment level — never dump every question at once.
|
|
112
112
|
|
|
113
|
-
### Phase 3 —
|
|
113
|
+
### Phase 3 — DETECT & INSTALL
|
|
114
114
|
|
|
115
|
-
Map what you learned to individual rsc skills
|
|
115
|
+
Map what you learned to individual rsc skills. **You have a terminal — install them yourself.** After a one-word confirm, run `npx @ericrisco/rsc add <ids>` via Bash. (If you genuinely cannot run a shell, print the exact command and tell the user to paste it in another terminal tab.) Then tell them the **new skills activate in a fresh session/tab** — see the install note below the table. Skill map:
|
|
116
116
|
|
|
117
117
|
| Need | Skills | Why (one line, matched to level) |
|
|
118
118
|
| --- | --- | --- |
|
|
@@ -123,19 +123,21 @@ Map what you learned to individual rsc skills and **print the exact `npx rsc add
|
|
|
123
123
|
| AI agents | `building-agents` | Agent loops, tools, RAG. |
|
|
124
124
|
| Security & shipping / ops (incl. non-code company harness connecting tools) | `secure-coding`, `deployment` | Ship it safely and wire up external tools. |
|
|
125
125
|
|
|
126
|
-
|
|
126
|
+
Show the shortlist with a one-line *why* per skill (language matched to the user's level), get a one-word confirm, then install:
|
|
127
127
|
|
|
128
128
|
```text
|
|
129
|
-
npx rsc add <skill> [<skill> ...]
|
|
129
|
+
npx @ericrisco/rsc add <skill> [<skill> ...]
|
|
130
130
|
```
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
> **After installing, say this (matched to their IDE):** "Listo, instaladas. Para que se activen, abre una **pestaña/sesión nueva** de Claude Code (o recarga Cursor/Codex/Gemini) en esta carpeta — las skills se cargan al arrancar la sesión." If you couldn't run the command yourself, give it to them to run in another terminal tab, then the same new-session note.
|
|
133
|
+
|
|
134
|
+
Install only skills their answers justify — same discipline as "no speculative tools". Full skill map, sample printouts per scenario, and the requirements-first decision pattern → `references/recommend-skills.md`.
|
|
133
135
|
|
|
134
136
|
### Phase 4 — HANDOFF
|
|
135
137
|
|
|
136
|
-
Tell the user to install `harness` (`npx rsc add harness`) and then run the **`harness`** skill to actually scaffold the `01-TOOLS/` + `02-DOCS/` workspace. `init` stops here — it has set the profile, recorded the discovery, and recommended the skills. `harness` reads the profile and builds the structure.
|
|
138
|
+
Tell the user to install `harness` (`npx @ericrisco/rsc add harness`) and then run the **`harness`** skill to actually scaffold the `01-TOOLS/` + `02-DOCS/` workspace. `init` stops here — it has set the profile, recorded the discovery, and recommended the skills. `harness` reads the profile and builds the structure.
|
|
137
139
|
|
|
138
|
-
> "Tu perfil y lo que hemos hablado ya están guardados. Cuando hayas instalado las skills de arriba (`npx rsc add …`), ejecuta `harness` y monto el esqueleto del proyecto (`01-TOOLS/` + `02-DOCS/`) leyendo todo lo que acabamos de decidir."
|
|
140
|
+
> "Tu perfil y lo que hemos hablado ya están guardados. Cuando hayas instalado las skills de arriba (`npx @ericrisco/rsc add …`), ejecuta `harness` y monto el esqueleto del proyecto (`01-TOOLS/` + `02-DOCS/`) leyendo todo lo que acabamos de decidir."
|
|
139
141
|
|
|
140
142
|
## Iron rules (non-negotiable)
|
|
141
143
|
|
|
@@ -143,7 +145,7 @@ Tell the user to install `harness` (`npx rsc add harness`) and then run the **`h
|
|
|
143
145
|
2. **Non-technical by default.** Plain language until told otherwise. Never assume the user reads code.
|
|
144
146
|
3. **The dial governs verbosity AND question count.** Read it, obey it, in this skill and every skill downstream. L0 means *do it and stop talking*; L3 means *explain everything and ask*.
|
|
145
147
|
4. **Three options, requirements first.** For any significant decision: gather the driving requirements, present exactly 3 options with honest trade-offs, recommend one, log it.
|
|
146
|
-
5. **
|
|
148
|
+
5. **Install with consent, then flag the new session.** You have a terminal: after a one-word confirm, run `npx @ericrisco/rsc add …` yourself. Newly installed skills load at the START of a session, so tell the user to open a **new tab/session** (or reload) for them to activate. If you cannot run a shell, hand them the exact command for another tab — never install without a confirm.
|
|
147
149
|
6. **No speculative skills.** Recommend a skill only if the discovery justified it. No "you'll probably want agents too".
|
|
148
150
|
7. **Persist as you learn.** Goals, context, constraints, decisions go to `02-DOCS/wiki/harness/` continuously — `user-profile.md` for state, `decisions.md` append-only for choices.
|
|
149
151
|
8. **`init` writes only the profile + the link.** It writes ONLY the user-profile + decisions log under `02-DOCS/wiki/harness/` and the `CLAUDE.md` Knowledge-map link. ALL other `01-TOOLS/` + `02-DOCS/` scaffolding is the `harness` skill's job. Hand off; do not do its job.
|
|
@@ -162,7 +164,7 @@ These thoughts mean the skill is about to break its own rules. Recognize and abo
|
|
|
162
164
|
| "I'll scaffold 01-TOOLS now while I'm here" | No. That's the `harness` skill. `init` profiles and hands off. |
|
|
163
165
|
| "The profile can wait until after discovery" | No. Profile first — every later question's framing depends on it. |
|
|
164
166
|
| "This is a company, not code, so the harness doesn't apply" | No. Domain-agnostic. A non-code harness uses the same structure. |
|
|
165
|
-
| "I'll install the skills for them" | No. A skill can't install. Print the `npx rsc add` commands. |
|
|
167
|
+
| "I'll install the skills for them" | No. A skill can't install. Print the `npx @ericrisco/rsc add` commands. |
|
|
166
168
|
| "They said 'ok', that's enough to pick the database" | No. A significant decision needs the 3-option pattern and a log entry. |
|
|
167
169
|
|
|
168
170
|
## Project grounding (02-DOCS + CLAUDE.md)
|
|
@@ -60,7 +60,7 @@ capability:
|
|
|
60
60
|
- "Presents the accompaniment dial L0–L3 and, given a silent non-technical user, defaults to L3 (full accompaniment)"
|
|
61
61
|
- "Persists the profile to 02-DOCS/wiki/harness/user-profile.md and an append-only 02-DOCS/wiki/harness/decisions.md, and links both from a ## Knowledge map section in root CLAUDE.md (creating CLAUDE.md if absent, additive only)"
|
|
62
62
|
- "Detects greenfield vs brownfield rather than assuming, and runs DISCOVER (goals, audience, constraints, surfaces) before recommending"
|
|
63
|
-
- "Recommends specific rsc skills matched to discovery (at minimum harness; nextjs/flutter + design if app surfaces justify it) and PRINTS the exact install commands (npx rsc add <skill> ...)"
|
|
63
|
+
- "Recommends specific rsc skills matched to discovery (at minimum harness; nextjs/flutter + design if app surfaces justify it) and PRINTS the exact install commands (npx @ericrisco/rsc add <skill> ...)"
|
|
64
64
|
- "Does NOT install anything itself and does NOT scaffold 01-TOOLS/02-DOCS — it hands off to the harness skill as the final step"
|
|
65
65
|
- "Does not recommend speculative skills (e.g. building-agents) unless discovery justified them"
|
|
66
66
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Recommend Skills — the skill map, sample printouts & the "siempre 3 opciones" pattern
|
|
2
2
|
|
|
3
3
|
Phase 3 detail. Map discovery to individual rsc skills, print the exact
|
|
4
|
-
`npx rsc add` commands, and run the requirements-first 3-option decision pattern
|
|
4
|
+
`npx @ericrisco/rsc add` commands, and run the requirements-first 3-option decision pattern
|
|
5
5
|
for any significant choice. A skill **cannot install anything** — it recommends
|
|
6
6
|
and prints commands the user runs.
|
|
7
7
|
|
|
@@ -27,11 +27,11 @@ usually does NOT want `fastapi`/`nextjs` unless they're also building software.
|
|
|
27
27
|
|
|
28
28
|
## What to print
|
|
29
29
|
|
|
30
|
-
One `npx rsc add` line per recommendation (or batch them on one line), each with
|
|
30
|
+
One `npx @ericrisco/rsc add` line per recommendation (or batch them on one line), each with
|
|
31
31
|
its *why* in the user's language and level.
|
|
32
32
|
|
|
33
33
|
```text
|
|
34
|
-
npx rsc add <skill> [<skill> ...]
|
|
34
|
+
npx @ericrisco/rsc add <skill> [<skill> ...]
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
### Sample printout — software, full-stack web app with marketing
|
|
@@ -40,11 +40,11 @@ npx rsc add <skill> [<skill> ...]
|
|
|
40
40
|
Based on what you described (a web app with a backend, a Next.js UI, a landing
|
|
41
41
|
page, and you want to ship it securely), install these:
|
|
42
42
|
|
|
43
|
-
npx rsc add harness # the control plane — scaffolds and governs the workspace
|
|
44
|
-
npx rsc add fastapi postgresdb # the API and the database
|
|
45
|
-
npx rsc add nextjs design # the web UI people see
|
|
46
|
-
npx rsc add marketing # the words for your landing page
|
|
47
|
-
npx rsc add secure-coding deployment # ship it safely
|
|
43
|
+
npx @ericrisco/rsc add harness # the control plane — scaffolds and governs the workspace
|
|
44
|
+
npx @ericrisco/rsc add fastapi postgresdb # the API and the database
|
|
45
|
+
npx @ericrisco/rsc add nextjs design # the web UI people see
|
|
46
|
+
npx @ericrisco/rsc add marketing # the words for your landing page
|
|
47
|
+
npx @ericrisco/rsc add secure-coding deployment # ship it safely
|
|
48
48
|
|
|
49
49
|
Once they're installed, run the harness skill and I'll build the project structure.
|
|
50
50
|
```
|
|
@@ -55,9 +55,9 @@ Once they're installed, run the harness skill and I'll build the project structu
|
|
|
55
55
|
You're organizing how your agency runs — client emails, contracts, invoicing,
|
|
56
56
|
and you want it all findable. That's a non-code harness; install:
|
|
57
57
|
|
|
58
|
-
npx rsc add harness # your 01-TOOLS (connections) + 02-DOCS (your second brain)
|
|
59
|
-
npx rsc add secure-coding deployment # connect email, payments, drive — and keep credentials safe
|
|
60
|
-
npx rsc add marketing # for the proposals, decks and copy you send clients
|
|
58
|
+
npx @ericrisco/rsc add harness # your 01-TOOLS (connections) + 02-DOCS (your second brain)
|
|
59
|
+
npx @ericrisco/rsc add secure-coding deployment # connect email, payments, drive — and keep credentials safe
|
|
60
|
+
npx @ericrisco/rsc add marketing # for the proposals, decks and copy you send clients
|
|
61
61
|
|
|
62
62
|
Once installed, run the harness skill and I'll set up the structure that holds it all.
|
|
63
63
|
```
|
|
@@ -67,10 +67,10 @@ Once installed, run the harness skill and I'll set up the structure that holds i
|
|
|
67
67
|
```text
|
|
68
68
|
You want an AI agent that answers questions over your own documents. Install:
|
|
69
69
|
|
|
70
|
-
npx rsc add harness # the control plane
|
|
71
|
-
npx rsc add building-agents # agent loops, tools, RAG
|
|
72
|
-
npx rsc add fastapi postgresdb # an API + database to serve it
|
|
73
|
-
npx rsc add secure-coding deployment # ship it safely
|
|
70
|
+
npx @ericrisco/rsc add harness # the control plane
|
|
71
|
+
npx @ericrisco/rsc add building-agents # agent loops, tools, RAG
|
|
72
|
+
npx @ericrisco/rsc add fastapi postgresdb # an API + database to serve it
|
|
73
|
+
npx @ericrisco/rsc add secure-coding deployment # ship it safely
|
|
74
74
|
|
|
75
75
|
Then run the harness skill.
|
|
76
76
|
```
|
|
@@ -41,7 +41,7 @@ should_not_trigger:
|
|
|
41
41
|
why: "Root-cause work owned by debug; orient does not take over the task itself."
|
|
42
42
|
|
|
43
43
|
capability:
|
|
44
|
-
- scenario: "The user just ran `npx rsc add postgresdb` and says 'ya está, ¿y ahora qué?'. The profile shows accompaniment_level L0. Show how orient closes the turn."
|
|
44
|
+
- scenario: "The user just ran `npx @ericrisco/rsc add postgresdb` and says 'ya está, ¿y ahora qué?'. The profile shows accompaniment_level L0. Show how orient closes the turn."
|
|
45
45
|
must_include:
|
|
46
46
|
- "Situates the user on the map ('📍 dónde estás' / what is built vs missing)"
|
|
47
47
|
- "States what just happened in one plain-language line ('✅ instalaste la base de datos')"
|
package/skills/sdd-init/SKILL.md
CHANGED
|
@@ -57,7 +57,7 @@ If any runner is detected, set `testing.strict_tdd: true`. Strict TDD means impl
|
|
|
57
57
|
Refresh the project registry:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
npx rsc registry refresh
|
|
60
|
+
npx @ericrisco/rsc registry refresh
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
This writes:
|
|
@@ -69,6 +69,19 @@ This writes:
|
|
|
69
69
|
|
|
70
70
|
Later phases use this as a cheap index: id, trigger, tags, path, installed/available, hash. Do not load every skill into context. Select the few matching the phase and stack, then digest them into compact rules for subagents.
|
|
71
71
|
|
|
72
|
+
## Equip the repo — install the skills this stack needs
|
|
73
|
+
|
|
74
|
+
Calibration is the moment to make sure the relevant skills are actually present, not just indexed. Detect → propose → install:
|
|
75
|
+
|
|
76
|
+
1. **Detect what this repo needs.** Use the stack you just detected, or ask the CLI: `npx @ericrisco/rsc consult "<one line: stack + what we're building>"`. Map signals to skills — e.g. `next`→`nextjs`+`design`, `go.mod`→`go`, FastAPI→`fastapi`, `*.sql`/Prisma→`postgresdb`/`prisma-orm`, Stripe→`stripe`, Dockerfile/CI→`docker`/`github-actions`, tests→`testing-*`/`e2e-testing`. The SDD phase skills (`specify`…`ship`) should already be present from `--profile core`; install any that are missing.
|
|
77
|
+
2. **Show the shortlist + confirm.** List the skills with a one-line *why* each, matched to the accompaniment dial, and get a one-word confirm before touching their environment.
|
|
78
|
+
3. **Install them yourself.** You have a terminal — run it via Bash:
|
|
79
|
+
```bash
|
|
80
|
+
npx @ericrisco/rsc add <skill> [<skill> ...]
|
|
81
|
+
```
|
|
82
|
+
If you genuinely cannot run a shell, print the exact command and ask the user to paste it in another terminal tab.
|
|
83
|
+
4. **Flag the new session.** Newly installed skills load at the START of a session. Tell the user: *"Instaladas. Abre una pestaña/sesión nueva de tu asistente (o recarga) en esta carpeta para que se activen."* Then refresh the registry again so `installed/available` is accurate.
|
|
84
|
+
|
|
72
85
|
## Config Shape
|
|
73
86
|
|
|
74
87
|
Write `02-DOCS/wiki/sdd/config.yaml` in this shape:
|
|
@@ -129,7 +142,7 @@ End with the standard SDD result envelope:
|
|
|
129
142
|
"Use .rsc/skill-registry.json as the cheap skill index."
|
|
130
143
|
]
|
|
131
144
|
},
|
|
132
|
-
"evidence": ["npx rsc registry refresh", "detected test commands recorded"]
|
|
145
|
+
"evidence": ["npx @ericrisco/rsc registry refresh", "detected test commands recorded"]
|
|
133
146
|
}
|
|
134
147
|
```
|
|
135
148
|
|
|
@@ -38,6 +38,6 @@ capability:
|
|
|
38
38
|
- "Writes 02-DOCS/wiki/sdd/config.yaml, not an openspec/ folder."
|
|
39
39
|
- "Sets testing.strict_tdd true because a runner exists and records apply/verify commands."
|
|
40
40
|
- "Asks or defaults execution_mode, artifact_store, review budget and delivery strategy."
|
|
41
|
-
- "Runs or instructs npx rsc registry refresh and records .rsc/skill-registry.json as registry_path."
|
|
41
|
+
- "Runs or instructs npx @ericrisco/rsc registry refresh and records .rsc/skill-registry.json as registry_path."
|
|
42
42
|
- "Distinguishes itself from init and harness."
|
|
43
43
|
- "Ends with the standard result envelope including skill_resolution and evidence."
|
package/skills/specify/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: specify
|
|
3
|
-
description: "Use when a feature, change, or product idea is still fuzzy and needs
|
|
3
|
+
description: "Use when a feature, change, or product idea is still fuzzy and needs brainstorming into an APPROVED spec BEFORE any planning or code — the brainstorming front door of SDD. Turns a one-line intent into a WHAT/WHY spec (problem, goals, users, scope, behaviour, acceptance) with zero implementation detail, via one-question-at-a-time dialogue, 2-3 proposed approaches with a recommendation, and a design the user approves before anything gets built. Triggers: 'write a spec for…', 'spec this out', 'brainstorm this feature', 'especifica esta feature', 'I want to add X', 'tengo una idea', 'se me ha ocurrido', '¿y si…?', 'wouldn't it be nice if…', 'let's think this through', 'what should this feature do', 'draft a PRD', or any moment someone jumps to HOW before WHAT is agreed. NOT the technical plan (that's `plan`), NOT the de-risking ambiguity sweep (that's `clarify`), NOT project-wide principles (that's `constitution`)."
|
|
4
4
|
tags: [sdd, spec, requirements]
|
|
5
5
|
recommends: [clarify, plan]
|
|
6
6
|
profiles: [core, full]
|
|
@@ -15,12 +15,12 @@ A spec is a contract about behaviour and outcomes, readable by a non-technical s
|
|
|
15
15
|
|
|
16
16
|
## Detect the moment — and hold the gate
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Fire on the **faintest** sign the user is thinking about a new feature or change — not just "spec this", but any musing: "I want to add…", "can we build…", "it should also…", "wouldn't it be nice if…", "what if we…", "I've been thinking about…", "let's brainstorm…", "tengo una idea", "se me ha ocurrido", "¿y si…?", "estaría guapo que…", "quiero añadir…", "necesito que haga…". This phase owns that moment, *even if a stack skill (nextjs/fastapi/flutter…) also fired and is itching to build it*. Catch it here first — being too eager to brainstorm is cheap; skipping it is expensive.
|
|
19
19
|
|
|
20
|
-
**The hard gate
|
|
21
|
-
> No
|
|
20
|
+
**The hard gate — every feature, including the "obvious" ones:**
|
|
21
|
+
> No implementation starts — not a stack skill, not `plan`-to-code, not "just a quick version" — until the user has **approved a design** (the spec at step 9 below) and `plan` has produced the technical plan + task list. If the user says "just build it", do not; name the gate in one friendly line and run the loop. "Too simple to need a design" is the rationalization that wastes the most work — every feature gets the loop. The only thing that skips it is a literal one-line, zero-risk change (typo/copy/config) — say so out loud and do it.
|
|
22
22
|
|
|
23
|
-
You are not slowing them down; you
|
|
23
|
+
You are not slowing them down; you make the intent reviewable *before* code exists, which is far cheaper than discovering the misunderstanding in a PR. End every spec by handing to `clarify`/`plan` — never to `implement`.
|
|
24
24
|
|
|
25
25
|
## The one rule that defines this skill
|
|
26
26
|
|
|
@@ -78,16 +78,24 @@ A criterion that needs a human to "decide if it's good enough" is not done yet
|
|
|
78
78
|
|
|
79
79
|
## The pass, end to end
|
|
80
80
|
|
|
81
|
+
Run these in order. It is a collaborative dialogue, not a form you fill in silence — and **you do not skip to a design dump.** Track the steps with a todo list so none is dropped.
|
|
82
|
+
|
|
81
83
|
```text
|
|
82
|
-
1.
|
|
83
|
-
2.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
1. EXPLORE context → profile + sdd config + constitution + existing specs + wiki + recent git
|
|
85
|
+
2. SCOPE check → if the request is several independent subsystems, DECOMPOSE into sub-specs first,
|
|
86
|
+
then brainstorm the FIRST one; each gets its own spec → plan → build cycle
|
|
87
|
+
3. RESTATE in one sentence→ confirm you understood the intent before anything else
|
|
88
|
+
4. ASK, one at a time → only the gaps that change scope; multiple-choice when you can; wait, record, repeat
|
|
89
|
+
5. PROPOSE 2-3 approaches → distinct directions with honest trade-offs; lead with your recommendation and why
|
|
90
|
+
6. PRESENT the design → section by section (problem, users, behaviour, acceptance), scaled to complexity;
|
|
91
|
+
after EACH section ask "does this look right?" and adjust before moving on
|
|
92
|
+
7. WRITE the spec → 02-DOCS/wiki/sdd/specs/<slug>.md (WHAT/WHY), index it in CLAUDE.md, commit if a repo
|
|
93
|
+
8. SELF-REVIEW → scan for TODO/placeholder, contradictions, ambiguity, scope creep; fix inline
|
|
94
|
+
9. USER APPROVES → ask them to read the written spec and confirm; loop on changes until they approve
|
|
95
|
+
10. HAND OFF → only now, result envelope → clarify/plan. NEVER to implement.
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**The gate is steps 5-9, and it is the point of this skill.** Implementation does not begin — not `plan`-to-code, not a stack skill, not "just a quick version" — until the user has approved the design at step 9. This holds for **every** feature, including ones that feel too small to design; "too simple to spec" is exactly where unexamined assumptions cost the most. The only thing that skips the loop is a literal one-line, zero-risk change (a typo, a copy tweak) — name it as such and do it.
|
|
91
99
|
```
|
|
92
100
|
|
|
93
101
|
`<slug>` is a short kebab-case name derived from the feature (e.g. `bulk-csv-import`, `magic-link-login`). If a spec with that slug exists, read it and update rather than overwrite.
|
|
@@ -165,6 +173,9 @@ The proposal is allowed to mention options and tradeoffs; the spec that follows
|
|
|
165
173
|
| Dump 12 questions in one message | One focused question per turn. Infer the rest from the constitution and wiki. |
|
|
166
174
|
| Ask a question you could answer from the constitution | Read it first. Only ask what genuinely changes the spec. |
|
|
167
175
|
| Write "it should work well / be fast / be intuitive" | Not testable. Make it a binary Given/When/Then or move it to Points to clarify. |
|
|
176
|
+
| Skip the whole loop because "this is too simple to design" | That's the rationalization that wastes the most work. Every feature gets the loop; only a literal one-line, zero-risk change skips. |
|
|
177
|
+
| Present one approach as the answer | Offer 2-3 distinct directions with trade-offs and a recommendation; let the user choose before you write the spec. |
|
|
178
|
+
| Hand to `plan`/`implement` before the user approved the written spec | The approval at step 9 is the gate. No design approved → nothing gets built. |
|
|
168
179
|
| Skip non-goals because "it's obvious" | Unsaid scope becomes assumed scope. State what you are *not* doing. |
|
|
169
180
|
| Resolve every ambiguity yourself to look finished | Inventing answers is worse than naming gaps. List them in Points to clarify. |
|
|
170
181
|
| Start designing the solution because it's clearer | Stay on WHAT/WHY. The plan is a later, separate phase. |
|
package/skills/suggest/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: suggest
|
|
3
|
-
description: "Always-on. Use whenever the current task would clearly benefit from an rsc skill that is not yet installed — detect the gap, name the skill, and (with a one-word confirm) install it via `npx rsc add <id>`. Triggers on any task that maps to a known rsc capability the session lacks: building a web/app/API, a database, security, deployment, agents, content, or connecting/documenting a company."
|
|
3
|
+
description: "Always-on. Use whenever the current task would clearly benefit from an rsc skill that is not yet installed — detect the gap, name the skill, and (with a one-word confirm) install it via `npx @ericrisco/rsc add <id>`. Triggers on any task that maps to a known rsc capability the session lacks: building a web/app/API, a database, security, deployment, agents, content, or connecting/documenting a company."
|
|
4
4
|
tags: [suggest, detect, install, meta, always-on]
|
|
5
5
|
recommends: []
|
|
6
6
|
profiles: [minimal, core, full]
|
|
@@ -14,14 +14,14 @@ When the current task would clearly benefit from an rsc skill that is **not inst
|
|
|
14
14
|
|
|
15
15
|
1. Name it in plain language: "Para esto va bien `<id>`, que aún no tienes."
|
|
16
16
|
2. Ask one short confirm: "¿La instalo? (sí/no)".
|
|
17
|
-
3. On yes, run `npx rsc add <id>` (Bash). Then continue the task.
|
|
17
|
+
3. On yes, run `npx @ericrisco/rsc add <id>` (Bash). Then continue the task.
|
|
18
18
|
|
|
19
19
|
Rules:
|
|
20
20
|
|
|
21
21
|
- Installing changes the user's environment — always confirm first.
|
|
22
|
-
- To know what exists, run `npx rsc consult "<the task>"` instead of guessing.
|
|
23
|
-
- For a project-level view, prefer `.rsc/skill-registry.json` when present; if it is missing or stale, suggest `npx rsc registry refresh`. This is a cheap index, not a reason to load every skill.
|
|
24
|
-
- Never recommend something already installed (`npx rsc list`).
|
|
22
|
+
- To know what exists, run `npx @ericrisco/rsc consult "<the task>"` instead of guessing.
|
|
23
|
+
- For a project-level view, prefer `.rsc/skill-registry.json` when present; if it is missing or stale, suggest `npx @ericrisco/rsc registry refresh`. This is a cheap index, not a reason to load every skill.
|
|
24
|
+
- Never recommend something already installed (`npx @ericrisco/rsc list`).
|
|
25
25
|
- One suggestion at a time. Don't interrupt the flow for nice-to-haves.
|
|
26
26
|
|
|
27
27
|
## Orientación (siempre)
|
|
@@ -10,5 +10,5 @@ skill (and stays quiet when the task needs nothing new).
|
|
|
10
10
|
| "renombra esta variable" | no suggestion (trivial, nothing to install) |
|
|
11
11
|
|
|
12
12
|
A pass = the detector names the expected skill, asks a one-word confirm, and on
|
|
13
|
-
"sí" runs `npx rsc add <id>`. It must never auto-install without confirmation and
|
|
14
|
-
must not recommend a skill already in `npx rsc list`.
|
|
13
|
+
"sí" runs `npx @ericrisco/rsc add <id>`. It must never auto-install without confirmation and
|
|
14
|
+
must not recommend a skill already in `npx @ericrisco/rsc list`.
|
|
@@ -2,12 +2,12 @@ skill: suggest
|
|
|
2
2
|
|
|
3
3
|
# The always-on detector. It fires when the current task would clearly benefit
|
|
4
4
|
# from an rsc skill that is NOT yet installed, names it, and (with confirmation)
|
|
5
|
-
# runs `npx rsc add <id>`. It should stay silent for trivial work and defer to a
|
|
5
|
+
# runs `npx @ericrisco/rsc add <id>`. It should stay silent for trivial work and defer to a
|
|
6
6
|
# skill that already owns the task.
|
|
7
7
|
|
|
8
8
|
should_trigger:
|
|
9
9
|
- prompt: "Ayúdame a montar la tabla de pedidos en la base de datos."
|
|
10
|
-
why: "A database task with no DB skill present — the detector should propose `npx rsc add postgresdb` before diving in."
|
|
10
|
+
why: "A database task with no DB skill present — the detector should propose `npx @ericrisco/rsc add postgresdb` before diving in."
|
|
11
11
|
|
|
12
12
|
- prompt: "Quiero publicar mi web online, creo que con Docker."
|
|
13
13
|
why: "A deployment task with no deploy skill present — propose installing `deployment`."
|
|
@@ -46,6 +46,6 @@ capability:
|
|
|
46
46
|
must_include:
|
|
47
47
|
- "Names the missing skill in plain language ('para esto va bien `postgresdb`, que aún no tienes')"
|
|
48
48
|
- "Asks a single short confirmation (sí/no) before doing anything — never auto-installs"
|
|
49
|
-
- "On confirmation, runs `npx rsc add postgresdb` via Bash, then continues the original task"
|
|
50
|
-
- "Checks what is already installed (npx rsc list) and never proposes a skill the user already has"
|
|
49
|
+
- "On confirmation, runs `npx @ericrisco/rsc add postgresdb` via Bash, then continues the original task"
|
|
50
|
+
- "Checks what is already installed (npx @ericrisco/rsc list) and never proposes a skill the user already has"
|
|
51
51
|
- "Makes at most one suggestion and does not interrupt the flow for nice-to-haves"
|