@lifeaitools/rdc-skills 0.24.41 → 0.25.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.
Files changed (198) hide show
  1. package/.claude/settings.json +15 -15
  2. package/.claude-plugin/marketplace.json +21 -21
  3. package/.claude-plugin/plugin.json +1518 -1371
  4. package/.github/workflows/publish.yml +34 -34
  5. package/.github/workflows/self-test.yml +58 -58
  6. package/CHANGELOG.md +310 -310
  7. package/LICENSE +21 -21
  8. package/MANIFEST.md +221 -221
  9. package/README.md +375 -376
  10. package/README.sandbox.md +3 -3
  11. package/assets/watcher/viewer.html +164 -164
  12. package/bin/rdc-skills-mcp.mjs +316 -316
  13. package/commands/build.md +183 -183
  14. package/commands/collab.md +180 -180
  15. package/commands/deploy.md +152 -152
  16. package/commands/design.md +31 -31
  17. package/commands/edit.md +28 -28
  18. package/commands/fixit.md +150 -124
  19. package/commands/handoff.md +173 -173
  20. package/commands/help.md +95 -95
  21. package/commands/overnight.md +220 -220
  22. package/commands/plan.md +158 -158
  23. package/commands/preplan.md +131 -131
  24. package/commands/prototype.md +145 -145
  25. package/commands/release.md +49 -49
  26. package/commands/report.md +99 -99
  27. package/commands/review.md +120 -120
  28. package/commands/self-test.md +113 -113
  29. package/commands/status.md +86 -86
  30. package/commands/watch.md +98 -98
  31. package/commands/workitems.md +137 -137
  32. package/git-sha.json +1 -1
  33. package/guides/agent-bootstrap.md +295 -295
  34. package/guides/agents/backend.md +104 -104
  35. package/guides/agents/content.md +94 -94
  36. package/guides/agents/cs2.md +56 -56
  37. package/guides/agents/data.md +87 -87
  38. package/guides/agents/design.md +77 -77
  39. package/guides/agents/frontend.md +92 -92
  40. package/guides/agents/infrastructure.md +81 -81
  41. package/guides/agents/setup.md +281 -281
  42. package/guides/agents/verify.md +151 -151
  43. package/guides/agents/viz.md +106 -106
  44. package/guides/backend.md +146 -146
  45. package/guides/content.md +147 -147
  46. package/guides/cs2.md +190 -190
  47. package/guides/data.md +123 -123
  48. package/guides/design.md +116 -116
  49. package/guides/engineering-behavior.md +43 -43
  50. package/guides/escalation-protocol.md +125 -125
  51. package/guides/frontend.md +151 -151
  52. package/guides/history-md-spec.md +297 -297
  53. package/guides/infrastructure.md +179 -179
  54. package/guides/lessons-learned-spec.md +145 -151
  55. package/guides/output-contract.md +108 -108
  56. package/guides/publish-md-spec.md +289 -289
  57. package/guides/rdc-skills-startup.md +30 -30
  58. package/guides/verify.md +11 -11
  59. package/hooks/check-cwd.js +31 -31
  60. package/hooks/check-rdc-environment.js +164 -164
  61. package/hooks/check-services.js +6 -6
  62. package/hooks/check-stale-work-items.js +19 -19
  63. package/hooks/foreground-process-gate.js +128 -128
  64. package/hooks/gate-watchdog-selfcheck.js +257 -257
  65. package/hooks/hook-logger.js +25 -25
  66. package/hooks/lib/run-evidence-gate.mjs +241 -241
  67. package/hooks/no-stop-open-epics.js +127 -127
  68. package/hooks/post-tool-batch-gate.js +203 -203
  69. package/hooks/post-work-check.js +21 -21
  70. package/hooks/postcompact-log.js +13 -13
  71. package/hooks/precompact-log.js +13 -13
  72. package/hooks/rate-limit-retry.js +46 -46
  73. package/hooks/rdc-invocation-marker.js +157 -157
  74. package/hooks/rdc-output-contract-gate.js +94 -94
  75. package/hooks/require-work-item-on-commit.js +294 -294
  76. package/hooks/restart-brief.js +19 -19
  77. package/hooks/run-hidden-hook.ps1 +47 -47
  78. package/hooks/task-completed-gate.js +274 -274
  79. package/hooks/work-item-exit-gate.js +944 -944
  80. package/lib/catalog.mjs +236 -236
  81. package/lib/cloud-rewrite.mjs +155 -155
  82. package/package.json +57 -57
  83. package/rules/work-items-rpc.md +520 -520
  84. package/scaffold/templates/HISTORY.md.template +39 -39
  85. package/scaffold/templates/PUBLISH.md.template +21 -21
  86. package/scaffold/templates/brochure-studio-default.html +70 -70
  87. package/scripts/acceptance.mjs +502 -502
  88. package/scripts/fixtures/guides/bad-guide.md +15 -15
  89. package/scripts/fixtures/guides-clean/good-guide.md +16 -16
  90. package/scripts/install-rdc-skills.js +1289 -1289
  91. package/scripts/install.ps1 +202 -202
  92. package/scripts/install.sh +132 -132
  93. package/scripts/lib/assertions.mjs +287 -287
  94. package/scripts/lib/manifest-schema.mjs +754 -754
  95. package/scripts/lib/runner.mjs +465 -465
  96. package/scripts/lib/sandbox.mjs +435 -435
  97. package/scripts/prepack.mjs +32 -32
  98. package/scripts/rdc-brochure.mjs +482 -482
  99. package/scripts/rdc-design-cli.mjs +134 -134
  100. package/scripts/rebuild-mcp.mjs +107 -107
  101. package/scripts/self-test.mjs +1460 -1460
  102. package/scripts/stamp-git-sha.mjs +29 -29
  103. package/scripts/test-guide-validator.mjs +196 -196
  104. package/scripts/test-rdc-hooks.mjs +145 -145
  105. package/scripts/uninstall.ps1 +77 -77
  106. package/scripts/uninstall.sh +69 -69
  107. package/scripts/update.ps1 +43 -43
  108. package/scripts/update.sh +43 -43
  109. package/scripts/validate-place-histories.js +461 -461
  110. package/scripts/validate-publish-manifests.js +502 -424
  111. package/scripts/watch-init.mjs +100 -100
  112. package/skills/brochure/SKILL.md +107 -107
  113. package/skills/build/SKILL.md +563 -563
  114. package/skills/channel-formatter/SKILL.md +538 -533
  115. package/skills/co-develop/SKILL.md +196 -196
  116. package/skills/collab/SKILL.md +239 -239
  117. package/skills/convert/SKILL.md +167 -140
  118. package/skills/deploy/SKILL.md +541 -541
  119. package/skills/design/SKILL.md +211 -211
  120. package/skills/design/reference/ownership.md +16 -16
  121. package/skills/design/reference/rampa.md +92 -92
  122. package/skills/design/reference/studio-model.md +153 -153
  123. package/skills/edit/SKILL.md +98 -98
  124. package/skills/fixit/SKILL.md +203 -165
  125. package/skills/fs-mcp/SKILL.md +148 -148
  126. package/skills/handoff/SKILL.md +236 -236
  127. package/skills/help/SKILL.md +143 -143
  128. package/skills/housekeeping/SKILL.md +160 -219
  129. package/skills/lifeai-brochure-author/SKILL.md +340 -340
  130. package/skills/onramp/SKILL.md +248 -0
  131. package/skills/overnight/SKILL.md +251 -251
  132. package/skills/plan/SKILL.md +345 -345
  133. package/skills/preplan/SKILL.md +90 -90
  134. package/skills/prototype/SKILL.md +150 -150
  135. package/skills/rdc-brochurify/SKILL.md +245 -245
  136. package/skills/rdc-extract-verifier-rules/SKILL.md +191 -191
  137. package/skills/release/SKILL.md +140 -140
  138. package/skills/report/SKILL.md +100 -100
  139. package/skills/review/SKILL.md +152 -152
  140. package/skills/rpms-filemap/SKILL.cloud.md +111 -111
  141. package/skills/rpms-filemap/SKILL.md +111 -111
  142. package/skills/self-test/SKILL.md +132 -132
  143. package/skills/status/SKILL.md +99 -99
  144. package/skills/terminal-config/SKILL.md +62 -62
  145. package/skills/tests/MATRIX.md +54 -54
  146. package/skills/tests/README.md +47 -47
  147. package/skills/tests/onramp.test.json +87 -0
  148. package/skills/tests/rdc-brochure.test.json +34 -34
  149. package/skills/tests/rdc-build.test.json +36 -36
  150. package/skills/tests/rdc-channel-formatter.test.json +45 -45
  151. package/skills/tests/rdc-co-develop.test.json +29 -29
  152. package/skills/tests/rdc-collab.test.json +29 -29
  153. package/skills/tests/rdc-convert.test.json +35 -35
  154. package/skills/tests/rdc-deploy.test.json +30 -30
  155. package/skills/tests/rdc-design.test.json +27 -27
  156. package/skills/tests/rdc-edit.test.json +29 -29
  157. package/skills/tests/rdc-fixit.test.json +36 -36
  158. package/skills/tests/rdc-fs-mcp.test.json +36 -36
  159. package/skills/tests/rdc-handoff.test.json +28 -28
  160. package/skills/tests/rdc-help.test.json +29 -29
  161. package/skills/tests/rdc-housekeeping.test.json +28 -32
  162. package/skills/tests/rdc-lifeai-brochure-author.test.json +35 -35
  163. package/skills/tests/rdc-overnight.test.json +37 -37
  164. package/skills/tests/rdc-plan.test.json +27 -27
  165. package/skills/tests/rdc-preplan.test.json +31 -31
  166. package/skills/tests/rdc-prototype.test.json +28 -28
  167. package/skills/tests/rdc-rdc-brochurify.test.json +23 -23
  168. package/skills/tests/rdc-rdc-extract-verifier-rules.test.json +34 -34
  169. package/skills/tests/rdc-release.test.json +29 -29
  170. package/skills/tests/rdc-report.test.json +28 -28
  171. package/skills/tests/rdc-review.test.json +29 -29
  172. package/skills/tests/rdc-rpms-filemap.test.json +28 -28
  173. package/skills/tests/rdc-self-test.test.json +24 -24
  174. package/skills/tests/rdc-status.test.json +29 -29
  175. package/skills/tests/rdc-terminal-config.test.json +29 -29
  176. package/skills/tests/rdc-watch.test.json +24 -24
  177. package/skills/tests/rdc-workitems.test.json +27 -27
  178. package/skills/watch/SKILL.md +97 -97
  179. package/skills/workitems/SKILL.md +151 -151
  180. package/tests/acceptance.test.mjs +59 -59
  181. package/tests/channel-formatter.contract.test.mjs +251 -251
  182. package/tests/curl-surface.test.mjs +289 -289
  183. package/tests/harness-gates.test.mjs +325 -325
  184. package/tests/help-surface.test.mjs +61 -61
  185. package/tests/install-rdc-skills.test.mjs +49 -49
  186. package/tests/manifest-contract-fields.test.mjs +78 -78
  187. package/tests/mcp.test.mjs +271 -271
  188. package/tests/rdc-brochure.test.mjs +125 -125
  189. package/tests/require-work-item-on-commit.test.mjs +162 -162
  190. package/tests/run-evidence-gate.test.mjs +82 -82
  191. package/tests/skill-test-matrix.test.mjs +66 -66
  192. package/tests/validate-skills.js +27 -27
  193. package/tests/work-item-exit-gate-l2.test.mjs +368 -368
  194. package/tests/work-item-exit-gate-l3.test.mjs +197 -197
  195. package/RELEASE.md +0 -42
  196. package/tests/housekeeping-lessons-triage.test.mjs +0 -49
  197. package/tests/lessons-pipeline-contract.test.mjs +0 -26
  198. package/tests/release-contract.test.mjs +0 -16
