@lifeaitools/rdc-skills 0.9.31 → 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 (59) 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 -138
  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/fixtures/guides/bad-guide.md +15 -0
  35. package/scripts/fixtures/guides-clean/good-guide.md +16 -0
  36. package/scripts/install-rdc-skills.js +53 -9
  37. package/scripts/install.ps1 +17 -11
  38. package/scripts/self-test.mjs +1323 -1113
  39. package/scripts/test-guide-validator.mjs +194 -0
  40. package/skills/build/SKILL.md +355 -355
  41. package/skills/co-develop/SKILL.md +182 -0
  42. package/skills/collab/SKILL.md +217 -217
  43. package/skills/deploy/SKILL.md +198 -152
  44. package/skills/design/SKILL.md +211 -211
  45. package/skills/fixit/SKILL.md +132 -122
  46. package/skills/handoff/SKILL.md +200 -200
  47. package/skills/help/SKILL.md +104 -102
  48. package/skills/overnight/SKILL.md +224 -224
  49. package/skills/plan/SKILL.md +252 -251
  50. package/skills/preplan/SKILL.md +86 -86
  51. package/skills/prototype/SKILL.md +150 -150
  52. package/skills/release/SKILL.md +342 -342
  53. package/skills/report/SKILL.md +100 -100
  54. package/skills/review/SKILL.md +121 -120
  55. package/skills/self-test/SKILL.md +126 -126
  56. package/skills/status/SKILL.md +99 -97
  57. package/skills/terminal-config/SKILL.md +18 -18
  58. package/skills/watch/SKILL.md +91 -91
  59. package/skills/workitems/SKILL.md +151 -146
