@lifeaitools/rdc-skills 0.9.32 → 0.9.33

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.
Files changed (55) hide show
  1. package/.claude-plugin/plugin.json +24 -2
  2. package/.github/workflows/self-test.yml +34 -34
  3. package/MANIFEST.md +4 -0
  4. package/commands/build.md +183 -183
  5. package/commands/collab.md +180 -180
  6. package/commands/deploy.md +152 -152
  7. package/commands/fixit.md +116 -104
  8. package/commands/handoff.md +173 -173
  9. package/commands/overnight.md +220 -220
  10. package/commands/plan.md +158 -158
  11. package/commands/preplan.md +131 -131
  12. package/commands/prototype.md +145 -145
  13. package/commands/report.md +99 -99
  14. package/commands/review.md +120 -120
  15. package/commands/status.md +86 -86
  16. package/commands/workitems.md +132 -127
  17. package/guides/agent-bootstrap.md +265 -206
  18. package/guides/agents/backend.md +104 -104
  19. package/guides/agents/content.md +94 -94
  20. package/guides/agents/cs2.md +56 -56
  21. package/guides/agents/data.md +87 -87
  22. package/guides/agents/design.md +77 -77
  23. package/guides/agents/frontend.md +92 -92
  24. package/guides/agents/infrastructure.md +81 -81
  25. package/guides/agents/setup.md +279 -279
  26. package/guides/agents/verify.md +119 -119
  27. package/guides/agents/viz.md +106 -106
  28. package/hooks/foreground-process-gate.js +109 -0
  29. package/hooks/hook-logger.js +25 -0
  30. package/hooks/run-hidden-hook.ps1 +47 -0
  31. package/hooks/work-item-exit-gate.js +297 -0
  32. package/package.json +3 -3
  33. package/rules/work-items-rpc.md +56 -7
  34. package/scripts/install-rdc-skills.js +53 -9
  35. package/scripts/install.ps1 +17 -11
  36. package/scripts/self-test.mjs +1323 -1323
  37. package/skills/build/SKILL.md +355 -355
  38. package/skills/co-develop/SKILL.md +182 -0
  39. package/skills/collab/SKILL.md +217 -217
  40. package/skills/deploy/SKILL.md +198 -198
  41. package/skills/design/SKILL.md +211 -211
  42. package/skills/fixit/SKILL.md +132 -122
  43. package/skills/handoff/SKILL.md +200 -200
  44. package/skills/help/SKILL.md +104 -102
  45. package/skills/overnight/SKILL.md +224 -224
  46. package/skills/plan/SKILL.md +252 -251
  47. package/skills/preplan/SKILL.md +86 -86
  48. package/skills/prototype/SKILL.md +150 -150
  49. package/skills/release/SKILL.md +342 -342
  50. package/skills/report/SKILL.md +100 -100
  51. package/skills/review/SKILL.md +121 -120
  52. package/skills/self-test/SKILL.md +126 -126
  53. package/skills/status/SKILL.md +99 -97
  54. package/skills/watch/SKILL.md +91 -91
  55. package/skills/workitems/SKILL.md +151 -146