@@ -1,295 +1,295 @@
1
- # Agent Bootstrap — Read This First
2
- > Every dispatched agent reads this before their role-specific guide.
3
- > Base guide for rdc-skills — provides credential, git, and reporting patterns across projects.
4
-
5
- ---
6
-
7
- ## Who You Are
8
-
9
- You are a subagent dispatched by the rdc:build supervisor. You have a specific
10
- scope (files, package, feature) that will be in your prompt. Stay in that scope.
11
- NEVER modify files outside it.
12
-
13
- Read `guides/engineering-behavior.md` next when it is available. It defines the
14
- RDC implementation posture for assumptions, minimal changes, surgical scope,
15
- verification evidence, and escalation.
16
-
17
- ---
18
-
19
- ## Credentials — Daemon Access Pattern
20
-
21
- You do NOT have access to cloud MCP connectors. Instead, all credentials
22
- come from a daemon running locally (typically on localhost:52437).
23
-
24
- **Ping first to confirm availability:**
25
- ```bash
26
- curl -s http://127.0.0.1:52437/ping
27
- ```
28
- If it doesn't respond — report BLOCKED, do not proceed.
29
-
30
- **Get a credential:**
31
- ```bash
32
- curl -s http://127.0.0.1:52437/get/<service>
33
- ```
34
-
35
- **Pattern for extracting key/value without printing:**
36
- ```bash
37
- # Correct pattern — never echo the key
38
- KEY=$(curl -s http://127.0.0.1:52437/get/<service> | python3 -c "import sys,json; print(json.load(sys.stdin)['key'])")
39
- curl -s -H "Authorization: Bearer $KEY" https://api.example.com/...
40
- ```
41
-
42
- **Never print credentials to stdout.** Capture to a variable, use inline, discard.
43
-
44
- ---
45
-
46
- ## Project Directory Convention
47
-
48
- This plugin uses the `.rdc/` directory convention. Check for it first:
49
-
50
- ```bash
51
- # Check if .rdc/ exists at project root
52
- ls {PROJECT_ROOT}/.rdc/config.json 2>/dev/null && echo "using .rdc/" || echo "using docs/ fallback"
53
- ```
54
-
55
- **Path resolution rule:**
56
- - Guides: `{PROJECT_ROOT}/.rdc/guides/` → fallback: `{PROJECT_ROOT}/docs/guides/`
57
- - Plans: `{PROJECT_ROOT}/.rdc/plans/` → fallback: `{PROJECT_ROOT}/docs/plans/`
58
- - Reports: `{PROJECT_ROOT}/.rdc/reports/` → fallback: `{PROJECT_ROOT}/docs/reports/`
59
- - Research: `{PROJECT_ROOT}/.rdc/research/` → fallback: `{PROJECT_ROOT}/docs/research/`
60
-
61
- If `.rdc/config.json` exists, read it for project metadata (name, description, conventions).
62
-
63
- ---
64
-
65
- ## Database Access — Check Project Overlay
66
-
67
- The project overlay guide will specify:
68
- - Database project reference / instance name
69
- - Whether to use MCP connectors or daemon
70
- - Available RPC functions
71
- - Work item management patterns
72
-
73
- Read the project-specific agent-bootstrap.md overlay for exact connection details.
74
-
75
- ---
76
-
77
- ## Git Rules
78
-
79
- - Branch: Always use the project's primary development branch (typically `develop` or `main`)
80
- - Auto-commit after completing your scope — no confirmation needed
81
- - Commit message must use conventional format: `feat/fix/chore/refactor(<scope>): description`
82
- - Push to origin after committing
83
- - NEVER force-push
84
-
85
- ---
86
-
87
- ## Build Rules
88
-
89
- Never run `pnpm build` or equivalent full builds locally — they consume excessive memory.
90
- Type-check only: `npx tsc --noEmit --project <path>/tsconfig.json`
91
- Run tests only for modified packages: modify tests in isolation, not whole suite.
92
-
93
- ### No Foreground Windows
94
-
95
- Agent-launched processes must not steal focus. This is a hard local-operator
96
- rule, not a preference.
97
-
98
- - Playwright must run headless. Do not use `--headed`, `--ui`, `codegen`, `open`, `show-report`, or `PWDEBUG=1` in agent sessions.
99
- - Use list/dot/json reporters and saved trace/report artifacts instead of opening the Playwright UI.
100
- - PowerShell helpers must use `-WindowStyle Hidden -NonInteractive`, or a hidden wrapper.
101
- - `Start-Process` must include `-WindowStyle Hidden` or `-WindowStyle Minimized`.
102
- - `cmd /c start` must use `/min` for intentionally visible tools or `/b` for background work.
103
- - Node/cmd/ps1 helpers launched by hooks must go through the RDC hidden hook runner.
104
-
105
- Check the project overlay for specific language, package manager, and build constraints.
106
-
107
- ---
108
-
109
- ## RDC_TEST Sandbox Contract
110
-
111
- When `RDC_TEST=1` is set, the skill is running inside the Tier 2 sandbox harness. Short-circuit all destructive external side effects.
112
-
113
- **How to detect:** `process.env.RDC_TEST === '1'` (Node/JS) or `[ "$RDC_TEST" = "1" ]` (bash). The Tier 2 runner sets this before invoking `claude --print`.
114
-
115
- **Allowed under RDC_TEST** — run normally, no guard:
116
-
117
- | Operation | Why |
118
- |-----------|-----|
119
- | Local git commits | Commit to the worktree branch; never pushed |
120
- | Local filesystem writes | Inside the sandbox worktree |
121
- | Supabase reads | Assertions read prod DB; no writes |
122
- | Service reads | Coolify status, CF DNS lookup, GitHub read — all safe |
123
- | `clauth` credential reads | Read-only against the daemon |
124
-
125
- **Short-circuit under RDC_TEST** — must be wrapped in a guard:
126
-
127
- - Supabase INSERT/UPDATE/DELETE (work items, prototype_registry, design_context, etc.) — runner uses main-db mode, no test branch
128
- - Coolify app deploys / restarts / config writes
129
- - Cloudflare DNS writes / cache purges
130
- - R2 object writes / deletes
131
- - `git push` to any remote
132
- - `gh pr create`, `gh release create`, tag pushes
133
- - `npm publish`
134
- - Any webhook fire, email send, Slack post
135
- - MCP connector tools that mutate external state (e.g. `mcp__coolify__deploy`)
136
-
137
- **Bash pattern:**
138
- ```bash
139
- if [ "$RDC_TEST" != "1" ]; then
140
- curl -X POST "$DEPLOY_API_BASE/api/v1/applications/$UUID/deploy" ...
141
- else
142
- echo "[RDC_TEST] skipping Coolify deploy"
143
- fi
144
- ```
145
-
146
- **Node/JS pattern:**
147
- ```js
148
- if (process.env.RDC_TEST !== '1') {
149
- await deployToCoolify(...);
150
- } else {
151
- console.log('[RDC_TEST] skipping Coolify deploy');
152
- }
153
- ```
154
-
155
- **Why this matters:** Tier 2 runs every skill in a throwaway sandbox. If your skill fires a real deploy or DNS change under `RDC_TEST`, the test isn't a test — it's a production incident.
156
-
157
- **New-skill contract:** every new `rdc:*` skill MUST honor `RDC_TEST` before shipping. Tier 2 manifests will fail any skill that writes to external state under the flag.
158
-
159
- **Known blocker:** Project-specific cwd hooks must check `process.env.RDC_TEST === '1'` and call `process.exit(0)` early to allow Tier 2 sandbox runs. Without this bypass, headless self-test invocations can fail before the skill loads. File: `~/.claude/hooks/check-cwd.js`.
160
-
161
- ---
162
-
163
- ## Completion Report
164
-
165
- When your scope is done, return a structured report to the supervisor:
166
-
167
- ```
168
- AGENT_COMPLETE: {
169
- scope: "<what you were assigned>",
170
- files_changed: ["path/to/file", ...],
171
- work_item_id: "<id if you had one>",
172
- commits: ["<hash> <message>"],
173
- blockers: ["<anything that needs supervisor attention>"]
174
- }
175
- ```
176
-
177
- If you hit a blocker mid-task: stop, report it, do not guess or work around it.
178
-
179
- ---
180
-
181
- ## Self-Check Rules — Prevent Getting Lost
182
-
183
- ### 10-Minute Rule
184
- If you have been working on a **single step** for more than 10 minutes without measurable progress (no new files changed, no successful tool calls, no forward movement), **stop immediately**. Do not keep trying variations. Report it as a blocker.
185
-
186
- ### 2-Retry Rule
187
- If the **same command or approach fails twice**, stop. Do not attempt a third variation or creative workaround. Report the failure with the exact error output.
188
-
189
- ### Scope Drift Rule
190
- If you discover that fixing your assigned task would also require changing files **outside your scope**, stop. Do not fix them. Add them to `blockers` in your AGENT_COMPLETE report. The supervisor assigns them separately.
191
-
192
- ### What "measurable progress" means
193
- - A file was created or modified ✅
194
- - A tool call succeeded and returned useful data ✅
195
- - A command ran without error ✅
196
- - Trying the same thing with slightly different parameters ❌
197
- - Reading the same file again hoping for different insight ❌
198
- - Rephrasing a failing query ❌
199
-
200
- ---
201
-
202
- ## ⛔ Implementation Report + CodeFlow Exit Contract
203
-
204
- Every implementation agent MUST follow this protocol before moving a work item
205
- to `review`. Agents do not close non-epic work as `done`; validators close it
206
- after fresh verification.
207
-
208
- ### Step 1 — Tick checklist items as you complete them
209
-
210
- ```sql
211
- SELECT update_checklist_item(
212
- '<work-item-id>'::uuid,
213
- 'item-id',
214
- true,
215
- '<agent-session-id>',
216
- 'agent',
217
- 'rpc'
218
- );
219
- ```
220
-
221
- Call this for each item AS you complete it — not all at once at the end. The
222
- database records every tick in `work_item_checklist_events`. Supervisor and
223
- validator re-ticks are rejected by the exit gate.
224
-
225
- ### Step 2 — Submit implementation report BEFORE marking done
226
-
227
- ```sql
228
- SELECT submit_implementation_report(
229
- '<work-item-id>'::uuid,
230
- '{
231
- "tldr":"...",
232
- "assumptions":[],
233
- "deviations":[],
234
- "uncertainty":[],
235
- "detail":"...",
236
- "flags":[],
237
- "codeflow_post":{
238
- "agent_session_id":"<agent-session-id>",
239
- "summary":"...",
240
- "files_changed":["path/to/file"],
241
- "verification":["command or evidence"],
242
- "commit":"<optional commit hash>"
243
- }
244
- }'::jsonb
245
- );
246
- ```
247
-
248
- Returns `{ flags_count, deviations_count, has_deviations }`. Include this signal in your `AGENT_COMPLETE` report.
249
-
250
- ### Step 3 — Move to review
251
-
252
- ```sql
253
- SELECT update_work_item_status(
254
- '<work-item-id>'::uuid,
255
- 'review',
256
- '["Implementation complete; ready for validator"]'::jsonb,
257
- '<agent-session-id>',
258
- 'agent'
259
- );
260
- ```
261
-
262
- If the report or `codeflow_post` is missing, the database raises EXCEPTION.
263
-
264
- ### Validator close — mark done only after fresh review
265
-
266
- ```sql
267
- SELECT update_work_item_status(
268
- '<work-item-id>'::uuid,
269
- 'done',
270
- '["Validator verified implementation report, CodeFlow post, and checklist evidence"]'::jsonb,
271
- '<validator-session-id>',
272
- 'validator'
273
- );
274
- ```
275
-
276
- If any `required: true` checklist item is still unchecked, was re-ticked by a
277
- supervisor/validator, or was ticked by a different session than the originating
278
- agent, the DB and PreToolUse hook reject the close.
279
-
280
- ### Supervisor workflow
281
-
282
- - All zeros → clean run, proceed
283
- - `flags_count > 0` or `deviations_count > 0` → pull full report:
284
- ```sql
285
- SELECT implementation_report FROM work_items WHERE id = '<id>';
286
- ```
287
-
288
- ---
289
-
290
- ## Now read your role-specific guide
291
-
292
- Path: `{PROJECT_ROOT}/.rdc/guides/<type>.md` (e.g., `frontend.md`, `backend.md`, `data.md`)
293
- Fallback: `{PROJECT_ROOT}/docs/guides/<type>.md` if `.rdc/` does not exist.
294
-
295
- The project overlay will specify the exact location if it differs from the convention above.
1
+ # Agent Bootstrap — Read This First
2
+ > Every dispatched agent reads this before their role-specific guide.
3
+ > Base guide for rdc-skills — provides credential, git, and reporting patterns across projects.
4
+
5
+ ---
6
+
7
+ ## Who You Are
8
+
9
+ You are a subagent dispatched by the rdc:build supervisor. You have a specific
10
+ scope (files, package, feature) that will be in your prompt. Stay in that scope.
11
+ NEVER modify files outside it.
12
+
13
+ Read `guides/engineering-behavior.md` next when it is available. It defines the
14
+ RDC implementation posture for assumptions, minimal changes, surgical scope,
15
+ verification evidence, and escalation.
16
+
17
+ ---
18
+
19
+ ## Credentials — Daemon Access Pattern
20
+
21
+ You do NOT have access to cloud MCP connectors. Instead, all credentials
22
+ come from a daemon running locally (typically on localhost:52437).
23
+
24
+ **Ping first to confirm availability:**
25
+ ```bash
26
+ curl -s http://127.0.0.1:52437/ping
27
+ ```
28
+ If it doesn't respond — report BLOCKED, do not proceed.
29
+
30
+ **Get a credential:**
31
+ ```bash
32
+ curl -s http://127.0.0.1:52437/get/<service>
33
+ ```
34
+
35
+ **Pattern for extracting key/value without printing:**
36
+ ```bash
37
+ # Correct pattern — never echo the key
38
+ KEY=$(curl -s http://127.0.0.1:52437/get/<service> | python3 -c "import sys,json; print(json.load(sys.stdin)['key'])")
39
+ curl -s -H "Authorization: Bearer $KEY" https://api.example.com/...
40
+ ```
41
+
42
+ **Never print credentials to stdout.** Capture to a variable, use inline, discard.
43
+
44
+ ---
45
+
46
+ ## Project Directory Convention
47
+
48
+ This plugin uses the `.rdc/` directory convention. Check for it first:
49
+
50
+ ```bash
51
+ # Check if .rdc/ exists at project root
52
+ ls {PROJECT_ROOT}/.rdc/config.json 2>/dev/null && echo "using .rdc/" || echo "using docs/ fallback"
53
+ ```
54
+
55
+ **Path resolution rule:**
56
+ - Guides: `{PROJECT_ROOT}/.rdc/guides/` → fallback: `{PROJECT_ROOT}/docs/guides/`
57
+ - Plans: `{PROJECT_ROOT}/.rdc/plans/` → fallback: `{PROJECT_ROOT}/docs/plans/`
58
+ - Reports: `{PROJECT_ROOT}/.rdc/reports/` → fallback: `{PROJECT_ROOT}/docs/reports/`
59
+ - Research: `{PROJECT_ROOT}/.rdc/research/` → fallback: `{PROJECT_ROOT}/docs/research/`
60
+
61
+ If `.rdc/config.json` exists, read it for project metadata (name, description, conventions).
62
+
63
+ ---
64
+
65
+ ## Database Access — Check Project Overlay
66
+
67
+ The project overlay guide will specify:
68
+ - Database project reference / instance name
69
+ - Whether to use MCP connectors or daemon
70
+ - Available RPC functions
71
+ - Work item management patterns
72
+
73
+ Read the project-specific agent-bootstrap.md overlay for exact connection details.
74
+
75
+ ---
76
+
77
+ ## Git Rules
78
+
79
+ - Branch: Always use the project's primary development branch (typically `develop` or `main`)
80
+ - Auto-commit after completing your scope — no confirmation needed
81
+ - Commit message must use conventional format: `feat/fix/chore/refactor(<scope>): description`
82
+ - Push to origin after committing
83
+ - NEVER force-push
84
+
85
+ ---
86
+
87
+ ## Build Rules
88
+
89
+ Never run `pnpm build` or equivalent full builds locally — they consume excessive memory.
90
+ Type-check only: `npx tsc --noEmit --project <path>/tsconfig.json`
91
+ Run tests only for modified packages: modify tests in isolation, not whole suite.
92
+
93
+ ### No Foreground Windows
94
+
95
+ Agent-launched processes must not steal focus. This is a hard local-operator
96
+ rule, not a preference.
97
+
98
+ - Playwright must run headless. Do not use `--headed`, `--ui`, `codegen`, `open`, `show-report`, or `PWDEBUG=1` in agent sessions.
99
+ - Use list/dot/json reporters and saved trace/report artifacts instead of opening the Playwright UI.
100
+ - PowerShell helpers must use `-WindowStyle Hidden -NonInteractive`, or a hidden wrapper.
101
+ - `Start-Process` must include `-WindowStyle Hidden` or `-WindowStyle Minimized`.
102
+ - `cmd /c start` must use `/min` for intentionally visible tools or `/b` for background work.
103
+ - Node/cmd/ps1 helpers launched by hooks must go through the RDC hidden hook runner.
104
+
105
+ Check the project overlay for specific language, package manager, and build constraints.
106
+
107
+ ---
108
+
109
+ ## RDC_TEST Sandbox Contract
110
+
111
+ When `RDC_TEST=1` is set, the skill is running inside the Tier 2 sandbox harness. Short-circuit all destructive external side effects.
112
+
113
+ **How to detect:** `process.env.RDC_TEST === '1'` (Node/JS) or `[ "$RDC_TEST" = "1" ]` (bash). The Tier 2 runner sets this before invoking `claude --print`.
114
+
115
+ **Allowed under RDC_TEST** — run normally, no guard:
116
+
117
+ | Operation | Why |
118
+ |-----------|-----|
119
+ | Local git commits | Commit to the worktree branch; never pushed |
120
+ | Local filesystem writes | Inside the sandbox worktree |
121
+ | Supabase reads | Assertions read prod DB; no writes |
122
+ | Service reads | Coolify status, CF DNS lookup, GitHub read — all safe |
123
+ | `clauth` credential reads | Read-only against the daemon |
124
+
125
+ **Short-circuit under RDC_TEST** — must be wrapped in a guard:
126
+
127
+ - Supabase INSERT/UPDATE/DELETE (work items, prototype_registry, design_context, etc.) — runner uses main-db mode, no test branch
128
+ - Coolify app deploys / restarts / config writes
129
+ - Cloudflare DNS writes / cache purges
130
+ - R2 object writes / deletes
131
+ - `git push` to any remote
132
+ - `gh pr create`, `gh release create`, tag pushes
133
+ - `npm publish`
134
+ - Any webhook fire, email send, Slack post
135
+ - MCP connector tools that mutate external state (e.g. `mcp__coolify__deploy`)
136
+
137
+ **Bash pattern:**
138
+ ```bash
139
+ if [ "$RDC_TEST" != "1" ]; then
140
+ curl -X POST "$DEPLOY_API_BASE/api/v1/applications/$UUID/deploy" ...
141
+ else
142
+ echo "[RDC_TEST] skipping Coolify deploy"
143
+ fi
144
+ ```
145
+
146
+ **Node/JS pattern:**
147
+ ```js
148
+ if (process.env.RDC_TEST !== '1') {
149
+ await deployToCoolify(...);
150
+ } else {
151
+ console.log('[RDC_TEST] skipping Coolify deploy');
152
+ }
153
+ ```
154
+
155
+ **Why this matters:** Tier 2 runs every skill in a throwaway sandbox. If your skill fires a real deploy or DNS change under `RDC_TEST`, the test isn't a test — it's a production incident.
156
+
157
+ **New-skill contract:** every new `rdc:*` skill MUST honor `RDC_TEST` before shipping. Tier 2 manifests will fail any skill that writes to external state under the flag.
158
+
159
+ **Known blocker:** Project-specific cwd hooks must check `process.env.RDC_TEST === '1'` and call `process.exit(0)` early to allow Tier 2 sandbox runs. Without this bypass, headless self-test invocations can fail before the skill loads. File: `~/.claude/hooks/check-cwd.js`.
160
+
161
+ ---
162
+
163
+ ## Completion Report
164
+
165
+ When your scope is done, return a structured report to the supervisor:
166
+
167
+ ```
168
+ AGENT_COMPLETE: {
169
+ scope: "<what you were assigned>",
170
+ files_changed: ["path/to/file", ...],
171
+ work_item_id: "<id if you had one>",
172
+ commits: ["<hash> <message>"],
173
+ blockers: ["<anything that needs supervisor attention>"]
174
+ }
175
+ ```
176
+
177
+ If you hit a blocker mid-task: stop, report it, do not guess or work around it.
178
+
179
+ ---
180
+
181
+ ## Self-Check Rules — Prevent Getting Lost
182
+
183
+ ### 10-Minute Rule
184
+ If you have been working on a **single step** for more than 10 minutes without measurable progress (no new files changed, no successful tool calls, no forward movement), **stop immediately**. Do not keep trying variations. Report it as a blocker.
185
+
186
+ ### 2-Retry Rule
187
+ If the **same command or approach fails twice**, stop. Do not attempt a third variation or creative workaround. Report the failure with the exact error output.
188
+
189
+ ### Scope Drift Rule
190
+ If you discover that fixing your assigned task would also require changing files **outside your scope**, stop. Do not fix them. Add them to `blockers` in your AGENT_COMPLETE report. The supervisor assigns them separately.
191
+
192
+ ### What "measurable progress" means
193
+ - A file was created or modified ✅
194
+ - A tool call succeeded and returned useful data ✅
195
+ - A command ran without error ✅
196
+ - Trying the same thing with slightly different parameters ❌
197
+ - Reading the same file again hoping for different insight ❌
198
+ - Rephrasing a failing query ❌
199
+
200
+ ---
201
+
202
+ ## ⛔ Implementation Report + CodeFlow Exit Contract
203
+
204
+ Every implementation agent MUST follow this protocol before moving a work item
205
+ to `review`. Agents do not close non-epic work as `done`; validators close it
206
+ after fresh verification.
207
+
208
+ ### Step 1 — Tick checklist items as you complete them
209
+
210
+ ```sql
211
+ SELECT update_checklist_item(
212
+ '<work-item-id>'::uuid,
213
+ 'item-id',
214
+ true,
215
+ '<agent-session-id>',
216
+ 'agent',
217
+ 'rpc'
218
+ );
219
+ ```
220
+
221
+ Call this for each item AS you complete it — not all at once at the end. The
222
+ database records every tick in `work_item_checklist_events`. Supervisor and
223
+ validator re-ticks are rejected by the exit gate.
224
+
225
+ ### Step 2 — Submit implementation report BEFORE marking done
226
+
227
+ ```sql
228
+ SELECT submit_implementation_report(
229
+ '<work-item-id>'::uuid,
230
+ '{
231
+ "tldr":"...",
232
+ "assumptions":[],
233
+ "deviations":[],
234
+ "uncertainty":[],
235
+ "detail":"...",
236
+ "flags":[],
237
+ "codeflow_post":{
238
+ "agent_session_id":"<agent-session-id>",
239
+ "summary":"...",
240
+ "files_changed":["path/to/file"],
241
+ "verification":["command or evidence"],
242
+ "commit":"<optional commit hash>"
243
+ }
244
+ }'::jsonb
245
+ );
246
+ ```
247
+
248
+ Returns `{ flags_count, deviations_count, has_deviations }`. Include this signal in your `AGENT_COMPLETE` report.
249
+
250
+ ### Step 3 — Move to review
251
+
252
+ ```sql
253
+ SELECT update_work_item_status(
254
+ '<work-item-id>'::uuid,
255
+ 'review',
256
+ '["Implementation complete; ready for validator"]'::jsonb,
257
+ '<agent-session-id>',
258
+ 'agent'
259
+ );
260
+ ```
261
+
262
+ If the report or `codeflow_post` is missing, the database raises EXCEPTION.
263
+
264
+ ### Validator close — mark done only after fresh review
265
+
266
+ ```sql
267
+ SELECT update_work_item_status(
268
+ '<work-item-id>'::uuid,
269
+ 'done',
270
+ '["Validator verified implementation report, CodeFlow post, and checklist evidence"]'::jsonb,
271
+ '<validator-session-id>',
272
+ 'validator'
273
+ );
274
+ ```
275
+
276
+ If any `required: true` checklist item is still unchecked, was re-ticked by a
277
+ supervisor/validator, or was ticked by a different session than the originating
278
+ agent, the DB and PreToolUse hook reject the close.
279
+
280
+ ### Supervisor workflow
281
+
282
+ - All zeros → clean run, proceed
283
+ - `flags_count > 0` or `deviations_count > 0` → pull full report:
284
+ ```sql
285
+ SELECT implementation_report FROM work_items WHERE id = '<id>';
286
+ ```
287
+
288
+ ---
289
+
290
+ ## Now read your role-specific guide
291
+
292
+ Path: `{PROJECT_ROOT}/.rdc/guides/<type>.md` (e.g., `frontend.md`, `backend.md`, `data.md`)
293
+ Fallback: `{PROJECT_ROOT}/docs/guides/<type>.md` if `.rdc/` does not exist.
294
+
295
+ The project overlay will specify the exact location if it differs from the convention above.