@lifeaitools/rdc-skills 0.24.37 → 0.24.39
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/settings.json +15 -15
- package/.claude-plugin/marketplace.json +21 -21
- package/.claude-plugin/plugin.json +1371 -1371
- package/.github/workflows/publish.yml +34 -34
- package/.github/workflows/self-test.yml +58 -58
- package/CHANGELOG.md +310 -310
- package/LICENSE +21 -21
- package/MANIFEST.md +221 -221
- package/README.md +377 -377
- package/README.sandbox.md +3 -3
- package/assets/watcher/viewer.html +164 -164
- package/bin/rdc-skills-mcp.mjs +316 -316
- package/commands/build.md +183 -183
- package/commands/collab.md +180 -180
- package/commands/deploy.md +152 -152
- package/commands/design.md +31 -31
- package/commands/edit.md +28 -28
- package/commands/fixit.md +124 -124
- package/commands/handoff.md +173 -173
- package/commands/help.md +95 -95
- 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/release.md +49 -49
- package/commands/report.md +99 -99
- package/commands/review.md +120 -120
- package/commands/self-test.md +113 -113
- package/commands/status.md +86 -86
- package/commands/watch.md +98 -98
- package/commands/workitems.md +137 -137
- package/git-sha.json +1 -1
- package/guides/agent-bootstrap.md +295 -295
- package/guides/agents/backend.md +104 -104
- package/guides/agents/content.md +94 -94
- package/guides/agents/cs2.md +56 -56
- package/guides/agents/data.md +87 -87
- package/guides/agents/design.md +77 -77
- package/guides/agents/frontend.md +92 -92
- package/guides/agents/infrastructure.md +81 -81
- package/guides/agents/setup.md +281 -281
- package/guides/agents/verify.md +151 -151
- package/guides/agents/viz.md +106 -106
- package/guides/backend.md +146 -146
- package/guides/content.md +147 -147
- package/guides/cs2.md +190 -190
- package/guides/data.md +123 -123
- package/guides/design.md +116 -116
- package/guides/engineering-behavior.md +43 -43
- package/guides/escalation-protocol.md +125 -125
- package/guides/frontend.md +151 -151
- package/guides/history-md-spec.md +297 -297
- package/guides/infrastructure.md +179 -179
- package/guides/lessons-learned-spec.md +153 -153
- package/guides/output-contract.md +108 -108
- package/guides/publish-md-spec.md +289 -289
- package/guides/rdc-skills-startup.md +30 -30
- package/guides/verify.md +11 -11
- package/hooks/check-cwd.js +31 -31
- package/hooks/check-rdc-environment.js +164 -164
- package/hooks/check-services.js +6 -6
- package/hooks/check-stale-work-items.js +19 -19
- package/hooks/foreground-process-gate.js +128 -128
- package/hooks/gate-watchdog-selfcheck.js +257 -257
- package/hooks/hook-logger.js +25 -25
- package/hooks/lib/run-evidence-gate.mjs +241 -241
- package/hooks/no-stop-open-epics.js +127 -127
- package/hooks/post-tool-batch-gate.js +203 -203
- package/hooks/post-work-check.js +21 -21
- package/hooks/postcompact-log.js +13 -13
- package/hooks/precompact-log.js +13 -13
- package/hooks/rate-limit-retry.js +46 -46
- package/hooks/rdc-invocation-marker.js +157 -157
- package/hooks/rdc-output-contract-gate.js +94 -94
- package/hooks/require-work-item-on-commit.js +294 -294
- package/hooks/restart-brief.js +19 -19
- package/hooks/run-hidden-hook.ps1 +47 -47
- package/hooks/task-completed-gate.js +274 -274
- package/hooks/work-item-exit-gate.js +944 -944
- package/lib/catalog.mjs +236 -236
- package/lib/cloud-rewrite.mjs +155 -155
- package/package.json +56 -56
- package/rules/work-items-rpc.md +520 -520
- package/scaffold/templates/HISTORY.md.template +39 -39
- package/scaffold/templates/PUBLISH.md.template +21 -21
- package/scaffold/templates/brochure-studio-default.html +70 -70
- package/scripts/acceptance.mjs +502 -502
- package/scripts/fixtures/guides/bad-guide.md +15 -15
- package/scripts/fixtures/guides-clean/good-guide.md +16 -16
- package/scripts/install-rdc-skills.js +1289 -1289
- package/scripts/install.ps1 +202 -202
- package/scripts/install.sh +132 -132
- package/scripts/lib/assertions.mjs +287 -287
- package/scripts/lib/manifest-schema.mjs +754 -754
- package/scripts/lib/runner.mjs +465 -465
- package/scripts/lib/sandbox.mjs +435 -435
- package/scripts/prepack.mjs +32 -32
- package/scripts/rdc-brochure.mjs +464 -464
- package/scripts/rdc-design-cli.mjs +134 -134
- package/scripts/rebuild-mcp.mjs +107 -107
- package/scripts/self-test.mjs +1460 -1460
- package/scripts/stamp-git-sha.mjs +29 -29
- package/scripts/test-guide-validator.mjs +196 -196
- package/scripts/test-rdc-hooks.mjs +145 -145
- package/scripts/uninstall.ps1 +77 -77
- package/scripts/uninstall.sh +69 -69
- package/scripts/update.ps1 +43 -43
- package/scripts/update.sh +43 -43
- package/scripts/validate-place-histories.js +461 -461
- package/scripts/validate-publish-manifests.js +424 -424
- package/scripts/watch-init.mjs +100 -100
- package/skills/brochure/SKILL.md +107 -107
- package/skills/build/SKILL.md +563 -554
- package/skills/channel-formatter/SKILL.md +533 -533
- package/skills/co-develop/SKILL.md +196 -196
- package/skills/collab/SKILL.md +239 -239
- package/skills/convert/SKILL.md +140 -140
- package/skills/deploy/SKILL.md +541 -541
- package/skills/design/SKILL.md +211 -211
- package/skills/design/reference/ownership.md +16 -16
- package/skills/design/reference/rampa.md +92 -92
- package/skills/design/reference/studio-model.md +153 -153
- package/skills/edit/SKILL.md +98 -98
- package/skills/fixit/SKILL.md +165 -165
- package/skills/fs-mcp/SKILL.md +148 -148
- package/skills/handoff/SKILL.md +236 -200
- package/skills/help/SKILL.md +143 -143
- package/skills/housekeeping/SKILL.md +189 -189
- package/skills/lifeai-brochure-author/SKILL.md +340 -340
- package/skills/overnight/SKILL.md +251 -251
- package/skills/plan/SKILL.md +345 -314
- package/skills/preplan/SKILL.md +90 -90
- package/skills/prototype/SKILL.md +150 -150
- package/skills/rdc-brochurify/SKILL.md +245 -245
- package/skills/rdc-extract-verifier-rules/SKILL.md +191 -191
- package/skills/release/SKILL.md +140 -140
- package/skills/report/SKILL.md +100 -100
- package/skills/review/SKILL.md +152 -152
- package/skills/rpms-filemap/SKILL.cloud.md +111 -111
- package/skills/rpms-filemap/SKILL.md +111 -111
- package/skills/self-test/SKILL.md +132 -132
- package/skills/status/SKILL.md +99 -99
- package/skills/terminal-config/SKILL.md +62 -62
- package/skills/tests/MATRIX.md +54 -54
- package/skills/tests/README.md +47 -47
- package/skills/tests/rdc-brochure.test.json +34 -34
- package/skills/tests/rdc-build.test.json +36 -36
- package/skills/tests/rdc-channel-formatter.test.json +45 -45
- package/skills/tests/rdc-co-develop.test.json +29 -29
- package/skills/tests/rdc-collab.test.json +29 -29
- package/skills/tests/rdc-convert.test.json +35 -35
- package/skills/tests/rdc-deploy.test.json +30 -30
- package/skills/tests/rdc-design.test.json +27 -27
- package/skills/tests/rdc-edit.test.json +29 -29
- package/skills/tests/rdc-fixit.test.json +36 -36
- package/skills/tests/rdc-fs-mcp.test.json +36 -36
- package/skills/tests/rdc-handoff.test.json +28 -28
- package/skills/tests/rdc-help.test.json +29 -29
- package/skills/tests/rdc-housekeeping.test.json +31 -31
- package/skills/tests/rdc-lifeai-brochure-author.test.json +35 -35
- package/skills/tests/rdc-overnight.test.json +37 -37
- package/skills/tests/rdc-plan.test.json +27 -27
- package/skills/tests/rdc-preplan.test.json +31 -31
- package/skills/tests/rdc-prototype.test.json +28 -28
- package/skills/tests/rdc-rdc-brochurify.test.json +23 -23
- package/skills/tests/rdc-rdc-extract-verifier-rules.test.json +34 -34
- package/skills/tests/rdc-release.test.json +29 -29
- package/skills/tests/rdc-report.test.json +28 -28
- package/skills/tests/rdc-review.test.json +29 -29
- package/skills/tests/rdc-rpms-filemap.test.json +28 -28
- package/skills/tests/rdc-self-test.test.json +24 -24
- package/skills/tests/rdc-status.test.json +29 -29
- package/skills/tests/rdc-terminal-config.test.json +29 -29
- package/skills/tests/rdc-watch.test.json +24 -24
- package/skills/tests/rdc-workitems.test.json +27 -27
- package/skills/watch/SKILL.md +97 -97
- package/skills/workitems/SKILL.md +151 -151
- package/tests/acceptance.test.mjs +59 -59
- package/tests/channel-formatter.contract.test.mjs +251 -251
- package/tests/curl-surface.test.mjs +289 -289
- package/tests/harness-gates.test.mjs +325 -325
- package/tests/help-surface.test.mjs +61 -61
- package/tests/install-rdc-skills.test.mjs +49 -49
- package/tests/manifest-contract-fields.test.mjs +78 -78
- package/tests/mcp.test.mjs +271 -271
- package/tests/require-work-item-on-commit.test.mjs +162 -162
- package/tests/run-evidence-gate.test.mjs +82 -82
- package/tests/skill-test-matrix.test.mjs +66 -66
- package/tests/validate-skills.js +27 -27
- package/tests/work-item-exit-gate-l2.test.mjs +368 -368
- package/tests/work-item-exit-gate-l3.test.mjs +197 -197
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
|
package/commands/deploy.md
CHANGED
|
@@ -1,152 +1,152 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: rdc:deploy
|
|
3
|
-
description: >-
|
|
4
|
-
Coolify ops. Usage `rdc:deploy <slug> [build-id]` or `rdc:deploy new <slug>` or `rdc:deploy diagnose <slug>` or `rdc:deploy audit [--fix]` — type checklists, DNS decision tree, mandatory post-deploy gate. Checklist-only output.
|
|
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:deploy — Coolify Operations
|
|
13
|
-
|
|
14
|
-
**READ FIRST:** `guides/output-contract.md`. Checklist-only output. No narration.
|
|
15
|
-
No raw MCP dumps. No UUIDs unless asked.
|
|
16
|
-
|
|
17
|
-
> **Sandbox contract:** This skill honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
|
|
18
|
-
>
|
|
19
|
-
> *Under `$RDC_TEST=1`:* Modes 1 (deploy) and 2 (new) are **entirely skipped** — echo `[RDC_TEST] skipping Coolify deploy/create` and mark every `[ ]` line in those checklists as `[~]`. Modes 3 (diagnose) and 4 (audit without `--fix`) are **read-only and run normally**. Mode 4 with `--fix` skips all remediation — echo `[RDC_TEST] skipping audit --fix remediation` and report findings only. Registry SELECTs, Coolify status reads, HTTP gate probes, TLS checks, and DNS lookups are NOT destructive and run normally. Anything that writes (create app, set watch_paths, deploy trigger, env var write, DNS write, CF cache purge, registry UPDATE/INSERT) is gated.
|
|
20
|
-
|
|
21
|
-
## Arguments
|
|
22
|
-
|
|
23
|
-
- `rdc:deploy <slug>` — deploy existing app (latest commit on its watched branch)
|
|
24
|
-
- `rdc:deploy <slug> <build-id>` — deploy specific commit/tag
|
|
25
|
-
- `rdc:deploy new <slug>` — create a new Coolify app from registry
|
|
26
|
-
- `rdc:deploy diagnose <slug>` — debug why an app is broken
|
|
27
|
-
- `rdc:deploy audit` — fleet-wide scan for missed failures
|
|
28
|
-
- `rdc:deploy audit --fix` — fleet scan + auto-remediate safe issues
|
|
29
|
-
- `rdc:deploy` (no args) — print mode menu, ask which
|
|
30
|
-
|
|
31
|
-
## Modes
|
|
32
|
-
|
|
33
|
-
### Mode 1 — deploy <slug> [build-id]
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
rdc:deploy: <slug> → <domain>
|
|
37
|
-
[ ] Registry lookup (slug, uuid, branch, type, env_vars_needed)
|
|
38
|
-
[ ] Git state verified (branch matches Coolify, commit pushed)
|
|
39
|
-
[ ] Build-id resolved (default: HEAD of watched branch)
|
|
40
|
-
[ ] Env vars present in Coolify (compare to registry)
|
|
41
|
-
[ ] Type-specific preflight (see docs/runbooks/coolify-deploy-checklist.md)
|
|
42
|
-
[ ] Deploy triggered
|
|
43
|
-
[ ] Deployment reached "finished" state
|
|
44
|
-
[ ] Gate: HTTP 200
|
|
45
|
-
[ ] Gate: TLS valid (no SSL cipher mismatch)
|
|
46
|
-
[ ] Gate: cache headers correct on HTML
|
|
47
|
-
[ ] Gate: container running on declared port
|
|
48
|
-
[ ] Cloudflare cache purged (if proxied)
|
|
49
|
-
[ ] deployment_registry updated (last_deploy_at, status)
|
|
50
|
-
✅ rdc:deploy: <slug> deployed in Nm Ns
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### Mode 2 — new <slug>
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
rdc:deploy new: <slug>
|
|
57
|
-
[ ] Registry entry loaded (or interactive create)
|
|
58
|
-
[ ] DNS path chosen (A: staging wildcard B: apex C: other zone)
|
|
59
|
-
[ ] DNS record verified or wildcard confirmed
|
|
60
|
-
[ ] Cloudflare proxy setting correct for DNS path
|
|
61
|
-
[ ] server_uuid, project_uuid, environment_uuid, github_app_uuid resolved
|
|
62
|
-
[ ] Build type chosen (Next.js / Vite / static / standalone)
|
|
63
|
-
[ ] Type-specific fields filled (ports, build cmd, install cmd, start cmd)
|
|
64
|
-
[ ] Application created via /applications/private-github-app
|
|
65
|
-
[ ] watch_paths set and verified
|
|
66
|
-
[ ] Env vars set in Coolify
|
|
67
|
-
[ ] First deploy triggered
|
|
68
|
-
[ ] Gate passed (5 checks)
|
|
69
|
-
[ ] deployment_registry row inserted
|
|
70
|
-
✅ rdc:deploy new: <slug> live at <domain>
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### Mode 3 — diagnose <slug>
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
rdc:deploy diagnose: <slug>
|
|
77
|
-
[ ] App located (uuid, domain, last deploy)
|
|
78
|
-
[ ] Container state (running / restarting / stopped)
|
|
79
|
-
[ ] Last 100 log lines scanned for known error patterns
|
|
80
|
-
[ ] Port mismatch check (declared vs actual)
|
|
81
|
-
[ ] Env var drift check (registry vs Coolify)
|
|
82
|
-
[ ] watch_paths sanity check
|
|
83
|
-
[ ] HTTP / TLS reachability
|
|
84
|
-
[ ] Cloudflare proxy state check
|
|
85
|
-
[ ] Disk space on server
|
|
86
|
-
[ ] Branch mismatch check (Coolify git_branch vs expected)
|
|
87
|
-
⚠️ rdc:deploy diagnose: <root cause in one sentence> — fix: <one command>
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### Mode 4 — audit
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
rdc:deploy audit: fleet scan
|
|
94
|
-
[ ] Inventory join: Coolify apps ⋈ deployment_registry
|
|
95
|
-
[ ] Orphans (in one but not the other)
|
|
96
|
-
[ ] Monorepo apps missing watch_paths
|
|
97
|
-
[ ] Stale deploys (>14 days since last success)
|
|
98
|
-
[ ] Registry rows with status='broken'
|
|
99
|
-
[ ] Failed deployments in last 7 days
|
|
100
|
-
[ ] HTTP gate sweep (non-200 per domain)
|
|
101
|
-
[ ] TLS cert expiry <30 days
|
|
102
|
-
[ ] Port mismatches (ports_exposes vs actual container port)
|
|
103
|
-
[ ] Env var drift (registry.env_vars_needed vs Coolify env)
|
|
104
|
-
[ ] Branch mismatches (Coolify git_branch ≠ expected)
|
|
105
|
-
[ ] Disk space on 64.237.54.189
|
|
106
|
-
[ ] DNS/proxy misconfigs on configured staging wildcard
|
|
107
|
-
[ ] Duplicate apps (same repo, multiple UUIDs)
|
|
108
|
-
|
|
109
|
-
Findings:
|
|
110
|
-
| Severity | App | Issue | Fix |
|
|
111
|
-
|----------|-----|-------|-----|
|
|
112
|
-
| HIGH | ... | ... | ... |
|
|
113
|
-
⚠️ rdc:deploy audit: N HIGH · M MED · K LOW — run `rdc:deploy audit --fix` to auto-remediate safe issues
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
Severity rules:
|
|
117
|
-
- **HIGH** — user-facing down (HTTP non-200, TLS invalid, container not running)
|
|
118
|
-
- **MED** — degraded or drifting (watch_paths missing, env var drift, stale deploy, branch mismatch)
|
|
119
|
-
- **LOW** — cleanup (orphans, duplicates, registry status stale)
|
|
120
|
-
|
|
121
|
-
`--fix` auto-remediates only: missing watch_paths, registry row updates, CF cache purges. Never touches env vars, DNS, or container config without explicit confirmation.
|
|
122
|
-
|
|
123
|
-
## Coolify Access — clauth + REST API
|
|
124
|
-
|
|
125
|
-
All Coolify operations use the clauth daemon and the Coolify REST API directly.
|
|
126
|
-
There is no Coolify MCP server — do not reference `@masonator/coolify-mcp`.
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
_COOLIFY=$(curl -s http://127.0.0.1:52437/v/coolify-api)
|
|
130
|
-
curl -s -H "Authorization: Bearer $_COOLIFY" "$DEPLOY_API_BASE/api/v1/applications"
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
If clauth daemon is not responding:
|
|
134
|
-
```
|
|
135
|
-
BLOCKED: clauth daemon not responding. Run scripts\restart-clauth.bat, unlock at http://127.0.0.1:52437
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
## References
|
|
139
|
-
|
|
140
|
-
- Type-specific checklists + DNS tree + gate commands: `docs/runbooks/coolify-deploy-checklist.md`
|
|
141
|
-
- Rules / registry RPCs / hard limits: `.claude/rules/coolify-deployment.md`
|
|
142
|
-
- Infrastructure constants:
|
|
143
|
-
```
|
|
144
|
-
Server UUID: ih386anenvvvn6fy1umtyow0
|
|
145
|
-
Server IP: 64.237.54.189
|
|
146
|
-
Dashboard: <deployment-dashboard-url>
|
|
147
|
-
GitHub App UUID: xdmcy60putp5h9j7k4kwg9c3
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
## Supersedes
|
|
151
|
-
|
|
152
|
-
`coolify-deploy` standalone skill (kept for back-compat; new work uses `rdc:deploy`).
|
|
1
|
+
---
|
|
2
|
+
name: rdc:deploy
|
|
3
|
+
description: >-
|
|
4
|
+
Coolify ops. Usage `rdc:deploy <slug> [build-id]` or `rdc:deploy new <slug>` or `rdc:deploy diagnose <slug>` or `rdc:deploy audit [--fix]` — type checklists, DNS decision tree, mandatory post-deploy gate. Checklist-only output.
|
|
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:deploy — Coolify Operations
|
|
13
|
+
|
|
14
|
+
**READ FIRST:** `guides/output-contract.md`. Checklist-only output. No narration.
|
|
15
|
+
No raw MCP dumps. No UUIDs unless asked.
|
|
16
|
+
|
|
17
|
+
> **Sandbox contract:** This skill honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
|
|
18
|
+
>
|
|
19
|
+
> *Under `$RDC_TEST=1`:* Modes 1 (deploy) and 2 (new) are **entirely skipped** — echo `[RDC_TEST] skipping Coolify deploy/create` and mark every `[ ]` line in those checklists as `[~]`. Modes 3 (diagnose) and 4 (audit without `--fix`) are **read-only and run normally**. Mode 4 with `--fix` skips all remediation — echo `[RDC_TEST] skipping audit --fix remediation` and report findings only. Registry SELECTs, Coolify status reads, HTTP gate probes, TLS checks, and DNS lookups are NOT destructive and run normally. Anything that writes (create app, set watch_paths, deploy trigger, env var write, DNS write, CF cache purge, registry UPDATE/INSERT) is gated.
|
|
20
|
+
|
|
21
|
+
## Arguments
|
|
22
|
+
|
|
23
|
+
- `rdc:deploy <slug>` — deploy existing app (latest commit on its watched branch)
|
|
24
|
+
- `rdc:deploy <slug> <build-id>` — deploy specific commit/tag
|
|
25
|
+
- `rdc:deploy new <slug>` — create a new Coolify app from registry
|
|
26
|
+
- `rdc:deploy diagnose <slug>` — debug why an app is broken
|
|
27
|
+
- `rdc:deploy audit` — fleet-wide scan for missed failures
|
|
28
|
+
- `rdc:deploy audit --fix` — fleet scan + auto-remediate safe issues
|
|
29
|
+
- `rdc:deploy` (no args) — print mode menu, ask which
|
|
30
|
+
|
|
31
|
+
## Modes
|
|
32
|
+
|
|
33
|
+
### Mode 1 — deploy <slug> [build-id]
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
rdc:deploy: <slug> → <domain>
|
|
37
|
+
[ ] Registry lookup (slug, uuid, branch, type, env_vars_needed)
|
|
38
|
+
[ ] Git state verified (branch matches Coolify, commit pushed)
|
|
39
|
+
[ ] Build-id resolved (default: HEAD of watched branch)
|
|
40
|
+
[ ] Env vars present in Coolify (compare to registry)
|
|
41
|
+
[ ] Type-specific preflight (see docs/runbooks/coolify-deploy-checklist.md)
|
|
42
|
+
[ ] Deploy triggered
|
|
43
|
+
[ ] Deployment reached "finished" state
|
|
44
|
+
[ ] Gate: HTTP 200
|
|
45
|
+
[ ] Gate: TLS valid (no SSL cipher mismatch)
|
|
46
|
+
[ ] Gate: cache headers correct on HTML
|
|
47
|
+
[ ] Gate: container running on declared port
|
|
48
|
+
[ ] Cloudflare cache purged (if proxied)
|
|
49
|
+
[ ] deployment_registry updated (last_deploy_at, status)
|
|
50
|
+
✅ rdc:deploy: <slug> deployed in Nm Ns
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Mode 2 — new <slug>
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
rdc:deploy new: <slug>
|
|
57
|
+
[ ] Registry entry loaded (or interactive create)
|
|
58
|
+
[ ] DNS path chosen (A: staging wildcard B: apex C: other zone)
|
|
59
|
+
[ ] DNS record verified or wildcard confirmed
|
|
60
|
+
[ ] Cloudflare proxy setting correct for DNS path
|
|
61
|
+
[ ] server_uuid, project_uuid, environment_uuid, github_app_uuid resolved
|
|
62
|
+
[ ] Build type chosen (Next.js / Vite / static / standalone)
|
|
63
|
+
[ ] Type-specific fields filled (ports, build cmd, install cmd, start cmd)
|
|
64
|
+
[ ] Application created via /applications/private-github-app
|
|
65
|
+
[ ] watch_paths set and verified
|
|
66
|
+
[ ] Env vars set in Coolify
|
|
67
|
+
[ ] First deploy triggered
|
|
68
|
+
[ ] Gate passed (5 checks)
|
|
69
|
+
[ ] deployment_registry row inserted
|
|
70
|
+
✅ rdc:deploy new: <slug> live at <domain>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Mode 3 — diagnose <slug>
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
rdc:deploy diagnose: <slug>
|
|
77
|
+
[ ] App located (uuid, domain, last deploy)
|
|
78
|
+
[ ] Container state (running / restarting / stopped)
|
|
79
|
+
[ ] Last 100 log lines scanned for known error patterns
|
|
80
|
+
[ ] Port mismatch check (declared vs actual)
|
|
81
|
+
[ ] Env var drift check (registry vs Coolify)
|
|
82
|
+
[ ] watch_paths sanity check
|
|
83
|
+
[ ] HTTP / TLS reachability
|
|
84
|
+
[ ] Cloudflare proxy state check
|
|
85
|
+
[ ] Disk space on server
|
|
86
|
+
[ ] Branch mismatch check (Coolify git_branch vs expected)
|
|
87
|
+
⚠️ rdc:deploy diagnose: <root cause in one sentence> — fix: <one command>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Mode 4 — audit
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
rdc:deploy audit: fleet scan
|
|
94
|
+
[ ] Inventory join: Coolify apps ⋈ deployment_registry
|
|
95
|
+
[ ] Orphans (in one but not the other)
|
|
96
|
+
[ ] Monorepo apps missing watch_paths
|
|
97
|
+
[ ] Stale deploys (>14 days since last success)
|
|
98
|
+
[ ] Registry rows with status='broken'
|
|
99
|
+
[ ] Failed deployments in last 7 days
|
|
100
|
+
[ ] HTTP gate sweep (non-200 per domain)
|
|
101
|
+
[ ] TLS cert expiry <30 days
|
|
102
|
+
[ ] Port mismatches (ports_exposes vs actual container port)
|
|
103
|
+
[ ] Env var drift (registry.env_vars_needed vs Coolify env)
|
|
104
|
+
[ ] Branch mismatches (Coolify git_branch ≠ expected)
|
|
105
|
+
[ ] Disk space on 64.237.54.189
|
|
106
|
+
[ ] DNS/proxy misconfigs on configured staging wildcard
|
|
107
|
+
[ ] Duplicate apps (same repo, multiple UUIDs)
|
|
108
|
+
|
|
109
|
+
Findings:
|
|
110
|
+
| Severity | App | Issue | Fix |
|
|
111
|
+
|----------|-----|-------|-----|
|
|
112
|
+
| HIGH | ... | ... | ... |
|
|
113
|
+
⚠️ rdc:deploy audit: N HIGH · M MED · K LOW — run `rdc:deploy audit --fix` to auto-remediate safe issues
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Severity rules:
|
|
117
|
+
- **HIGH** — user-facing down (HTTP non-200, TLS invalid, container not running)
|
|
118
|
+
- **MED** — degraded or drifting (watch_paths missing, env var drift, stale deploy, branch mismatch)
|
|
119
|
+
- **LOW** — cleanup (orphans, duplicates, registry status stale)
|
|
120
|
+
|
|
121
|
+
`--fix` auto-remediates only: missing watch_paths, registry row updates, CF cache purges. Never touches env vars, DNS, or container config without explicit confirmation.
|
|
122
|
+
|
|
123
|
+
## Coolify Access — clauth + REST API
|
|
124
|
+
|
|
125
|
+
All Coolify operations use the clauth daemon and the Coolify REST API directly.
|
|
126
|
+
There is no Coolify MCP server — do not reference `@masonator/coolify-mcp`.
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
_COOLIFY=$(curl -s http://127.0.0.1:52437/v/coolify-api)
|
|
130
|
+
curl -s -H "Authorization: Bearer $_COOLIFY" "$DEPLOY_API_BASE/api/v1/applications"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
If clauth daemon is not responding:
|
|
134
|
+
```
|
|
135
|
+
BLOCKED: clauth daemon not responding. Run scripts\restart-clauth.bat, unlock at http://127.0.0.1:52437
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## References
|
|
139
|
+
|
|
140
|
+
- Type-specific checklists + DNS tree + gate commands: `docs/runbooks/coolify-deploy-checklist.md`
|
|
141
|
+
- Rules / registry RPCs / hard limits: `.claude/rules/coolify-deployment.md`
|
|
142
|
+
- Infrastructure constants:
|
|
143
|
+
```
|
|
144
|
+
Server UUID: ih386anenvvvn6fy1umtyow0
|
|
145
|
+
Server IP: 64.237.54.189
|
|
146
|
+
Dashboard: <deployment-dashboard-url>
|
|
147
|
+
GitHub App UUID: xdmcy60putp5h9j7k4kwg9c3
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Supersedes
|
|
151
|
+
|
|
152
|
+
`coolify-deploy` standalone skill (kept for back-compat; new work uses `rdc:deploy`).
|