@lifeaitools/rdc-skills 0.25.9 → 0.26.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/.claude-plugin/plugin.json +1608 -1551
- package/.github/workflows/self-test.yml +34 -34
- package/CHANGELOG.md +332 -319
- package/MANIFEST.md +224 -224
- package/README.md +368 -367
- package/RELEASE.md +50 -45
- package/bin/rdc-skills-mcp.mjs +1 -1
- package/commands/build.md +181 -181
- package/commands/collab.md +180 -180
- package/commands/deploy.md +173 -148
- package/commands/fixit.md +150 -150
- package/commands/handoff.md +173 -173
- package/commands/overnight.md +220 -220
- package/commands/plan.md +158 -158
- package/commands/preplan.md +131 -131
- package/commands/prototype.md +145 -145
- package/commands/report.md +99 -99
- package/commands/review.md +120 -120
- package/commands/status.md +86 -86
- package/commands/workitems.md +127 -127
- package/deploy/install-systemd.sh +16 -0
- package/deploy/systemd/rdc-skills-mcp.service +19 -0
- package/git-sha.json +1 -1
- package/guides/agent-bootstrap.md +195 -195
- package/guides/agents/backend.md +102 -102
- package/guides/agents/content.md +94 -94
- package/guides/agents/cs2.md +56 -56
- package/guides/agents/data.md +86 -86
- package/guides/agents/design.md +77 -77
- package/guides/agents/frontend.md +91 -91
- package/guides/agents/infrastructure.md +81 -81
- package/guides/agents/setup.md +272 -272
- package/guides/agents/verify.md +119 -119
- package/guides/agents/viz.md +106 -106
- package/guides/orchestration-epic.md +17 -0
- package/hooks/check-rdc-environment.js +172 -318
- package/hooks/lib/box-lock.js +28 -8
- package/package.json +1 -2
- package/scripts/install-rdc-skills.js +1244 -1474
- package/scripts/probe-installed-hooks.mjs +2 -2
- package/scripts/self-test.mjs +1459 -1459
- package/scripts/validate-publish-manifests.js +502 -502
- package/skills/build/SKILL.md +662 -578
- package/skills/channel-formatter/SKILL.md +538 -538
- package/skills/collab/SKILL.md +239 -239
- package/skills/convert/SKILL.md +138 -138
- package/skills/deploy/SKILL.md +583 -541
- package/skills/design/SKILL.md +205 -205
- package/skills/env/SKILL.md +146 -139
- package/skills/fixit/SKILL.md +203 -203
- package/skills/handoff/SKILL.md +236 -236
- package/skills/housekeeping/SKILL.md +189 -189
- package/skills/onramp/SKILL.md +1459 -1459
- package/skills/overnight/SKILL.md +251 -251
- package/skills/plan/SKILL.md +345 -345
- package/skills/preplan/SKILL.md +90 -90
- package/skills/prototype/SKILL.md +150 -150
- package/skills/refactor/SKILL.md +51 -0
- package/skills/regen-media/SKILL.md +94 -94
- package/skills/release/SKILL.md +140 -140
- package/skills/report/SKILL.md +100 -100
- package/skills/review/SKILL.md +151 -151
- package/skills/self-test/SKILL.md +108 -108
- package/skills/status/SKILL.md +99 -99
- package/skills/tests/MATRIX.md +59 -55
- package/skills/tests/README.md +1 -1
- package/skills/tests/onramp.test.json +101 -87
- package/skills/tests/rdc-env.test.json +12 -0
- package/skills/tests/rdc-new-model.test.json +12 -0
- package/skills/tests/rdc-refactor.test.json +29 -0
- package/skills/tests/rdc-regen-media.test.json +29 -29
- package/skills/watch/SKILL.md +84 -84
- package/skills/workitems/SKILL.md +151 -151
- package/tests/no-local-pm2.test.mjs +45 -0
- package/scripts/local-install-with-stop.sh +0 -41
- package/scripts/probe-lock-holders.mjs +0 -36
- package/scripts/rebuild-mcp.mjs +0 -107
package/commands/collab.md
CHANGED
|
@@ -1,180 +1,180 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: rdc:collab
|
|
3
|
-
description: >-
|
|
4
|
-
Usage `rdc:collab --session <id>` — bidirectional relay with claude.ai. Read inbox, do work, write outbox, loop. Dave watches terminal and can interject.
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
> **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
|
|
8
|
-
> Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
|
|
9
|
-
> One checklist upfront, updated in place, shown again at end with a 1-line verdict.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
# /rdc:collab — Claude Code Collab Session Listener
|
|
13
|
-
> Invoked as: `/rdc:collab --session <session_id>`
|
|
14
|
-
> You are the build/execute half of a live collab session with claude.ai.
|
|
15
|
-
> Transport: file relay via `.rdc/relay/sessions/<id>/inbox/` + `outbox/`
|
|
16
|
-
> Dave is watching this terminal and can interject at any time.
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## What This Is
|
|
21
|
-
|
|
22
|
-
claude.ai writes tasks into your inbox. You read, act, commit, write the response
|
|
23
|
-
to outbox, and loop. clauth relays messages between claude.ai and this session via
|
|
24
|
-
the `chitchat_*` MCP tools. Dave can watch everything in this terminal and interject
|
|
25
|
-
by typing — treat anything Dave types as a high-priority override.
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## Step 1 — Parse session ID
|
|
30
|
-
|
|
31
|
-
Extract `--session <uuid>` from args.
|
|
32
|
-
|
|
33
|
-
If no `--session`, list `.rdc/relay/sessions/` and show available sessions.
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Step 2 — Initialize
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
sessionDir = .rdc/relay/sessions/<session_id>/
|
|
41
|
-
inbox = sessionDir/inbox/
|
|
42
|
-
outbox = sessionDir/outbox/
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Verify both dirs exist. If not:
|
|
46
|
-
```
|
|
47
|
-
Session directory not found. Run chitchat_start from claude.ai first.
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
Update `sessionDir/status.json`:
|
|
51
|
-
```json
|
|
52
|
-
{ "status": "active", "cli_connected_at": "<iso>", "session_id": "<id>" }
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Write a ready signal to outbox so claude.ai knows the CLI is connected:
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
outbox/<iso-ts>-ready.md
|
|
59
|
-
---
|
|
60
|
-
from: claude-code
|
|
61
|
-
to: claude-ai
|
|
62
|
-
session_id: <id>
|
|
63
|
-
type: ready
|
|
64
|
-
responded_at: <iso>
|
|
65
|
-
---
|
|
66
|
-
Claude Code connected. Ready to receive tasks.
|
|
67
|
-
cwd: <rootPath>
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
Print to terminal:
|
|
71
|
-
```
|
|
72
|
-
[rdc:collab] Session <id> active.
|
|
73
|
-
Inbox: .rdc/relay/sessions/<id>/inbox/
|
|
74
|
-
Outbox: .rdc/relay/sessions/<id>/outbox/
|
|
75
|
-
Waiting for messages from claude.ai... (Ctrl+C to end)
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Step 3 — Poll inbox
|
|
81
|
-
|
|
82
|
-
Scan `inbox/` for `.md` files that do NOT end in `.processed`. Sort ascending by name.
|
|
83
|
-
|
|
84
|
-
- **No files:** wait 5 seconds, poll again.
|
|
85
|
-
- **After 10 min idle:** print `[rdc:collab] Still listening...` heartbeat, keep waiting.
|
|
86
|
-
- **Files found:** process the oldest one first (Step 4).
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Step 4 — Process message
|
|
91
|
-
|
|
92
|
-
Read the file. Parse frontmatter `type` field.
|
|
93
|
-
|
|
94
|
-
**`type: stop`** → go to Step 6.
|
|
95
|
-
|
|
96
|
-
**Anything else (default: task/message):**
|
|
97
|
-
|
|
98
|
-
Print to terminal:
|
|
99
|
-
```
|
|
100
|
-
[rdc:collab] Turn <N> from claude.ai:
|
|
101
|
-
──────────────────────────────────────
|
|
102
|
-
<message body>
|
|
103
|
-
──────────────────────────────────────
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
Rename the inbox file to `<filename>.processed`.
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Step 5 — Do the work
|
|
111
|
-
|
|
112
|
-
Act on the message. Full Claude Code capabilities:
|
|
113
|
-
- File edits, git commits to `develop`
|
|
114
|
-
- Supabase RPC queries
|
|
115
|
-
- Type-checks: `npx tsc --noEmit` (never `pnpm build`)
|
|
116
|
-
- Run skills: `/rdc:plan`, `/rdc:fixit`, etc.
|
|
117
|
-
- Answer questions directly
|
|
118
|
-
|
|
119
|
-
Follow `.rdc/guides/agent-bootstrap.md` rules throughout.
|
|
120
|
-
|
|
121
|
-
When done, write response to outbox:
|
|
122
|
-
```
|
|
123
|
-
outbox/<iso-ts>-turn<N>.md
|
|
124
|
-
---
|
|
125
|
-
from: claude-code
|
|
126
|
-
to: claude-ai
|
|
127
|
-
session_id: <session_id>
|
|
128
|
-
turn: <N>
|
|
129
|
-
responded_at: <iso>
|
|
130
|
-
commits: <sha1, sha2 or none>
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
<what you did, what you found, any questions or decisions needed from claude.ai>
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Print to terminal:
|
|
137
|
-
```
|
|
138
|
-
[rdc:collab] Turn <N> done. Response written to outbox.
|
|
139
|
-
Waiting for next message...
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
Return to Step 3.
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## Step 6 — End session
|
|
147
|
-
|
|
148
|
-
Received `type: stop` in inbox, or Dave pressed Ctrl+C.
|
|
149
|
-
|
|
150
|
-
Write final summary to outbox:
|
|
151
|
-
```
|
|
152
|
-
outbox/<iso-ts>-final.md
|
|
153
|
-
---
|
|
154
|
-
from: claude-code
|
|
155
|
-
to: claude-ai
|
|
156
|
-
session_id: <session_id>
|
|
157
|
-
type: final
|
|
158
|
-
responded_at: <iso>
|
|
159
|
-
---
|
|
160
|
-
Session complete.
|
|
161
|
-
Turns: <N>
|
|
162
|
-
Commits: <list or none>
|
|
163
|
-
Open items: <anything unresolved>
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
Update `status.json` → `{ "status": "done", "ended_at": "<iso>" }`
|
|
167
|
-
|
|
168
|
-
Print:
|
|
169
|
-
```
|
|
170
|
-
[rdc:collab] Session ended.
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## Dave Interjections
|
|
176
|
-
|
|
177
|
-
If Dave types in this terminal during a turn:
|
|
178
|
-
- Treat it as an override injected into the current task
|
|
179
|
-
- Acknowledge it in your outbox response
|
|
180
|
-
- If it changes direction mid-task, note what you stopped and why
|
|
1
|
+
---
|
|
2
|
+
name: rdc:collab
|
|
3
|
+
description: >-
|
|
4
|
+
Usage `rdc:collab --session <id>` — bidirectional relay with claude.ai. Read inbox, do work, write outbox, loop. Dave watches terminal and can interject.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
|
|
8
|
+
> Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
|
|
9
|
+
> One checklist upfront, updated in place, shown again at end with a 1-line verdict.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# /rdc:collab — Claude Code Collab Session Listener
|
|
13
|
+
> Invoked as: `/rdc:collab --session <session_id>`
|
|
14
|
+
> You are the build/execute half of a live collab session with claude.ai.
|
|
15
|
+
> Transport: file relay via `.rdc/relay/sessions/<id>/inbox/` + `outbox/`
|
|
16
|
+
> Dave is watching this terminal and can interject at any time.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## What This Is
|
|
21
|
+
|
|
22
|
+
claude.ai writes tasks into your inbox. You read, act, commit, write the response
|
|
23
|
+
to outbox, and loop. clauth relays messages between claude.ai and this session via
|
|
24
|
+
the `chitchat_*` MCP tools. Dave can watch everything in this terminal and interject
|
|
25
|
+
by typing — treat anything Dave types as a high-priority override.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Step 1 — Parse session ID
|
|
30
|
+
|
|
31
|
+
Extract `--session <uuid>` from args.
|
|
32
|
+
|
|
33
|
+
If no `--session`, list `.rdc/relay/sessions/` and show available sessions.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Step 2 — Initialize
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
sessionDir = .rdc/relay/sessions/<session_id>/
|
|
41
|
+
inbox = sessionDir/inbox/
|
|
42
|
+
outbox = sessionDir/outbox/
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Verify both dirs exist. If not:
|
|
46
|
+
```
|
|
47
|
+
Session directory not found. Run chitchat_start from claude.ai first.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Update `sessionDir/status.json`:
|
|
51
|
+
```json
|
|
52
|
+
{ "status": "active", "cli_connected_at": "<iso>", "session_id": "<id>" }
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Write a ready signal to outbox so claude.ai knows the CLI is connected:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
outbox/<iso-ts>-ready.md
|
|
59
|
+
---
|
|
60
|
+
from: claude-code
|
|
61
|
+
to: claude-ai
|
|
62
|
+
session_id: <id>
|
|
63
|
+
type: ready
|
|
64
|
+
responded_at: <iso>
|
|
65
|
+
---
|
|
66
|
+
Claude Code connected. Ready to receive tasks.
|
|
67
|
+
cwd: <rootPath>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Print to terminal:
|
|
71
|
+
```
|
|
72
|
+
[rdc:collab] Session <id> active.
|
|
73
|
+
Inbox: .rdc/relay/sessions/<id>/inbox/
|
|
74
|
+
Outbox: .rdc/relay/sessions/<id>/outbox/
|
|
75
|
+
Waiting for messages from claude.ai... (Ctrl+C to end)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Step 3 — Poll inbox
|
|
81
|
+
|
|
82
|
+
Scan `inbox/` for `.md` files that do NOT end in `.processed`. Sort ascending by name.
|
|
83
|
+
|
|
84
|
+
- **No files:** wait 5 seconds, poll again.
|
|
85
|
+
- **After 10 min idle:** print `[rdc:collab] Still listening...` heartbeat, keep waiting.
|
|
86
|
+
- **Files found:** process the oldest one first (Step 4).
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Step 4 — Process message
|
|
91
|
+
|
|
92
|
+
Read the file. Parse frontmatter `type` field.
|
|
93
|
+
|
|
94
|
+
**`type: stop`** → go to Step 6.
|
|
95
|
+
|
|
96
|
+
**Anything else (default: task/message):**
|
|
97
|
+
|
|
98
|
+
Print to terminal:
|
|
99
|
+
```
|
|
100
|
+
[rdc:collab] Turn <N> from claude.ai:
|
|
101
|
+
──────────────────────────────────────
|
|
102
|
+
<message body>
|
|
103
|
+
──────────────────────────────────────
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Rename the inbox file to `<filename>.processed`.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Step 5 — Do the work
|
|
111
|
+
|
|
112
|
+
Act on the message. Full Claude Code capabilities:
|
|
113
|
+
- File edits, git commits to `develop`
|
|
114
|
+
- Supabase RPC queries
|
|
115
|
+
- Type-checks: `npx tsc --noEmit` (never `pnpm build`)
|
|
116
|
+
- Run skills: `/rdc:plan`, `/rdc:fixit`, etc.
|
|
117
|
+
- Answer questions directly
|
|
118
|
+
|
|
119
|
+
Follow `.rdc/guides/agent-bootstrap.md` rules throughout.
|
|
120
|
+
|
|
121
|
+
When done, write response to outbox:
|
|
122
|
+
```
|
|
123
|
+
outbox/<iso-ts>-turn<N>.md
|
|
124
|
+
---
|
|
125
|
+
from: claude-code
|
|
126
|
+
to: claude-ai
|
|
127
|
+
session_id: <session_id>
|
|
128
|
+
turn: <N>
|
|
129
|
+
responded_at: <iso>
|
|
130
|
+
commits: <sha1, sha2 or none>
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
<what you did, what you found, any questions or decisions needed from claude.ai>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Print to terminal:
|
|
137
|
+
```
|
|
138
|
+
[rdc:collab] Turn <N> done. Response written to outbox.
|
|
139
|
+
Waiting for next message...
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Return to Step 3.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Step 6 — End session
|
|
147
|
+
|
|
148
|
+
Received `type: stop` in inbox, or Dave pressed Ctrl+C.
|
|
149
|
+
|
|
150
|
+
Write final summary to outbox:
|
|
151
|
+
```
|
|
152
|
+
outbox/<iso-ts>-final.md
|
|
153
|
+
---
|
|
154
|
+
from: claude-code
|
|
155
|
+
to: claude-ai
|
|
156
|
+
session_id: <session_id>
|
|
157
|
+
type: final
|
|
158
|
+
responded_at: <iso>
|
|
159
|
+
---
|
|
160
|
+
Session complete.
|
|
161
|
+
Turns: <N>
|
|
162
|
+
Commits: <list or none>
|
|
163
|
+
Open items: <anything unresolved>
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Update `status.json` → `{ "status": "done", "ended_at": "<iso>" }`
|
|
167
|
+
|
|
168
|
+
Print:
|
|
169
|
+
```
|
|
170
|
+
[rdc:collab] Session ended.
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Dave Interjections
|
|
176
|
+
|
|
177
|
+
If Dave types in this terminal during a turn:
|
|
178
|
+
- Treat it as an override injected into the current task
|
|
179
|
+
- Acknowledge it in your outbox response
|
|
180
|
+
- If it changes direction mid-task, note what you stopped and why
|