@@ -1,279 +1,279 @@
1
- > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
2
- > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
3
- > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
4
-
5
-
6
- > **Sandbox contract:** This guide honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
7
-
8
- # /rdc:setup — Intelligent Project Setup
9
-
10
- Scan the current project, detect all existing configuration, and generate (or update) `.rdc/config.json` and overlay guides. Works on both new and existing projects.
11
-
12
- ---
13
-
14
- ## Step 1 — Scan the project
15
-
16
- Read these files (all optional — use what exists):
17
-
18
- | File | What to extract |
19
- |------|----------------|
20
- | `package.json` | `name`, `description`, stack (next/vite/etc), monorepo? |
21
- | `pnpm-workspace.yaml` or `lerna.json` | monorepo structure |
22
- | `git remote get-url origin` | GitHub org + repo name |
23
- | `git branch -a` | main/develop/master detection |
24
- | `.env.local`, `apps/**/.env.local` | `NEXT_PUBLIC_SUPABASE_URL` → extract project ref |
25
- | `CLAUDE.md` | PROJECT_SCOPE, forbidden commands, branch rules, supabase ref |
26
- | `.claude/rules/*.md` | existing rule files, what systems are covered |
27
- | `docs/guides/agent-bootstrap.md` or `.rdc/guides/agent-bootstrap.md` | existing credentials pattern |
28
- | `.rdc/config.json` | already configured? just show current state + offer update |
29
- | `docs/guides/`, `docs/plans/`, `.rdc/guides/`, `.rdc/plans/` | existing directory structure (either layout) |
30
- | `apps/` or `sites/` | app names, ports from package.json `dev` scripts |
31
- | `supabase/migrations/` | schema exists? |
32
- | `tailwind.config.*` | Tailwind confirmed |
33
- | `vitest.config.*` or `jest.config.*` | test framework |
34
- | `.coolify/` or coolify deployment refs | deploy platform |
35
-
36
- Emit a structured summary of what you found:
37
- ```
38
- Detected:
39
- Project name : <name>
40
- GitHub : <org>/<repo>
41
- Supabase ref : <ref or "not found">
42
- Branches : main=<branch>, dev=<branch>
43
- Stack : <next.js 14 / vite / etc>
44
- Monorepo : yes/no (<tool>)
45
- Apps found : <list or "none">
46
- Guides dir : <.rdc/guides or docs/guides or "none">
47
- Existing cfg : yes/no
48
- Hook scope : <detected folder name or "unknown">
49
- ```
50
-
51
- ---
52
-
53
- ## Step 2 — Check for gaps
54
-
55
- List anything that was NOT found and ask the user to fill in:
56
-
57
- ```
58
- Missing (please provide):
59
- [ ] Project description
60
- [ ] Deploy platform / dashboard URL
61
- [ ] Forbidden commands beyond defaults?
62
- [ ] Any satellite repos (other GitHub repos in this project)?
63
- ```
64
-
65
- Keep questions to a minimum — only ask what can't be auto-detected.
66
-
67
- ---
68
-
69
- ## Step 3 — Generate .rdc/config.json
70
-
71
- Using all detected + user-supplied values, write `.rdc/config.json`:
72
-
73
- ```json
74
- {
75
- "name": "<slug>",
76
- "version": "1.0.0",
77
- "description": "<description>",
78
- "rdc_skills_version": ">=0.2.0",
79
- "hook_scope": "<project-folder-name>",
80
- "git": {
81
- "org": "<githubOrg>",
82
- "repo": "<githubRepo>",
83
- "main_branch": "<main>",
84
- "dev_branch": "<develop>",
85
- "auto_commit_branch": "<develop>"
86
- },
87
- "supabase": {
88
- "ref": "<ref>",
89
- "url": "https://<ref>.supabase.co",
90
- "mcp_server": "mcp__claude_ai_Supabase__execute_sql"
91
- },
92
- "credentials": {
93
- "provider": "clauth",
94
- "daemon_url": "http://127.0.0.1:52437",
95
- "env_paths": [".env.local"]
96
- },
97
- "repos": [
98
- { "path": ".", "role": "primary", "description": "<project name>" }
99
- ],
100
- "paths": {
101
- "guides": ".rdc/guides",
102
- "plans": ".rdc/plans",
103
- "reports": ".rdc/reports",
104
- "research": ".rdc/research",
105
- "state": ".rdc/state",
106
- "systems": "docs/systems"
107
- },
108
- "work_items": { "enabled": true },
109
- "constraints": {
110
- "forbidden_commands": ["pnpm build"],
111
- "typecheck_command": "npx tsc --noEmit",
112
- "test_command": "npx vitest run",
113
- "never_push_to": ["main"]
114
- }
115
- }
116
- ```
117
-
118
- If `.rdc/config.json` already exists, show a diff of proposed changes and ask before overwriting.
119
-
120
- ---
121
-
122
- ## Step 4 — Generate overlay guides
123
-
124
- Create `.rdc/guides/agent-bootstrap.md` if it doesn't exist:
125
-
126
- ```markdown
127
- # Agent Bootstrap — <Project Name>
128
- > Project overlay — extends rdc-skills base guide.
129
-
130
- ## Credentials
131
- curl -s http://127.0.0.1:52437/get/<service>
132
-
133
- ## Git Rules
134
- - Branch: `<devBranch>` for all work. `<mainBranch>` = production.
135
- - GitHub org: <githubOrg>
136
- - Auto-commit to `<devBranch>` after every logical block.
137
-
138
- ## Supabase
139
- Project ref: `<ref>`
140
- Use `mcp__claude_ai_Supabase__execute_sql` — no `project_id` needed.
141
-
142
- ## Work Items
143
- SELECT get_open_epics();
144
- SELECT insert_work_item(p_title := '...', p_priority := 'high');
145
- SELECT update_work_item_status('<id>'::uuid, 'done');
146
- Create work items BEFORE starting work.
147
-
148
- ## Completion Report
149
- After finishing work, output:
150
- ## Work Summary
151
- - Files changed: <list>
152
- - Tests: pass/fail
153
- - Work items updated: <list>
154
- - Committed: <sha>
155
- ```
156
-
157
- If `docs/guides/` or `.rdc/guides/` already has an `agent-bootstrap.md`, read it and preserve any custom sections — only add missing sections, don't overwrite existing ones.
158
-
159
- ---
160
-
161
- ## Step 5 — Offer to move docs/ dirs
162
-
163
- If `docs/guides/`, `docs/plans/`, `docs/reports/`, or `docs/research/` exist, ask:
164
-
165
- ```
166
- Found existing docs/ directories. Move to .rdc/ layout?
167
- docs/guides → .rdc/guides [Y/n]
168
- docs/plans → .rdc/plans [Y/n]
169
- docs/reports → .rdc/reports [Y/n]
170
- docs/research → .rdc/research [Y/n]
171
- ```
172
-
173
- Move only the directories the user confirms.
174
-
175
- ---
176
-
177
- ## Step 6 — Scaffold CLAUDE.ai.md and relay dirs
178
-
179
- Create `.rdc/relay/from-claude-ai/`, `.rdc/relay/from-claude-code/`, and `.rdc/relay/RELAY.md`.
180
-
181
- Create `CLAUDE.ai.md` in the project root if it doesn't exist:
182
-
183
- ```markdown
184
- # CLAUDE.ai — Startup Guide for claude.ai Sessions
185
- > Read this at the start of every claude.ai session on this repo.
186
-
187
- ## What You Are
188
-
189
- You are a claude.ai session — the **creative studio** in this stack. You produce artifacts,
190
- React prototypes, plans, copy, and designs. Claude Code CLI is the **build engine** — it runs
191
- agents, manages git, enforces hooks, and ships to production.
192
-
193
- **This is co-working, not handoff.** You produce real artifacts; Claude Code adapts and ships them.
194
-
195
- ## Startup Sequence — every session
196
-
197
- ```
198
- 1. fs_read CLAUDE.ai.md ← you are here
199
- 2. fs_read CLAUDE.md ← CLI routing, hard rules
200
- 3. SELECT get_open_epics() ← what's in flight
201
- 4. fs_list .rdc/relay/from-claude-code/ ← messages from Claude Code
202
- 5. fs_read apps/<app>/CLAUDE.md ← only if working in a specific app
203
- ```
204
-
205
- ## Capabilities
206
-
207
- | Capability | Tool |
208
- |-----------|------|
209
- | Read/write repo files | `fs_read`, `fs_write`, `fs_glob`, `fs_grep` |
210
- | Query Supabase | Supabase MCP `execute_sql` |
211
- | GitHub operations | Github Proxy MCP |
212
- | Credentials | clauth MCP `clauth_get` |
213
- | Trigger Claude Code | `monkey_dispatch` MCP |
214
-
215
- ## Two-Claude Relay
216
-
217
- Two channels to communicate with Claude Code:
218
-
219
- **File relay (async):** Write to `.rdc/relay/from-claude-ai/<timestamp>-<topic>.md`:
220
- ```
221
- ---
222
- from: claude-ai
223
- to: claude-code
224
- type: task | artifact
225
- topic: <slug>
226
- epic_id: <uuid>
227
- status: pending
228
- ---
229
- <agent prompt or artifact content>
230
- ```
231
-
232
- **Live dispatch (immediate):** Fire Claude Code directly:
233
- ```
234
- mcp__claude_ai_clauth__monkey_dispatch({
235
- prompt: "Read .rdc/guides/agent-bootstrap.md. Your task: ...",
236
- cwd: "<project root>"
237
- })
238
- ```
239
-
240
- Check `.rdc/relay/from-claude-code/` at startup for results and questions from Claude Code.
241
- Full protocol: `.rdc/relay/RELAY.md`
242
-
243
- ## Hard Rules
244
-
245
- - **NEVER run `pnpm build`** — crashes machine
246
- - **NEVER commit to `main`** — always `<devBranch>`
247
- - **NEVER start work without a work item**
248
- - **NEVER ask for credentials** — use clauth MCP directly
249
- ```
250
-
251
- If `CLAUDE.ai.md` already exists, read it first and add only the relay section if missing — do not overwrite existing content.
252
-
253
- ---
254
-
255
- ## Step 7 — Commit
256
-
257
- ```bash
258
- git add .rdc/ CLAUDE.ai.md
259
- git commit -m "feat(rdc): add .rdc/ config, guides, relay scaffold and CLAUDE.ai.md
260
-
261
- Generated by /rdc:setup scan.
262
-
263
- Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>"
264
- if [ "$RDC_TEST" != "1" ]; then
265
- git push origin <devBranch>
266
- else
267
- echo "[RDC_TEST] skipping git push origin <devBranch>"
268
- fi
269
- ```
270
-
271
- ---
272
-
273
- ## Output
274
-
275
- Report:
276
- - What was detected automatically
277
- - What was generated
278
- - What still needs manual attention (e.g. `deploy_dashboard_url`, `satellite_repos`)
279
- - Next step: `/rdc:status` to verify
1
+ > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
2
+ > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
3
+ > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
4
+
5
+
6
+ > **Sandbox contract:** This guide honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
7
+
8
+ # /rdc:setup — Intelligent Project Setup
9
+
10
+ Scan the current project, detect all existing configuration, and generate (or update) `.rdc/config.json` and overlay guides. Works on both new and existing projects.
11
+
12
+ ---
13
+
14
+ ## Step 1 — Scan the project
15
+
16
+ Read these files (all optional — use what exists):
17
+
18
+ | File | What to extract |
19
+ |------|----------------|
20
+ | `package.json` | `name`, `description`, stack (next/vite/etc), monorepo? |
21
+ | `pnpm-workspace.yaml` or `lerna.json` | monorepo structure |
22
+ | `git remote get-url origin` | GitHub org + repo name |
23
+ | `git branch -a` | main/develop/master detection |
24
+ | `.env.local`, `apps/**/.env.local` | `NEXT_PUBLIC_SUPABASE_URL` → extract project ref |
25
+ | `CLAUDE.md` | PROJECT_SCOPE, forbidden commands, branch rules, supabase ref |
26
+ | `.claude/rules/*.md` | existing rule files, what systems are covered |
27
+ | `docs/guides/agent-bootstrap.md` or `.rdc/guides/agent-bootstrap.md` | existing credentials pattern |
28
+ | `.rdc/config.json` | already configured? just show current state + offer update |
29
+ | `docs/guides/`, `docs/plans/`, `.rdc/guides/`, `.rdc/plans/` | existing directory structure (either layout) |
30
+ | `apps/` or `sites/` | app names, ports from package.json `dev` scripts |
31
+ | `supabase/migrations/` | schema exists? |
32
+ | `tailwind.config.*` | Tailwind confirmed |
33
+ | `vitest.config.*` or `jest.config.*` | test framework |
34
+ | `.coolify/` or coolify deployment refs | deploy platform |
35
+
36
+ Emit a structured summary of what you found:
37
+ ```
38
+ Detected:
39
+ Project name : <name>
40
+ GitHub : <org>/<repo>
41
+ Supabase ref : <ref or "not found">
42
+ Branches : main=<branch>, dev=<branch>
43
+ Stack : <next.js 14 / vite / etc>
44
+ Monorepo : yes/no (<tool>)
45
+ Apps found : <list or "none">
46
+ Guides dir : <.rdc/guides or docs/guides or "none">
47
+ Existing cfg : yes/no
48
+ Hook scope : <detected folder name or "unknown">
49
+ ```
50
+
51
+ ---
52
+
53
+ ## Step 2 — Check for gaps
54
+
55
+ List anything that was NOT found and ask the user to fill in:
56
+
57
+ ```
58
+ Missing (please provide):
59
+ [ ] Project description
60
+ [ ] Deploy platform / dashboard URL
61
+ [ ] Forbidden commands beyond defaults?
62
+ [ ] Any satellite repos (other GitHub repos in this project)?
63
+ ```
64
+
65
+ Keep questions to a minimum — only ask what can't be auto-detected.
66
+
67
+ ---
68
+
69
+ ## Step 3 — Generate .rdc/config.json
70
+
71
+ Using all detected + user-supplied values, write `.rdc/config.json`:
72
+
73
+ ```json
74
+ {
75
+ "name": "<slug>",
76
+ "version": "1.0.0",
77
+ "description": "<description>",
78
+ "rdc_skills_version": ">=0.2.0",
79
+ "hook_scope": "<project-folder-name>",
80
+ "git": {
81
+ "org": "<githubOrg>",
82
+ "repo": "<githubRepo>",
83
+ "main_branch": "<main>",
84
+ "dev_branch": "<develop>",
85
+ "auto_commit_branch": "<develop>"
86
+ },
87
+ "supabase": {
88
+ "ref": "<ref>",
89
+ "url": "https://<ref>.supabase.co",
90
+ "mcp_server": "mcp__claude_ai_Supabase__execute_sql"
91
+ },
92
+ "credentials": {
93
+ "provider": "clauth",
94
+ "daemon_url": "http://127.0.0.1:52437",
95
+ "env_paths": [".env.local"]
96
+ },
97
+ "repos": [
98
+ { "path": ".", "role": "primary", "description": "<project name>" }
99
+ ],
100
+ "paths": {
101
+ "guides": ".rdc/guides",
102
+ "plans": ".rdc/plans",
103
+ "reports": ".rdc/reports",
104
+ "research": ".rdc/research",
105
+ "state": ".rdc/state",
106
+ "systems": "docs/systems"
107
+ },
108
+ "work_items": { "enabled": true },
109
+ "constraints": {
110
+ "forbidden_commands": ["pnpm build"],
111
+ "typecheck_command": "npx tsc --noEmit",
112
+ "test_command": "npx vitest run",
113
+ "never_push_to": ["main"]
114
+ }
115
+ }
116
+ ```
117
+
118
+ If `.rdc/config.json` already exists, show a diff of proposed changes and ask before overwriting.
119
+
120
+ ---
121
+
122
+ ## Step 4 — Generate overlay guides
123
+
124
+ Create `.rdc/guides/agent-bootstrap.md` if it doesn't exist:
125
+
126
+ ```markdown
127
+ # Agent Bootstrap — <Project Name>
128
+ > Project overlay — extends rdc-skills base guide.
129
+
130
+ ## Credentials
131
+ curl -s http://127.0.0.1:52437/get/<service>
132
+
133
+ ## Git Rules
134
+ - Branch: `<devBranch>` for all work. `<mainBranch>` = production.
135
+ - GitHub org: <githubOrg>
136
+ - Auto-commit to `<devBranch>` after every logical block.
137
+
138
+ ## Supabase
139
+ Project ref: `<ref>`
140
+ Use `mcp__claude_ai_Supabase__execute_sql` — no `project_id` needed.
141
+
142
+ ## Work Items
143
+ SELECT get_open_epics();
144
+ SELECT insert_work_item(p_title := '...', p_priority := 'high');
145
+ SELECT update_work_item_status('<id>'::uuid, 'review', '["Implementation complete; ready for validator"]'::jsonb, '<agent-session-id>', 'agent');
146
+ Create work items BEFORE starting work.
147
+
148
+ ## Completion Report
149
+ After finishing work, output:
150
+ ## Work Summary
151
+ - Files changed: <list>
152
+ - Tests: pass/fail
153
+ - Work items updated: <list>
154
+ - Committed: <sha>
155
+ ```
156
+
157
+ If `docs/guides/` or `.rdc/guides/` already has an `agent-bootstrap.md`, read it and preserve any custom sections — only add missing sections, don't overwrite existing ones.
158
+
159
+ ---
160
+
161
+ ## Step 5 — Offer to move docs/ dirs
162
+
163
+ If `docs/guides/`, `docs/plans/`, `docs/reports/`, or `docs/research/` exist, ask:
164
+
165
+ ```
166
+ Found existing docs/ directories. Move to .rdc/ layout?
167
+ docs/guides → .rdc/guides [Y/n]
168
+ docs/plans → .rdc/plans [Y/n]
169
+ docs/reports → .rdc/reports [Y/n]
170
+ docs/research → .rdc/research [Y/n]
171
+ ```
172
+
173
+ Move only the directories the user confirms.
174
+
175
+ ---
176
+
177
+ ## Step 6 — Scaffold CLAUDE.ai.md and relay dirs
178
+
179
+ Create `.rdc/relay/from-claude-ai/`, `.rdc/relay/from-claude-code/`, and `.rdc/relay/RELAY.md`.
180
+
181
+ Create `CLAUDE.ai.md` in the project root if it doesn't exist:
182
+
183
+ ```markdown
184
+ # CLAUDE.ai — Startup Guide for claude.ai Sessions
185
+ > Read this at the start of every claude.ai session on this repo.
186
+
187
+ ## What You Are
188
+
189
+ You are a claude.ai session — the **creative studio** in this stack. You produce artifacts,
190
+ React prototypes, plans, copy, and designs. Claude Code CLI is the **build engine** — it runs
191
+ agents, manages git, enforces hooks, and ships to production.
192
+
193
+ **This is co-working, not handoff.** You produce real artifacts; Claude Code adapts and ships them.
194
+
195
+ ## Startup Sequence — every session
196
+
197
+ ```
198
+ 1. fs_read CLAUDE.ai.md ← you are here
199
+ 2. fs_read CLAUDE.md ← CLI routing, hard rules
200
+ 3. SELECT get_open_epics() ← what's in flight
201
+ 4. fs_list .rdc/relay/from-claude-code/ ← messages from Claude Code
202
+ 5. fs_read apps/<app>/CLAUDE.md ← only if working in a specific app
203
+ ```
204
+
205
+ ## Capabilities
206
+
207
+ | Capability | Tool |
208
+ |-----------|------|
209
+ | Read/write repo files | `fs_read`, `fs_write`, `fs_glob`, `fs_grep` |
210
+ | Query Supabase | Supabase MCP `execute_sql` |
211
+ | GitHub operations | Github Proxy MCP |
212
+ | Credentials | clauth MCP `clauth_get` |
213
+ | Trigger Claude Code | `monkey_dispatch` MCP |
214
+
215
+ ## Two-Claude Relay
216
+
217
+ Two channels to communicate with Claude Code:
218
+
219
+ **File relay (async):** Write to `.rdc/relay/from-claude-ai/<timestamp>-<topic>.md`:
220
+ ```
221
+ ---
222
+ from: claude-ai
223
+ to: claude-code
224
+ type: task | artifact
225
+ topic: <slug>
226
+ epic_id: <uuid>
227
+ status: pending
228
+ ---
229
+ <agent prompt or artifact content>
230
+ ```
231
+
232
+ **Live dispatch (immediate):** Fire Claude Code directly:
233
+ ```
234
+ mcp__claude_ai_clauth__monkey_dispatch({
235
+ prompt: "Read .rdc/guides/agent-bootstrap.md. Your task: ...",
236
+ cwd: "<project root>"
237
+ })
238
+ ```
239
+
240
+ Check `.rdc/relay/from-claude-code/` at startup for results and questions from Claude Code.
241
+ Full protocol: `.rdc/relay/RELAY.md`
242
+
243
+ ## Hard Rules
244
+
245
+ - **NEVER run `pnpm build`** — crashes machine
246
+ - **NEVER commit to `main`** — always `<devBranch>`
247
+ - **NEVER start work without a work item**
248
+ - **NEVER ask for credentials** — use clauth MCP directly
249
+ ```
250
+
251
+ If `CLAUDE.ai.md` already exists, read it first and add only the relay section if missing — do not overwrite existing content.
252
+
253
+ ---
254
+
255
+ ## Step 7 — Commit
256
+
257
+ ```bash
258
+ git add .rdc/ CLAUDE.ai.md
259
+ git commit -m "feat(rdc): add .rdc/ config, guides, relay scaffold and CLAUDE.ai.md
260
+
261
+ Generated by /rdc:setup scan.
262
+
263
+ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>"
264
+ if [ "$RDC_TEST" != "1" ]; then
265
+ git push origin <devBranch>
266
+ else
267
+ echo "[RDC_TEST] skipping git push origin <devBranch>"
268
+ fi
269
+ ```
270
+
271
+ ---
272
+
273
+ ## Output
274
+
275
+ Report:
276
+ - What was detected automatically
277
+ - What was generated
278
+ - What still needs manual attention (e.g. `deploy_dashboard_url`, `satellite_repos`)
279
+ - Next step: `/rdc:status` to verify