@ericrisco/rsc 1.1.5 → 1.2.0
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 +72 -14
- package/manifest.json +888 -231
- package/package.json +3 -2
- package/schema/ecc-originality.json +16 -0
- package/schema/ecc-originality.u64 +0 -0
- package/scripts/build-manifest.js +43 -3
- package/scripts/doctor.js +47 -1
- package/scripts/install-apply.js +148 -31
- package/scripts/lib/capabilities.js +21 -0
- package/scripts/lib/domains.js +3 -3
- package/scripts/lib/manifest-file.js +4 -1
- package/scripts/originality-check.js +137 -0
- package/scripts/rsc.js +122 -14
- package/skills/design/SKILL.md +3 -3
- package/skills/design/references/design-systems.md +1 -1
- package/skills/design/references/inspiration-sources.md +2 -2
- package/skills/design/references/motion-and-interaction.md +2 -2
- package/skills/design-dna/evals/cases.yaml +1 -1
- package/skills/design-loop/SKILL.md +3 -3
- package/skills/design-loop/evals/cases.yaml +3 -3
- package/skills/expo/SKILL.md +1 -1
- package/skills/motion-craft/SKILL.md +125 -0
- package/skills/motion-craft/evals/cases.yaml +38 -0
- package/skills/motion-craft/scripts/verify.sh +75 -0
- package/skills/react/SKILL.md +2 -2
- package/skills/react-native/SKILL.md +1 -1
- package/skills/swift-ios/SKILL.md +2 -2
- package/skills/ui-engineering/SKILL.md +114 -0
- package/skills/ui-engineering/evals/cases.yaml +38 -0
- package/skills/variant-explorer/SKILL.md +93 -0
- package/skills/variant-explorer/evals/cases.yaml +38 -0
- package/targets/agent-catalog.js +220 -0
- package/targets/agent-sources.json +48 -0
- package/targets/agents.js +61 -13
- package/targets/commands.js +212 -0
- package/targets/memory.js +276 -0
- package/targets/opencode-memory-plugin.js +65 -0
- package/targets/session-memory-adapter.mjs +117 -0
- package/targets/session-memory-core.mjs +477 -0
- package/targets/session-memory.mjs +27 -0
- package/skills/animate/SKILL.md +0 -851
- package/skills/animate/evals/cases.yaml +0 -36
- package/skills/animate/references/recipes.md +0 -324
- package/skills/animate-expo/SKILL.md +0 -281
- package/skills/animate-expo/evals/cases.yaml +0 -36
- package/skills/animate-expo/references/recipes.md +0 -385
- package/skills/animation-vocabulary/SKILL.md +0 -189
- package/skills/animation-vocabulary/evals/cases.yaml +0 -31
- package/skills/apple-design/SKILL.md +0 -301
- package/skills/apple-design/evals/cases.yaml +0 -33
- package/skills/ask-sonner/SKILL.md +0 -104
- package/skills/ask-sonner/evals/cases.yaml +0 -33
- package/skills/ask-sonner/references/api.md +0 -64
- package/skills/design-eng/SKILL.md +0 -88
- package/skills/design-eng/evals/cases.yaml +0 -36
- package/skills/find-animation-opportunities/SKILL.md +0 -150
- package/skills/find-animation-opportunities/evals/cases.yaml +0 -31
- package/skills/improve-animations/SKILL.md +0 -126
- package/skills/improve-animations/evals/cases.yaml +0 -31
- package/skills/improve-animations/references/audit.md +0 -115
- package/skills/improve-animations/references/plan-template.md +0 -73
- package/skills/pick-ui-library/SKILL.md +0 -101
- package/skills/pick-ui-library/evals/cases.yaml +0 -33
- package/skills/pick-ui-library/references/component-galleries.md +0 -59
- package/skills/prototype/SKILL.md +0 -113
- package/skills/prototype/evals/cases.yaml +0 -31
- package/skills/prototype/references/picker.md +0 -197
- package/skills/review-animations/SKILL.md +0 -188
- package/skills/review-animations/evals/cases.yaml +0 -34
- package/skills/review-animations/references/standards.md +0 -187
- package/skills/review-animations/scripts/verify.sh +0 -164
- package/skills/write-swift/SKILL.md +0 -413
- package/skills/write-swift/evals/cases.yaml +0 -36
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
<img src="https://raw.githubusercontent.com/ericrisco/rsc-harness/main/site/og.png" alt="rsc — your agent needs a memory (02-DOCS/, or it invents what it cannot remember), arms (01-TOOLS/, or it never touches your database), a trade (
|
|
3
|
+
<img src="https://raw.githubusercontent.com/ericrisco/rsc-harness/main/site/og.png" alt="rsc — your agent needs a memory (02-DOCS/, or it invents what it cannot remember), arms (01-TOOLS/, or it never touches your database), a trade (272 skills, or it guesses how the job is done), and reflexes (deterministic hooks, or it forgets the rule mid-session). One meta-harness for 17 coding assistants." width="960">
|
|
4
4
|
|
|
5
|
-
# `rsc` —
|
|
5
|
+
# `rsc` — 272 skills, 33 agents, one CLI
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/@ericrisco/rsc)
|
|
8
8
|
[](https://www.npmjs.com/package/@ericrisco/rsc)
|
|
9
|
-
[](#the-catalog)
|
|
10
10
|
[](LICENSE)
|
|
11
11
|
[](https://github.com/ericrisco/rsc-harness/stargazers)
|
|
12
12
|
|
|
@@ -17,7 +17,7 @@ skills that fit — one at a time — into every assistant you pick, and keeps t
|
|
|
17
17
|
equipped as you work.
|
|
18
18
|
|
|
19
19
|
From *"document my company"* to *"ship a FastAPI service"* to *"grow my YouTube
|
|
20
|
-
channel"* — **
|
|
20
|
+
channel"* — **272 skills across 23 domains**, every one researched against live
|
|
21
21
|
2025-2026 sources and **adversarially scored ≥ 8.5/10** before it shipped.
|
|
22
22
|
|
|
23
23
|
```bash
|
|
@@ -26,7 +26,7 @@ npx @ericrisco/rsc # plain-language wizard — no jargon, installs wh
|
|
|
26
26
|
|
|
27
27
|
<br>
|
|
28
28
|
|
|
29
|
-
<img src="https://raw.githubusercontent.com/ericrisco/rsc-harness/main/site/meta-harness.png" alt="rsc — the model (Claude, GPT, Gemini) is the brain your coding agent rents, and you already have that. Claude Code, Codex and opencode sit in the middle. Below them the rsc meta-harness adds everything the model lacks: memory (02-DOCS/) so it stops inventing, arms (01-TOOLS/) so it can execute, a trade (
|
|
29
|
+
<img src="https://raw.githubusercontent.com/ericrisco/rsc-harness/main/site/meta-harness.png" alt="rsc — the model (Claude, GPT, Gemini) is the brain your coding agent rents, and you already have that. Claude Code, Codex and opencode sit in the middle. Below them the rsc meta-harness adds everything the model lacks: memory (02-DOCS/) so it stops inventing, arms (01-TOOLS/) so it can execute, a trade (272 skills) so it stops guessing, and reflexes (deterministic hooks) so it cannot forget the rule mid-session." width="960">
|
|
30
30
|
|
|
31
31
|
**The model is the only part your agent already has.** `rsc` is the meta-harness that adds
|
|
32
32
|
the rest: a **memory** so it stops inventing, **arms** so it can execute, a **trade** so it stops
|
|
@@ -75,6 +75,12 @@ one is the opposite bet:
|
|
|
75
75
|
- **Not code-only.** First-class support for running a *company*: bookkeeping,
|
|
76
76
|
invoicing, hiring, GDPR, pitch decks, SEO, a YouTube/TikTok/LinkedIn presence —
|
|
77
77
|
each wired to a `02-DOCS/` knowledge loop that learns from your own results.
|
|
78
|
+
- **Specialists follow the stack.** The four base agents stay small; installing a
|
|
79
|
+
supported stack adds only its reviewer and build resolver. `rsc add go`, for
|
|
80
|
+
example, adds the Go pair without pulling reviewers for every other language.
|
|
81
|
+
- **A new local session continues the old one.** Claude Code, Codex, Gemini CLI
|
|
82
|
+
and OpenCode load a bounded checkpoint for the current branch and worktree at
|
|
83
|
+
session start. Cursor desktop uses an assisted read-before-action fallback.
|
|
78
84
|
- **Honestly good.** Every skill was built by a research → spec → implement →
|
|
79
85
|
*adversarial review* pipeline and had to clear an objective rubric
|
|
80
86
|
(`scripts/skill-rubric.md`, written *before* any skill existed). The bar was
|
|
@@ -85,6 +91,30 @@ over: you start with a tiny floor and grow one piece at a time.
|
|
|
85
91
|
|
|
86
92
|
---
|
|
87
93
|
|
|
94
|
+
## New sessions pick up the latest local work
|
|
95
|
+
|
|
96
|
+
On supported local targets, rsc checkpoints observable repository state at safe
|
|
97
|
+
boundaries: branch, worktree, HEAD, changed paths, commits and SDD ledger status.
|
|
98
|
+
When a new session opens in the same checkout, that state is injected before the
|
|
99
|
+
first agent action. A completed edit is preserved even if the previous client
|
|
100
|
+
closed before its normal session-end event.
|
|
101
|
+
|
|
102
|
+
- **Full:** Claude Code, Codex, Gemini CLI and OpenCode. Codex asks you to inspect
|
|
103
|
+
and trust the project hook once with `/hooks`; until then `doctor` reports that
|
|
104
|
+
trust is still required.
|
|
105
|
+
- **Assisted:** Cursor desktop. Its start hook is fire-and-forget, so rsc also
|
|
106
|
+
installs a local always-on rule that performs the read before acting.
|
|
107
|
+
- **Never cloud:** Cursor Cloud, Codex Cloud, remote agents, cloud storage and
|
|
108
|
+
synchronization are intentionally unsupported. The memory runtime makes no
|
|
109
|
+
network request.
|
|
110
|
+
|
|
111
|
+
The journal never stores prompts, responses, tool output, file contents or
|
|
112
|
+
secrets. It stays in a git-excluded project-local path, retains 30 days, and
|
|
113
|
+
injects at most 4,096 bytes. Disable every memory surface for a project with
|
|
114
|
+
`rsc memory off`; re-enable it with `rsc memory on`.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
88
118
|
## Install
|
|
89
119
|
|
|
90
120
|
```bash
|
|
@@ -130,6 +160,9 @@ Everything stays **in the project**, and the real skill files are written
|
|
|
130
160
|
**once** to `.rsc/skills/<id>/`. Each assistant you pick gets a lightweight
|
|
131
161
|
symlink back to that shared base — no copy is duplicated across IDEs. (If the
|
|
132
162
|
filesystem can't symlink, it falls back to a real copy automatically.)
|
|
163
|
+
On targets with file-based agents, the four base agents are installed too;
|
|
164
|
+
stack specialists remain selective. Native command targets receive only entry
|
|
165
|
+
points whose backing skill, agent or local-memory capability actually exists.
|
|
133
166
|
|
|
134
167
|
---
|
|
135
168
|
|
|
@@ -140,7 +173,7 @@ $ rsc
|
|
|
140
173
|
██████╗ ███████╗ ██████╗ ← animated gradient wordmark
|
|
141
174
|
██╔══██╗██╔════╝██╔════╝
|
|
142
175
|
██████╔╝███████╗██║
|
|
143
|
-
|
|
176
|
+
272 skills · one CLI · zero bloat
|
|
144
177
|
|
|
145
178
|
What do you want to do? ↑↓ move · enter select
|
|
146
179
|
❯ Base install — the essentials (8 skills)
|
|
@@ -188,12 +221,18 @@ rsc add youtube-api remotion-video # …grow a channel, edit with Remotion
|
|
|
188
221
|
rsc add fastapi --target claude,codex # install into several assistants at once
|
|
189
222
|
rsc install --profile minimal # the base: orient + suggest + bro + unslop + show-me + eli5 + harness + init
|
|
190
223
|
rsc install --profile core # floor + the full SDD workflow
|
|
191
|
-
rsc install --profile full # everything (all
|
|
224
|
+
rsc install --profile full # everything (all 272 skills)
|
|
192
225
|
rsc install --profile full --without go
|
|
193
226
|
rsc consult "I want to launch a SaaS" # recommend only, no install
|
|
194
227
|
rsc registry refresh # write .rsc/skill-registry.{json,md}
|
|
195
|
-
rsc list #
|
|
196
|
-
rsc
|
|
228
|
+
rsc list # installed skills, agents and commands
|
|
229
|
+
rsc capabilities # installed/available surfaces + memory mode
|
|
230
|
+
rsc doctor # health, missing backing, hooks and local memory
|
|
231
|
+
rsc memory status # full / assisted / unsupported / degraded
|
|
232
|
+
rsc memory save --session handoff # force a deterministic local checkpoint
|
|
233
|
+
rsc memory resume # print this branch/worktree continuation
|
|
234
|
+
rsc memory learn --text "…" --evidence "…" --confidence 0.8 --approve
|
|
235
|
+
rsc memory off # disable hooks, commands and injection project-wide
|
|
197
236
|
rsc sync --target claude,codex # refresh managed skills/hooks from the current package version
|
|
198
237
|
rsc backups # list project-local snapshots
|
|
199
238
|
rsc restore latest --dry-run # preview restoring the newest snapshot
|
|
@@ -221,7 +260,8 @@ The harness travels by git, but not all of it — and the split is the point.
|
|
|
221
260
|
|
|
222
261
|
| | Why |
|
|
223
262
|
| --- | --- |
|
|
224
|
-
| `.rsc/` | Machine state: hook scripts, seals, logs |
|
|
263
|
+
| `.rsc/` | Machine state: hook scripts, seals, logs and fallback session memory |
|
|
264
|
+
| `02-DOCS/raw/worklog/.rsc-memory/` | Preferred session journal when a local wiki exists; protected with git's local exclude |
|
|
225
265
|
| The skill entries rsc manages | Symlinks on macOS/Linux, real copies on Windows — two incompatible shapes of one thing |
|
|
226
266
|
|
|
227
267
|
Whoever clones runs **one command** and ends up with the same harness:
|
|
@@ -323,7 +363,7 @@ just asks in plain language.
|
|
|
323
363
|
|
|
324
364
|
## The catalog
|
|
325
365
|
|
|
326
|
-
|
|
366
|
+
272 skills, grouped by what you're trying to do. Click any skill to read its
|
|
327
367
|
`SKILL.md`. It fires on its own when a task matches.
|
|
328
368
|
|
|
329
369
|
### 🧭 Core & control plane
|
|
@@ -414,11 +454,11 @@ Train and adapt open models end to end: classic ML, deep learning, NLP, fine-tun
|
|
|
414
454
|
|
|
415
455
|
### 🗣️ Languages
|
|
416
456
|
|
|
417
|
-
[typescript](skills/typescript/) · [python](skills/python/) · [java](skills/java/) · [csharp-dotnet](skills/csharp-dotnet/) · [php](skills/php/) · [ruby](skills/ruby/) · [cpp](skills/cpp/) · [elixir](skills/elixir/) · [bash-scripting](skills/bash-scripting/) · [sql](skills/sql/) · [go](skills/go/)
|
|
457
|
+
[typescript](skills/typescript/) · [python](skills/python/) · [java](skills/java/) · [csharp-dotnet](skills/csharp-dotnet/) · [php](skills/php/) · [ruby](skills/ruby/) · [cpp](skills/cpp/) · [elixir](skills/elixir/) · [bash-scripting](skills/bash-scripting/) · [sql](skills/sql/) · [go](skills/go/)
|
|
418
458
|
|
|
419
459
|
### 🏗️ Frameworks & app stacks
|
|
420
460
|
|
|
421
|
-
[fastapi](skills/fastapi/) · [nextjs](skills/nextjs/) · [react](skills/react/) · [react-native](skills/react-native/) · [vue-nuxt](skills/vue-nuxt/) · [angular](skills/angular/) · [svelte](skills/svelte/) · [astro](skills/astro/) · [solid-js](skills/solid-js/) · [htmx](skills/htmx/) · [nodejs](skills/nodejs/) · [nestjs](skills/nestjs/) · [django](skills/django/) · [laravel](skills/laravel/) · [rails](skills/rails/) · [spring-boot](skills/spring-boot/) · [phoenix](skills/phoenix/) · [flutter](skills/flutter/) · [swift-ios](skills/swift-ios/) · [kotlin-android](skills/kotlin-android/) · [compose-multiplatform](skills/compose-multiplatform/) · [expo](skills/expo/) · [tauri](skills/tauri/) · [electron](skills/electron/) · [rust](skills/rust/) · [wordpress](skills/wordpress/) · [shopify](skills/shopify/) · [no-code-app](skills/no-code-app/) · [chrome-extension](skills/chrome-extension/) · [api-design](skills/api-design/)
|
|
461
|
+
[fastapi](skills/fastapi/) · [nextjs](skills/nextjs/) · [react](skills/react/) · [react-native](skills/react-native/) · [vue-nuxt](skills/vue-nuxt/) · [angular](skills/angular/) · [svelte](skills/svelte/) · [astro](skills/astro/) · [solid-js](skills/solid-js/) · [htmx](skills/htmx/) · [nodejs](skills/nodejs/) · [nestjs](skills/nestjs/) · [django](skills/django/) · [laravel](skills/laravel/) · [rails](skills/rails/) · [spring-boot](skills/spring-boot/) · [phoenix](skills/phoenix/) · [flutter](skills/flutter/) · [swift-ios](skills/swift-ios/) · [kotlin-android](skills/kotlin-android/) · [compose-multiplatform](skills/compose-multiplatform/) · [expo](skills/expo/) · [tauri](skills/tauri/) · [electron](skills/electron/) · [rust](skills/rust/) · [wordpress](skills/wordpress/) · [shopify](skills/shopify/) · [no-code-app](skills/no-code-app/) · [chrome-extension](skills/chrome-extension/) · [api-design](skills/api-design/)
|
|
422
462
|
|
|
423
463
|
### 🎮 Game development
|
|
424
464
|
|
|
@@ -444,7 +484,7 @@ Three engines + engine-agnostic disciplines. Every engine skill pins the current
|
|
|
444
484
|
|
|
445
485
|
### 🌀 Motion & interface craft
|
|
446
486
|
|
|
447
|
-
[
|
|
487
|
+
[motion-craft](skills/motion-craft/) · [ui-engineering](skills/ui-engineering/) · [variant-explorer](skills/variant-explorer/)
|
|
448
488
|
|
|
449
489
|
### 🎨 Design & content craft
|
|
450
490
|
|
|
@@ -486,6 +526,24 @@ duplicated. The wizard asks which ones; `--target a,b` does it non-interactively
|
|
|
486
526
|
> `codex`, `zed`, `amp`, `opencode` and `jules` all share the one root
|
|
487
527
|
> `AGENTS.md`; the block is idempotent, so picking several writes it once.
|
|
488
528
|
|
|
529
|
+
The richer surfaces are intentionally narrower than skill support:
|
|
530
|
+
|
|
531
|
+
| Targets | Stack agents | Native commands | Local session continuation |
|
|
532
|
+
| --- | --- | --- | --- |
|
|
533
|
+
| Claude Code | yes | agent + memory entries; skills already invoke natively | full |
|
|
534
|
+
| Codex | yes | no separate project-command surface | full after `/hooks` trust |
|
|
535
|
+
| Cursor desktop | yes | yes | assisted |
|
|
536
|
+
| Gemini CLI, OpenCode | yes | yes | full |
|
|
537
|
+
| GitHub Copilot | yes | yes | unsupported |
|
|
538
|
+
| Junie, Kiro | yes | unsupported | unsupported |
|
|
539
|
+
| Windsurf, Cline, Roo | unsupported | yes | unsupported |
|
|
540
|
+
| Antigravity, Zed, Continue, Amp, Jules, Aider | unsupported | unsupported | unsupported |
|
|
541
|
+
|
|
542
|
+
`manifest.json` is the generated public inventory: 33 agents (4 base + 29
|
|
543
|
+
selective specialists) and 53 command entries (20 fixed + 33 stack aliases).
|
|
544
|
+
Unsupported means rsc writes nothing for that surface; it does not emulate a
|
|
545
|
+
provider feature with an unverified file.
|
|
546
|
+
|
|
489
547
|
---
|
|
490
548
|
|
|
491
549
|
## Skill format
|