@lifeaitools/rdc-skills 0.9.23 → 0.9.25
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/.claude-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/commands/design.md +1 -1
- package/package.json +2 -2
- package/scripts/rdc-design-cli.mjs +12 -12
- package/skills/design/SKILL.md +87 -13
- package/skills/design/reference/ownership.md +16 -0
- package/skills/design/reference/studio-model.md +1 -1
- package/skills/design/reference/lineage.md +0 -31
package/README.md
CHANGED
package/commands/design.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rdc:design
|
|
3
3
|
description: >-
|
|
4
|
-
Usage `rdc:design <command|brief>` — RDC-owned design skill for Studio, Palette Library, token-aware UI work, and Rampa CLI-assisted color systems.
|
|
4
|
+
Usage `rdc:design <command|brief>` — RDC-owned design skill for Studio, Palette Library, token-aware UI work, and Rampa CLI-assisted color systems.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
> **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifeaitools/rdc-skills",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.25",
|
|
4
4
|
"description": "RDC typed-agent dispatch skill suite for Claude Code — plan, build, review, overnight builds",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"type": "plugin",
|
|
20
20
|
"skills": "skills/",
|
|
21
21
|
"guides": "guides/",
|
|
22
|
-
"version": "0.9.
|
|
22
|
+
"version": "0.9.25",
|
|
23
23
|
"commands": "commands/"
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
@@ -15,16 +15,16 @@ const command = cleanArgs[0] || "help";
|
|
|
15
15
|
const brief = cleanArgs.slice(1).join(" ").trim();
|
|
16
16
|
|
|
17
17
|
const commandRefs = {
|
|
18
|
-
studio: ["studio-model", "
|
|
19
|
-
tokens: ["studio-model", "
|
|
20
|
-
palette: ["studio-model", "rampa", "
|
|
21
|
-
theme: ["studio-model", "rampa", "
|
|
22
|
-
colorize: ["rampa", "studio-model", "
|
|
23
|
-
audit: ["studio-model", "
|
|
24
|
-
critique: ["studio-model", "
|
|
25
|
-
polish: ["studio-model", "
|
|
26
|
-
craft: ["studio-model", "rampa", "
|
|
27
|
-
help: ["
|
|
18
|
+
studio: ["studio-model", "ownership"],
|
|
19
|
+
tokens: ["studio-model", "ownership"],
|
|
20
|
+
palette: ["studio-model", "rampa", "ownership"],
|
|
21
|
+
theme: ["studio-model", "rampa", "ownership"],
|
|
22
|
+
colorize: ["rampa", "studio-model", "ownership"],
|
|
23
|
+
audit: ["studio-model", "ownership"],
|
|
24
|
+
critique: ["studio-model", "ownership"],
|
|
25
|
+
polish: ["studio-model", "ownership"],
|
|
26
|
+
craft: ["studio-model", "rampa", "ownership"],
|
|
27
|
+
help: ["ownership"],
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
function readText(path) {
|
|
@@ -56,7 +56,7 @@ function buildPrompt() {
|
|
|
56
56
|
const skillPath = join(skillRoot, "SKILL.md");
|
|
57
57
|
if (!existsSync(skillPath)) throw new Error(`Missing skill file: ${skillPath}`);
|
|
58
58
|
|
|
59
|
-
const refs = loadReferences(commandRefs[command] || ["studio-model", "
|
|
59
|
+
const refs = loadReferences(commandRefs[command] || ["studio-model", "ownership"]);
|
|
60
60
|
const skill = stripFrontmatter(readText(skillPath));
|
|
61
61
|
const refText = refs.map((ref) => `## Reference: ${ref.name}\n\n${ref.text}`).join("\n\n");
|
|
62
62
|
const target = brief || "(no brief supplied)";
|
|
@@ -77,7 +77,7 @@ function buildPrompt() {
|
|
|
77
77
|
"",
|
|
78
78
|
`Execute \`rdc:design ${command}\` for: ${target}`,
|
|
79
79
|
"",
|
|
80
|
-
"Return checklist-first output, cite concrete Studio files/routes/tables when relevant, and do not mutate
|
|
80
|
+
"Return checklist-first output, cite concrete Studio files/routes/tables when relevant, and do not mutate unrelated installed skills or vendor artifacts.",
|
|
81
81
|
].join("\n");
|
|
82
82
|
|
|
83
83
|
return { prompt, refs };
|
package/skills/design/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rdc:design
|
|
3
3
|
description: >-
|
|
4
|
-
Usage `rdc:design <command|brief>` — RDC-owned design skill for Studio, Palette Library, token-aware UI work, and Rampa CLI-assisted color systems.
|
|
4
|
+
Usage `rdc:design <command|brief>` — RDC-owned design skill for Studio, Palette Library, token-aware UI work, and Rampa CLI-assisted color systems.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
> **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
|
|
@@ -14,7 +14,7 @@ description: >-
|
|
|
14
14
|
|
|
15
15
|
# rdc:design — RDC Design Skill
|
|
16
16
|
|
|
17
|
-
RDC-owned design execution for Studio and LIFEAI interfaces. This skill is
|
|
17
|
+
RDC-owned design execution for Studio and LIFEAI interfaces. This skill is the Studio-aware design authority for RDC token, palette, theme, component, and local-debug work.
|
|
18
18
|
|
|
19
19
|
## When to Use
|
|
20
20
|
|
|
@@ -24,11 +24,10 @@ RDC-owned design execution for Studio and LIFEAI interfaces. This skill is inspi
|
|
|
24
24
|
- Agent-side color-system exploration using Rampa CLI
|
|
25
25
|
- Preparing token-aware implementation instructions for frontend/backend/data agents
|
|
26
26
|
|
|
27
|
-
Use the installed `impeccable` skill directly only when the task is a general upstream Impeccable workflow and does not need RDC Studio knowledge.
|
|
28
|
-
|
|
29
27
|
## Arguments
|
|
30
28
|
|
|
31
29
|
- `rdc:design` — show the command menu
|
|
30
|
+
- `rdc:design edit <target>` — start a local source-edit session for a URL, app, brand, route, or file
|
|
32
31
|
- `rdc:design studio <target>` — Studio-aware design task
|
|
33
32
|
- `rdc:design tokens <brand-or-route>` — token model, resolver, export, or governance task
|
|
34
33
|
- `rdc:design palette <brief>` — Palette Library or palette generation task
|
|
@@ -47,7 +46,7 @@ Load only what applies, but do not skip the Studio model for Studio/token/palett
|
|
|
47
46
|
|---|---|
|
|
48
47
|
| Studio, tokens, palettes, themes, editor | `skills/design/reference/studio-model.md` |
|
|
49
48
|
| Color generation, ramps, contrast, neutrals | `skills/design/reference/rampa.md` |
|
|
50
|
-
|
|
|
49
|
+
| Ownership, operating boundary, attribution files | `skills/design/reference/ownership.md` |
|
|
51
50
|
|
|
52
51
|
Project docs to read for Studio work:
|
|
53
52
|
|
|
@@ -59,8 +58,10 @@ Project docs to read for Studio work:
|
|
|
59
58
|
## Procedure
|
|
60
59
|
|
|
61
60
|
1. **Classify the task.**
|
|
61
|
+
- `edit` means start a local source-edit session. Do not show the generic command menu for `edit`.
|
|
62
62
|
- `studio`, `tokens`, `palette`, and `theme` always load the Studio model.
|
|
63
63
|
- `palette`, `theme`, and `colorize` also load the Rampa reference.
|
|
64
|
+
- Any task involving colors, palettes, ramps, contrast, neutrals, light/dark color pairs, status colors, chart colors, or theme colors loads the Rampa reference.
|
|
64
65
|
- `audit`, `critique`, `polish`, and `craft` load Studio model when the target is inside Studio or uses Studio tokens.
|
|
65
66
|
|
|
66
67
|
2. **Read the actual system context.**
|
|
@@ -74,24 +75,96 @@ Project docs to read for Studio work:
|
|
|
74
75
|
- Live editor: RDC Native Local Debug only — `/editor/local/*`, `/api/editor/local-debug`, `/studio/debug/*`, `/studio/claude/*`, and `scripts/studio-debug-poll.mjs`.
|
|
75
76
|
- Components: `@regen/ui`, Studio component registry, and existing local components.
|
|
76
77
|
|
|
77
|
-
4. **
|
|
78
|
+
4. **For `edit`, start the local session directly.**
|
|
79
|
+
- Intent syntax:
|
|
80
|
+
```powershell
|
|
81
|
+
rdc:design edit <url|domain|brand|app|file>
|
|
82
|
+
```
|
|
83
|
+
- Required variables:
|
|
84
|
+
- `target`
|
|
85
|
+
- `brandSlug`
|
|
86
|
+
- `appSlug`
|
|
87
|
+
- `repoRoot`
|
|
88
|
+
- `cwd`
|
|
89
|
+
- `connectorBaseUrl`
|
|
90
|
+
- `studioOrigin`
|
|
91
|
+
- `modeDefault`
|
|
92
|
+
- Fill missing variables from the obvious target mapping before asking:
|
|
93
|
+
- `test`, `studio_test`, `studio-test` -> `--brand test --app studio_test`
|
|
94
|
+
- `prt`, `prt-portal`, `prtrust.fund`, `dev.prtrust.fund` -> `--brand prt --app prt`
|
|
95
|
+
- If the target is a file path and brand/app are not obvious, ask one concise question for the missing brand/app. Do not search broadly or show the generic command menu.
|
|
96
|
+
- Canonical start call:
|
|
97
|
+
```powershell
|
|
98
|
+
curl.exe -s -X POST "http://127.0.0.1:52437/studio/debug/start" `
|
|
99
|
+
-H "Content-Type: application/json" `
|
|
100
|
+
-d "{\"brandSlug\":\"<brandSlug>\",\"appSlug\":\"<appSlug>\",\"repoRoot\":\"C:/Dev/regen-root\",\"cwd\":\"C:/Dev/regen-root\",\"modeDefault\":\"direct_edit\",\"startedBy\":\"claude-cli\"}"
|
|
101
|
+
```
|
|
102
|
+
- Expected successful response shape:
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"ok": true,
|
|
106
|
+
"sessionId": "studio-...",
|
|
107
|
+
"token": "...",
|
|
108
|
+
"devUrl": "http://localhost:3006",
|
|
109
|
+
"relayBaseUrl": "http://127.0.0.1:52437/studio/debug/studio-...",
|
|
110
|
+
"claudeBaseUrl": "http://127.0.0.1:52437/studio/claude/studio-...",
|
|
111
|
+
"pollCommand": "node scripts/studio-debug-poll.mjs --session ... --token ... --relay ..."
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
- Construct the Studio attach URL exactly:
|
|
115
|
+
```txt
|
|
116
|
+
http://localhost:3011/editor/local/<brandSlug>?attach=1&sessionId=<sessionId>&token=<token>
|
|
117
|
+
```
|
|
118
|
+
- Never send the user to `/editor/local/<brandSlug>` without `attach=1&sessionId=...&token=...`.
|
|
119
|
+
- Canonical poll call:
|
|
120
|
+
```powershell
|
|
121
|
+
curl.exe -s "http://127.0.0.1:52437/studio/claude/<sessionId>/poll?token=<token>&timeout=600000"
|
|
122
|
+
```
|
|
123
|
+
- Canonical reply call:
|
|
124
|
+
```powershell
|
|
125
|
+
curl.exe -s -X POST "http://127.0.0.1:52437/studio/claude/<sessionId>/reply" `
|
|
126
|
+
-H "Content-Type: application/json" `
|
|
127
|
+
-d "{\"token\":\"<token>\",\"eventId\":\"<eventId>\",\"status\":\"done\",\"message\":\"Edited <path>\",\"filesChanged\":[\"<path>\"]}"
|
|
128
|
+
```
|
|
129
|
+
- Allowed terminal statuses are `done`, `error`, `blocked`, and `needs_reference`.
|
|
130
|
+
- Convenience helper, equivalent to the canonical start call plus attach URL construction:
|
|
131
|
+
```powershell
|
|
132
|
+
node scripts/studio-debug-start.mjs --target <url|domain|brand|app|file> [--brand <slug>] [--app <slug>] [--mode direct_edit|variant_edit|reference_replace|note] [--studio-origin http://localhost:3011] [--connector http://127.0.0.1:52437] [--repo-root C:/Dev/regen-root] [--cwd C:/Dev/regen-root] [--dev-url <url>] [--dev-command <command>] [--no-launch]
|
|
133
|
+
```
|
|
134
|
+
- Helper output contract:
|
|
135
|
+
```txt
|
|
136
|
+
STUDIO_URL=http://localhost:3011/editor/local/<brandSlug>?attach=1&sessionId=...&token=...
|
|
137
|
+
POLL_COMMAND=node scripts/studio-debug-poll.mjs --session ... --token ... --relay ...
|
|
138
|
+
SESSION_FILE=.studio-debug/<sessionId>.json
|
|
139
|
+
```
|
|
140
|
+
- If using the helper, run:
|
|
141
|
+
```powershell
|
|
142
|
+
node scripts/studio-debug-start.mjs --target <target>
|
|
143
|
+
```
|
|
144
|
+
- Return `STUDIO_URL` and `POLL_COMMAND` to the user. If operating as Claude CLI, open or instruct opening `STUDIO_URL`, then run `POLL_COMMAND`.
|
|
145
|
+
- After an event is received, edit the source directly and reply with the helper or canonical reply call:
|
|
146
|
+
```powershell
|
|
147
|
+
node scripts/studio-debug-poll.mjs --session <sessionId> --token <token> --relay <claudeBaseUrl> --reply <eventId> done --file <path> --message "Edited <path>"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
5. **Use Rampa only as proposal tooling.**
|
|
78
151
|
- Run Rampa CLI for color ramps, APCA/WCAG checks, tinted neutrals, status palettes, or data-viz palettes.
|
|
79
152
|
- Treat output as draft design material.
|
|
80
153
|
- Persist only after mapping into Studio token roles or Palette Library payloads.
|
|
81
154
|
|
|
82
|
-
|
|
155
|
+
6. **Apply RDC design rules.**
|
|
83
156
|
- Use Studio tokens for production surfaces.
|
|
84
157
|
- Do not hardcode color/font/spacing when a token exists.
|
|
85
158
|
- Do not modify locked governance tokens.
|
|
86
159
|
- Keep product UIs compact, operational, and scannable.
|
|
87
160
|
- Avoid generic AI design patterns and card-heavy layouts.
|
|
88
161
|
|
|
89
|
-
|
|
162
|
+
7. **Plan edits before mutating files.**
|
|
90
163
|
- State the files/routes/tables involved.
|
|
91
164
|
- Use RDC work-item protocol for non-trivial implementation.
|
|
92
|
-
- Keep
|
|
165
|
+
- Keep unrelated installed skills and vendor artifacts untouched.
|
|
93
166
|
|
|
94
|
-
|
|
167
|
+
8. **Verify.**
|
|
95
168
|
- Run scoped tests only.
|
|
96
169
|
- For Studio: prefer route smoke checks, token API checks, and browser screenshots when UI changed.
|
|
97
170
|
- For CLI prompt work: run `node C:/Dev/rdc-skills/scripts/rdc-design-cli.mjs <command> <brief>` and inspect the generated report under `.rdc/reports/rdc-design-cli/`.
|
|
@@ -100,6 +173,7 @@ Project docs to read for Studio work:
|
|
|
100
173
|
|
|
101
174
|
| Command | Purpose |
|
|
102
175
|
|---|---|
|
|
176
|
+
| `edit` | Start a local source-edit session for a URL, app, brand, route, or file |
|
|
103
177
|
| `studio` | Studio-aware design/build task with token, route, and editor context |
|
|
104
178
|
| `tokens` | Diagnose or design token usage, resolver flow, API/export, governance |
|
|
105
179
|
| `palette` | Palette Library work, palette generation, external Palette Designer handoff |
|
|
@@ -130,9 +204,9 @@ Each run includes character count, word count, approximate token count, referenc
|
|
|
130
204
|
|
|
131
205
|
## Boundaries
|
|
132
206
|
|
|
133
|
-
- Do not edit installed
|
|
134
|
-
- Do not
|
|
135
|
-
- Do not use
|
|
207
|
+
- Do not edit unrelated installed skills.
|
|
208
|
+
- Do not rename this skill or create duplicate aliases for it.
|
|
209
|
+
- Do not use external live-edit runtimes as Studio's live-edit execution path.
|
|
136
210
|
- Do not persist Rampa output directly to production without Studio token mapping.
|
|
137
211
|
- Do not fork or ship Palette Designer until its license is verified.
|
|
138
212
|
- Do not use Studio's deprecated `/api/editor/render` route.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# RDC Design Ownership
|
|
2
|
+
|
|
3
|
+
RDC Design is the RDC-owned design skill for Studio and LIFEAI interface work.
|
|
4
|
+
|
|
5
|
+
## Operating Boundary
|
|
6
|
+
|
|
7
|
+
- Use this skill for Studio, tokens, palettes, themes, local-debug editing, and RDC product UI.
|
|
8
|
+
- Keep unrelated installed skills and vendor artifacts untouched.
|
|
9
|
+
- Keep third-party attribution in dedicated license or notice files on disk, not in operational skill prompts.
|
|
10
|
+
- Use Studio docs, Studio APIs, and token tables as the source of truth.
|
|
11
|
+
|
|
12
|
+
## Attribution Files
|
|
13
|
+
|
|
14
|
+
When a feature uses third-party code or derives from third-party implementation details, preserve attribution in repository license, notice, or readme files that ship with that artifact.
|
|
15
|
+
|
|
16
|
+
Operational skills should describe RDC-owned workflows directly so agents do not route Studio work through unrelated tools.
|
|
@@ -48,7 +48,7 @@ Clauth relay route families:
|
|
|
48
48
|
|
|
49
49
|
## Native Local Debug Model
|
|
50
50
|
|
|
51
|
-
Studio live editing must use the RDC-owned local debug system, not
|
|
51
|
+
Studio live editing must use the RDC-owned local debug system, not an external live-edit runtime:
|
|
52
52
|
|
|
53
53
|
1. Studio starts a local session with `POST /studio/debug/start`.
|
|
54
54
|
2. Studio embeds the returned local `devUrl` with debug query params.
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# RDC Design Lineage
|
|
2
|
-
|
|
3
|
-
RDC Design is inspired by and adapted from the Impeccable design workflow. Upstream Impeccable remains installed separately and untouched.
|
|
4
|
-
|
|
5
|
-
## Rules
|
|
6
|
-
|
|
7
|
-
- Keep the installed Impeccable skill available for direct use.
|
|
8
|
-
- Do not rename or overwrite installed Impeccable files.
|
|
9
|
-
- Do not create a second skill named `impeccable`.
|
|
10
|
-
- Use `rdc:design` for RDC, Studio, token, Palette Library, Rampa CLI, and LIFEAI interface work.
|
|
11
|
-
- Preserve third-party license and notice files if source material is forked or vendored.
|
|
12
|
-
|
|
13
|
-
## Attribution Text
|
|
14
|
-
|
|
15
|
-
Use this attribution in docs or NOTICE files when the implementation materially derives from Impeccable:
|
|
16
|
-
|
|
17
|
-
```text
|
|
18
|
-
RDC Design is inspired by and adapted from the Impeccable design workflow by Paul Bakaus.
|
|
19
|
-
Upstream Impeccable remains a separate installed skill.
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Practical Boundary
|
|
23
|
-
|
|
24
|
-
Concepts such as audit, polish, colorize, shape, craft, and anti-pattern checks are useful workflow patterns. RDC Design replaces the generic project model with RDC-specific knowledge:
|
|
25
|
-
|
|
26
|
-
- Studio as token authority
|
|
27
|
-
- Palette Library as palette persistence boundary
|
|
28
|
-
- Rampa CLI as proposal tooling
|
|
29
|
-
- RDC work-item protocol
|
|
30
|
-
- local Studio editor/debug routes
|
|
31
|
-
- real LIFEAI app and package paths
|