@@ -1,152 +1,198 @@
1
- ---
2
- name: rdc:deploy
3
- description: "Deploy an app to Coolify (production) or PM2 (staging), add a new Coolify app, diagnose a failed deploy, or audit watch paths. Handles DNS, health checks, and post-deploy verification."
4
- ---
5
-
6
- > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
7
- > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
8
- > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
9
-
10
-
11
- # rdc:deploy — Coolify Operations
12
-
13
- **READ FIRST:** `guides/output-contract.md`. Checklist-only output. No narration.
14
- No raw MCP dumps. No UUIDs unless asked.
15
-
16
- > **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.
17
- >
18
- > *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.
19
-
20
- ## When to Use
21
- - Project lead says "deploy", "ship it", "push to production", "update the server"
22
- - A new app needs to be registered and deployed for the first time (`rdc:deploy new`)
23
- - A deployed app is behaving unexpectedly and needs diagnosis (`rdc:deploy diagnose`)
24
- - Running a compliance/health audit of all deployed apps (`rdc:deploy audit`)
25
-
26
- ## Arguments
27
-
28
- - `rdc:deploy <slug>` — deploy existing app (latest commit on its watched branch)
29
- - `rdc:deploy <slug> <build-id>` — deploy specific commit/tag
30
- - `rdc:deploy new <slug>` — create a new Coolify app from registry
31
- - `rdc:deploy diagnose <slug>` — debug why an app is broken
32
- - `rdc:deploy audit` — fleet-wide scan for missed failures
33
- - `rdc:deploy audit --fix` — fleet scan + auto-remediate safe issues
34
- - `rdc:deploy` (no args) — print mode menu, ask which
35
-
36
- ## Modes
37
-
38
- ### Mode 1 — deploy <slug> [build-id]
39
-
40
- ```
41
- rdc:deploy: <slug> → <domain>
42
- [ ] Registry lookup (slug, uuid, branch, type, env_vars_needed)
43
- [ ] Git state verified (branch matches Coolify, commit pushed)
44
- [ ] Build-id resolved (default: HEAD of watched branch)
45
- [ ] Env vars present in Coolify (compare to registry)
46
- [ ] Type-specific preflight (see docs/runbooks/coolify-deploy-checklist.md)
47
- [ ] Deploy triggered
48
- [ ] Deployment reached "finished" state
49
- [ ] Gate: HTTP 200
50
- [ ] Gate: TLS valid (no SSL cipher mismatch)
51
- [ ] Gate: cache headers correct on HTML
52
- [ ] Gate: container running on declared port
53
- [ ] Cloudflare cache purged (if proxied)
54
- [ ] deployment_registry updated (last_deploy_at, status)
55
- ✅ rdc:deploy: <slug> deployed in Nm Ns
56
- ```
57
-
58
- ### Mode 2 — new <slug>
59
-
60
- **MANDATORY:** All new apps are created from `docs/runbooks/coolify-app-templates.json`. Read that file first — pick the right template, substitute the required vars, POST the exact payload. No manual field configuration. No improvisation. The template encodes all learned lessons (base_directory, build_pack, watch_paths, health_check, ports). Deviating from it breaks things.
61
-
62
- Template selection:
63
- - `nextjs-app` — for `apps/<name>/` (Dockerfile, turbo filter, port 3000)
64
- - `static-site` — for `sites/<name>/` (nixpacks, publish_directory=out, no packages)
65
- - `mcp-server` — for `mcp-servers/<name>/` (Dockerfile, health check enabled, custom port)
66
-
67
- ```
68
- rdc:deploy new: <slug>
69
- [ ] .dockerignore present at regen-root root (ls C:/Dev/regen-root/.dockerignore — STOP if missing)
70
- [ ] Template loaded from docs/runbooks/coolify-app-templates.json (pick nextjs-app / static-site / mcp-server)
71
- [ ] Required vars substituted: NAME, APP_PATH, DOMAIN, BRANCH, PROJECT_UUID, ENVIRONMENT_UUID [+ TURBO_FILTER / PORT]
72
- [ ] DNS path chosen (A: *.dev.place.fund B: apex C: other zone)
73
- [ ] DNS record verified or wildcard confirmed
74
- [ ] Cloudflare proxy setting correct for DNS path
75
- [ ] Application created via POST /applications/private-github-app (template payload)
76
- [ ] UUID recorded from response
77
- [ ] watch_paths verified via GET /api/v1/applications/<uuid> — must match template
78
- [ ] Env vars set in Coolify (from deployment_registry.env_vars_needed)
79
- [ ] First deploy triggered
80
- [ ] Deployment reached "finished" state
81
- [ ] Gate: HTTP 200 on <domain>
82
- [ ] Gate: TLS valid
83
- [ ] deployment_registry row inserted
84
- ✅ rdc:deploy new: <slug> live at <domain>
85
- ```
86
-
87
- ### Mode 3 — diagnose <slug>
88
-
89
- ```
90
- rdc:deploy diagnose: <slug>
91
- [ ] App located (uuid, domain, last deploy)
92
- [ ] Container state (running / restarting / stopped)
93
- [ ] Last 100 log lines scanned for known error patterns
94
- [ ] Port mismatch check (declared vs actual)
95
- [ ] Env var drift check (registry vs Coolify)
96
- [ ] watch_paths sanity check
97
- [ ] HTTP / TLS reachability
98
- [ ] Cloudflare proxy state check
99
- [ ] Disk space on server
100
- [ ] Branch mismatch check (Coolify git_branch vs expected)
101
- ⚠️ rdc:deploy diagnose: <root cause in one sentence> — fix: <one command>
102
- ```
103
-
104
- ### Mode 4 — audit
105
-
106
- ```
107
- rdc:deploy audit: fleet scan
108
- [ ] Inventory join: Coolify apps ⋈ deployment_registry
109
- [ ] Orphans (in one but not the other)
110
- [ ] Monorepo apps missing watch_paths
111
- [ ] Stale deploys (>14 days since last success)
112
- [ ] Registry rows with status='broken'
113
- [ ] Failed deployments in last 7 days
114
- [ ] HTTP gate sweep (non-200 per domain)
115
- [ ] TLS cert expiry <30 days
116
- [ ] Port mismatches (ports_exposes vs actual container port)
117
- [ ] Env var drift (registry.env_vars_needed vs Coolify env)
118
- [ ] Branch mismatches (Coolify git_branch ≠ expected)
119
- [ ] Disk space on 64.237.54.189
120
- [ ] CF proxy misconfigs on *.dev.place.fund
121
- [ ] Duplicate apps (same repo, multiple UUIDs)
122
-
123
- Findings:
124
- | Severity | App | Issue | Fix |
125
- |----------|-----|-------|-----|
126
- | HIGH | ... | ... | ... |
127
- ⚠️ rdc:deploy audit: N HIGH · M MED · K LOW — run `rdc:deploy audit --fix` to auto-remediate safe issues
128
- ```
129
-
130
- Severity rules:
131
- - **HIGH** — user-facing down (HTTP non-200, TLS invalid, container not running)
132
- - **MED** — degraded or drifting (watch_paths missing, env var drift, stale deploy, branch mismatch)
133
- - **LOW** — cleanup (orphans, duplicates, registry status stale)
134
-
135
- `--fix` auto-remediates only: missing watch_paths, registry row updates, CF cache purges. Never touches env vars, DNS, or container config without explicit confirmation.
136
-
137
- ## References
138
-
139
- - Type-specific checklists + DNS tree + gate commands: `docs/runbooks/coolify-deploy-checklist.md`
140
- - Rules / registry RPCs / hard limits: `.claude/context/coolify-deployment.md`
141
- - MCP server: `@masonator/coolify-mcp` (38 tools)
142
- - Infrastructure constants:
143
- ```
144
- Server UUID: ih386anenvvvn6fy1umtyow0
145
- Server IP: 64.237.54.189
146
- Dashboard: https://deploy.regendevcorp.com
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: "Usage `rdc:deploy <slug> [new|diagnose|audit] [--fix]` — Deploy an app to Coolify (production) or PM2 (staging), add a new Coolify app, diagnose a failed deploy, or audit watch paths. Handles DNS, health checks, and post-deploy verification."
4
+ ---
5
+
6
+ > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
7
+ > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
8
+ > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
9
+
10
+
11
+ # rdc:deploy — Coolify Operations
12
+
13
+ **READ FIRST:** `guides/output-contract.md`. Checklist-only output. No narration.
14
+ No raw MCP dumps. No UUIDs unless asked.
15
+
16
+ > **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.
17
+ >
18
+ > *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.
19
+
20
+ ## When to Use
21
+ - Project lead says "deploy", "ship it", "push to production", "update the server"
22
+ - A new app needs to be registered and deployed for the first time (`rdc:deploy new`)
23
+ - A deployed app is behaving unexpectedly and needs diagnosis (`rdc:deploy diagnose`)
24
+ - Running a compliance/health audit of all deployed apps (`rdc:deploy audit`)
25
+
26
+ ## Arguments
27
+
28
+ - `rdc:deploy <slug>` — deploy existing app (latest commit on its watched branch)
29
+ - `rdc:deploy <slug> <build-id>` — deploy specific commit/tag
30
+ - `rdc:deploy new <slug>` — create a new Coolify app from registry
31
+ - `rdc:deploy diagnose <slug>` — debug why an app is broken
32
+ - `rdc:deploy audit` — fleet-wide scan for missed failures
33
+ - `rdc:deploy audit --fix` — fleet scan + auto-remediate safe issues
34
+ - `rdc:deploy` (no args) — print mode menu, ask which
35
+
36
+ ## Modes
37
+
38
+ ### Mode 1 — deploy <slug> [build-id]
39
+
40
+ ```
41
+ rdc:deploy: <slug> → <domain>
42
+ [ ] Registry lookup (slug, uuid, branch, type, env_vars_needed)
43
+ [ ] Git state verified (branch matches Coolify, commit pushed)
44
+ [ ] Build-id resolved (default: HEAD of watched branch)
45
+ [ ] Env vars present in Coolify (compare to registry)
46
+ [ ] Type-specific preflight (see docs/runbooks/coolify-deploy-checklist.md)
47
+ [ ] Deploy triggered
48
+ [ ] Deployment reached "finished" state
49
+ [ ] Gate: HTTP 200
50
+ [ ] Gate: TLS valid (no SSL cipher mismatch)
51
+ [ ] Gate: cache headers correct on HTML
52
+ [ ] Gate: container running on declared port
53
+ [ ] Cloudflare cache purged (if proxied)
54
+ [ ] deployment_registry updated (last_deploy_at, status)
55
+ ✅ rdc:deploy: <slug> deployed in Nm Ns
56
+ ```
57
+
58
+ ### Mode 2 — new <slug>
59
+
60
+ **MANDATORY:** All new apps are created from `docs/runbooks/coolify-app-templates.json`. Read that file first — pick the right template, substitute the required vars, POST the exact payload. No manual field configuration. No improvisation. The template encodes all learned lessons (base_directory, build_pack, watch_paths, health_check, ports). Deviating from it breaks things.
61
+
62
+ Template selection:
63
+ - `nextjs-app` — for `apps/<name>/` (Dockerfile, turbo filter, port 3000)
64
+ - `static-site` — for `sites/<name>/` (nixpacks, publish_directory=out, no packages)
65
+ - `mcp-server` — for `mcp-servers/<name>/` (Dockerfile, health check enabled, custom port)
66
+
67
+ ```
68
+ rdc:deploy new: <slug>
69
+ [ ] .dockerignore present at regen-root root (ls C:/Dev/regen-root/.dockerignore — STOP if missing)
70
+ [ ] Template loaded from docs/runbooks/coolify-app-templates.json (pick nextjs-app / static-site / mcp-server)
71
+ [ ] Required vars substituted: NAME, APP_PATH, DOMAIN, BRANCH, PROJECT_UUID, ENVIRONMENT_UUID [+ TURBO_FILTER / PORT]
72
+ [ ] DNS path chosen (A: *.dev.place.fund B: apex C: other zone)
73
+ [ ] DNS record verified or wildcard confirmed
74
+ [ ] Cloudflare proxy setting correct for DNS path
75
+ [ ] Application created via POST /applications/private-github-app (template payload)
76
+ [ ] UUID recorded from response
77
+ [ ] watch_paths verified via GET /api/v1/applications/<uuid> — must match template
78
+ [ ] Env vars set in Coolify (from deployment_registry.env_vars_needed)
79
+ [ ] First deploy triggered
80
+ [ ] Deployment reached "finished" state
81
+ [ ] Gate: HTTP 200 on <domain>
82
+ [ ] Gate: TLS valid
83
+ [ ] deployment_registry row inserted
84
+ ✅ rdc:deploy new: <slug> live at <domain>
85
+ ```
86
+
87
+ ### Mode 3 — diagnose <slug>
88
+
89
+ ```
90
+ rdc:deploy diagnose: <slug>
91
+ [ ] App located (uuid, domain, last deploy)
92
+ [ ] Container state (running / restarting / stopped)
93
+ [ ] Last 100 log lines scanned for known error patterns
94
+ [ ] Port mismatch check (declared vs actual)
95
+ [ ] Env var drift check (registry vs Coolify)
96
+ [ ] watch_paths sanity check
97
+ [ ] HTTP / TLS reachability
98
+ [ ] Cloudflare proxy state check
99
+ [ ] Disk space on server
100
+ [ ] Branch mismatch check (Coolify git_branch vs expected)
101
+ ⚠️ rdc:deploy diagnose: <root cause in one sentence> — fix: <one command>
102
+ ```
103
+
104
+ ### Mode 4 — audit
105
+
106
+ ```
107
+ rdc:deploy audit: fleet scan
108
+ [ ] Inventory join: Coolify apps ⋈ deployment_registry
109
+ [ ] Orphans (in one but not the other)
110
+ [ ] Monorepo apps missing watch_paths
111
+ [ ] Stale deploys (>14 days since last success)
112
+ [ ] Registry rows with status='broken'
113
+ [ ] Failed deployments in last 7 days
114
+ [ ] HTTP gate sweep (non-200 per domain)
115
+ [ ] TLS cert expiry <30 days
116
+ [ ] Port mismatches (ports_exposes vs actual container port)
117
+ [ ] Env var drift (registry.env_vars_needed vs Coolify env)
118
+ [ ] Branch mismatches (Coolify git_branch ≠ expected)
119
+ [ ] Disk space on 64.237.54.189
120
+ [ ] CF proxy misconfigs on *.dev.place.fund
121
+ [ ] Duplicate apps (same repo, multiple UUIDs)
122
+
123
+ Findings:
124
+ | Severity | App | Issue | Fix |
125
+ |----------|-----|-------|-----|
126
+ | HIGH | ... | ... | ... |
127
+ ⚠️ rdc:deploy audit: N HIGH · M MED · K LOW — run `rdc:deploy audit --fix` to auto-remediate safe issues
128
+ ```
129
+
130
+ Severity rules:
131
+ - **HIGH** — user-facing down (HTTP non-200, TLS invalid, container not running)
132
+ - **MED** — degraded or drifting (watch_paths missing, env var drift, stale deploy, branch mismatch)
133
+ - **LOW** — cleanup (orphans, duplicates, registry status stale)
134
+
135
+ `--fix` auto-remediates only: missing watch_paths, registry row updates, CF cache purges. Never touches env vars, DNS, or container config without explicit confirmation.
136
+
137
+ ## Coolify Access — clauth + REST API
138
+
139
+ All Coolify operations use the clauth daemon and the Coolify REST API directly.
140
+ There is no Coolify MCP server. Do not reference `@masonator/coolify-mcp`.
141
+
142
+ ```bash
143
+ # Get token (plain text — no JSON parsing needed)
144
+ _COOLIFY=$(curl -s http://127.0.0.1:52437/v/coolify-api)
145
+
146
+ # List applications
147
+ curl -s -H "Authorization: Bearer $_COOLIFY" \
148
+ https://deploy.regendevcorp.com/api/v1/applications
149
+
150
+ # Get application details
151
+ curl -s -H "Authorization: Bearer $_COOLIFY" \
152
+ https://deploy.regendevcorp.com/api/v1/applications/<uuid>
153
+
154
+ # Deploy (trigger)
155
+ curl -s -X POST -H "Authorization: Bearer $_COOLIFY" \
156
+ https://deploy.regendevcorp.com/api/v1/applications/<uuid>/deploy
157
+
158
+ # Get deployment logs
159
+ curl -s -H "Authorization: Bearer $_COOLIFY" \
160
+ https://deploy.regendevcorp.com/api/v1/deployments/<deployment-id>
161
+
162
+ # Set env var
163
+ curl -s -X POST -H "Authorization: Bearer $_COOLIFY" \
164
+ -H "Content-Type: application/json" \
165
+ -d '{"key":"<KEY>","value":"<VALUE>"}' \
166
+ https://deploy.regendevcorp.com/api/v1/applications/<uuid>/envs
167
+
168
+ # Set watch_paths
169
+ curl -s -X PATCH -H "Authorization: Bearer $_COOLIFY" \
170
+ -H "Content-Type: application/json" \
171
+ -d '{"watch_paths":"apps/<name>/**\npackages/**"}' \
172
+ https://deploy.regendevcorp.com/api/v1/applications/<uuid>
173
+ ```
174
+
175
+ **Never print `$_COOLIFY` to stdout.** Inline from clauth only — do not assign raw strings.
176
+
177
+ If clauth daemon is not responding (`curl -s http://127.0.0.1:52437/ping` fails):
178
+ ```
179
+ BLOCKED: clauth daemon is not responding.
180
+ Fix: Run C:\Dev\regen-root\scripts\restart-clauth.bat, then unlock at http://127.0.0.1:52437
181
+ I cannot proceed until this is resolved.
182
+ ```
183
+
184
+ ## References
185
+
186
+ - Type-specific checklists + DNS tree + gate commands: `docs/runbooks/coolify-deploy-checklist.md`
187
+ - Rules / registry RPCs / hard limits: `.claude/context/coolify-deployment.md`
188
+ - Infrastructure constants:
189
+ ```
190
+ Server UUID: ih386anenvvvn6fy1umtyow0
191
+ Server IP: 64.237.54.189
192
+ Dashboard: https://deploy.regendevcorp.com
193
+ GitHub App UUID: xdmcy60putp5h9j7k4kwg9c3
194
+ ```
195
+
196
+ ## Supersedes
197
+
198
+ `coolify-deploy` standalone skill (kept for back-compat; new work uses `rdc:deploy`).