@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,220 +1,220 @@
1
- ---
2
- name: rdc:overnight
3
- description: >-
4
- Usage `rdc:overnight [epic-id|label=X]` — unattended overnight supervisor, chains preplan → plan → build → review → report across all high-priority epics in --unattended mode. Use for "run overnight", "build while I sleep".
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
- > If dispatching subagents or running as a subagent: read `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` first (fallback: `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md`).
12
-
13
- > **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.
14
-
15
-
16
- # rdc:overnight — Overnight Build Supervisor
17
-
18
- ## When to Use
19
- - Starting an unattended multi-hour build session
20
- - Project lead says "run overnight", "build everything", "go while I sleep"
21
- - Kicking off a full epic queue after scoping is agreed
22
-
23
- ## Arguments
24
- - `/rdc:overnight` — work all urgent/high priority todo epics
25
- - `/rdc:overnight <epic-id>` — work a specific epic only
26
- - `/rdc:overnight label=<label>` — work epics matching label
27
-
28
- ## Phase 1 — Pre-flight
29
-
30
- **First action — set the overnight sentinel** so the `no-stop-open-epics` Stop hook engages (interactive sessions are not gated by it):
31
-
32
- ```bash
33
- mkdir -p {PROJECT_ROOT}/.rdc && touch {PROJECT_ROOT}/.rdc/overnight.lock
34
- ```
35
-
36
- **Last action at end of run (success OR failure) — remove the sentinel:**
37
-
38
- ```bash
39
- rm -f {PROJECT_ROOT}/.rdc/overnight.lock
40
- ```
41
-
42
- If the sentinel file does not exist, the Stop hook will NOT block — which means interactive sessions stop freely and only `rdc:overnight` is held to the "drain the queue" contract.
43
-
44
- Before touching any code, verify the environment is safe:
45
-
46
- 1. **Clauth daemon alive:**
47
- ```bash
48
- curl -s http://127.0.0.1:52437/ping
49
- ```
50
- If not responding: report `BLOCKED: credential daemon offline` and exit. Do not proceed.
51
-
52
- 2. **Git state clean:**
53
- ```bash
54
- git status --short
55
- ```
56
- Must be on the development branch with no uncommitted changes. If dirty: commit or stash first.
57
-
58
- 3. **Baseline review:**
59
- Run `rdc:review --unattended`. If `REVIEW_STATUS.verdict = "HAS_ISSUES"` and
60
- issues cannot be auto-fixed: report `BLOCKED: codebase has pre-existing issues` and exit.
61
- A dirty baseline overnight compounds into a disaster by morning.
62
-
63
- If all three pass: proceed to Phase 2.
64
-
65
- ## Phase 2 — Load Scope
66
-
67
- Determine which epics to work:
68
-
69
- - **Specific epic arg:** load that one epic via `get_work_items_by_epic()`
70
- - **Label filter:** `SELECT get_open_epics(p_label_filter := '<label>')`
71
- - **No arg (default):** `SELECT get_open_epics()` filtered to:
72
- - `priority IN ('urgent', 'high')`
73
- - `status IN ('todo', 'in_progress')`
74
- - Order: urgent first, then high, then by `created_at`
75
-
76
- Log the epic queue at the start of `.rdc/reports/overnight-<YYYY-MM-DD>.md` (fallback: `.rdc/reports/overnight-<YYYY-MM-DD>.md` if `.rdc/` does not exist).
77
-
78
- ## Phase 3 — Epic Loop
79
-
80
- For each epic in the queue, run this sequence:
81
-
82
- ### 3a. Research (if needed)
83
- Condition: epic has 0 child tasks AND no matching doc in `.rdc/plans/` (or `.rdc/plans/` as fallback)
84
-
85
- ```
86
- rdc:preplan <topic> --unattended
87
- ```
88
-
89
- Check `PREPLAN_STATUS.recommendation_confidence`:
90
- - `"high"` or `"medium"`: proceed
91
- - `"low"`: escalate via advisor tool (see Escalation Protocol below)
92
- - If advisor gives direction: proceed with that direction
93
- - If advisor cannot resolve: skip this epic, log reason, move to next
94
-
95
- ### 3b. Plan (if no tasks exist)
96
- Condition: epic has 0 child tasks after preplan
97
-
98
- ```
99
- rdc:plan <epic-id> --unattended
100
- ```
101
-
102
- Check `PLAN_STATUS.task_count > 0` before continuing.
103
- If 0 tasks created: escalate via advisor, then skip if still unresolved.
104
-
105
- ### 3c. Build
106
-
107
- This skill delegates to rdc:build which uses typed agent dispatch. See rdc:build for agent type classification.
108
-
109
- ```
110
- rdc:build <epic-id> --unattended
111
- ```
112
-
113
- Agents receive the relevant guide file from `.rdc/guides/` (fallback: `.rdc/guides/`) based on their work package type.
114
-
115
- After each wave: check `BUILD_STATUS`. If `escalated: true`, log the escalation
116
- in the overnight doc and continue — don't stop the loop.
117
-
118
- ### 3d. Review
119
-
120
- ```
121
- rdc:review --unattended
122
- ```
123
-
124
- Check `REVIEW_STATUS.verdict`:
125
- - `"CLEAN"`: mark epic `done` in work_items, push, continue to next epic
126
- - `"HAS_ISSUES"` with `escalations > 0`: log issues, push what's clean, continue
127
- - `"HAS_ISSUES"` with `escalations = 0` (all auto-fixed): push, continue
128
-
129
- ### 3e. Commit checkpoint
130
-
131
- After each epic (pass or fail):
132
- ```bash
133
- if [ "$RDC_TEST" != "1" ]; then
134
- git push origin {development-branch}
135
- else
136
- echo "[RDC_TEST] skipping git push origin {development-branch}"
137
- fi
138
- ```
139
-
140
- This ensures every epic's work is saved regardless of what comes next.
141
-
142
- ## Phase 4 — Exit
143
-
144
- After all epics are processed:
145
-
146
- 1. Run `rdc:report --unattended`
147
-
148
- 2. Write session summary to `.rdc/reports/overnight-<YYYY-MM-DD>.md` (fallback: `.rdc/reports/overnight-<YYYY-MM-DD>.md`):
149
- ```markdown
150
- # Overnight Session — YYYY-MM-DD
151
-
152
- ## Started
153
- <timestamp>
154
-
155
- ## Epics Attempted
156
- | Epic | Status | Tasks Done | Commits |
157
-
158
- ## Epics Completed
159
- <list with epic IDs>
160
-
161
- ## Escalations
162
- N advisor calls — details:
163
- - <epic>: <what was escalated> → <advisor response>
164
-
165
- ## Blockers Remaining
166
- <any epics skipped or partially done>
167
-
168
- ## Git Summary
169
- - Total commits: N
170
- - Push status: ✅
171
-
172
- ## Completed
173
- <timestamp>
174
- ```
175
-
176
- 3. Final push:
177
- ```bash
178
- if [ "$RDC_TEST" != "1" ]; then
179
- git push origin {development-branch}
180
- else
181
- echo "[RDC_TEST] skipping final git push origin {development-branch}"
182
- fi
183
- ```
184
-
185
- ## Escalation Protocol
186
-
187
- The advisor tool pairs this executor with a high-level model for high-stakes decisions.
188
- Use it when genuinely stuck — not for every small uncertainty.
189
-
190
- **Escalation triggers:**
191
- - `PREPLAN_STATUS.recommendation_confidence = "low"` (too many unknowns)
192
- - `PLAN_STATUS.task_count = 0` after planning (nothing actionable)
193
- - Build agent fails twice on the same task
194
- - `REVIEW_STATUS` has unfixable issues requiring architectural judgment
195
- - Credential daemon goes down mid-session (escalate before exiting)
196
-
197
- **How to escalate:**
198
- Provide the advisor with:
199
- 1. What was attempted and what failed
200
- 2. The error or ambiguity in detail
201
- 3. Two most likely paths forward with tradeoffs
202
- 4. Which epic/task is blocked
203
-
204
- **After advisor responds:**
205
- - Log the guidance in the overnight doc
206
- - Resume the loop from where it stopped
207
- - If advisor cannot resolve: mark task/epic `blocked`, log reason, skip to next
208
-
209
- **Max escalations:** 3 per epic. After 3, skip the epic and log.
210
-
211
- ## Safety Rules
212
-
213
- - Branch: development branch always — NEVER touch main/production
214
- - NEVER run `pnpm build` — use `npx tsc --noEmit` for typecheck, vitest for tests only on modified packages
215
- - NEVER let agents overlap on the same files
216
- - Push after every epic, not just at the end
217
- - Update Supabase work items in real time throughout
218
- - Max 2 hours per epic — if exceeded, skip and log `TIMEOUT`
219
- - If credential daemon goes down mid-session: write current state to overnight doc, push, exit gracefully
220
- - If git push fails: log the failure, attempt rebase, retry once — do not force push
1
+ ---
2
+ name: rdc:overnight
3
+ description: >-
4
+ Usage `rdc:overnight [epic-id|label=X]` — unattended overnight supervisor, chains preplan → plan → build → review → report across all high-priority epics in --unattended mode. Use for "run overnight", "build while I sleep".
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
+ > If dispatching subagents or running as a subagent: read `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` first (fallback: `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md`).
12
+
13
+ > **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.
14
+
15
+
16
+ # rdc:overnight — Overnight Build Supervisor
17
+
18
+ ## When to Use
19
+ - Starting an unattended multi-hour build session
20
+ - Project lead says "run overnight", "build everything", "go while I sleep"
21
+ - Kicking off a full epic queue after scoping is agreed
22
+
23
+ ## Arguments
24
+ - `/rdc:overnight` — work all urgent/high priority todo epics
25
+ - `/rdc:overnight <epic-id>` — work a specific epic only
26
+ - `/rdc:overnight label=<label>` — work epics matching label
27
+
28
+ ## Phase 1 — Pre-flight
29
+
30
+ **First action — set the overnight sentinel** so the `no-stop-open-epics` Stop hook engages (interactive sessions are not gated by it):
31
+
32
+ ```bash
33
+ mkdir -p {PROJECT_ROOT}/.rdc && touch {PROJECT_ROOT}/.rdc/overnight.lock
34
+ ```
35
+
36
+ **Last action at end of run (success OR failure) — remove the sentinel:**
37
+
38
+ ```bash
39
+ rm -f {PROJECT_ROOT}/.rdc/overnight.lock
40
+ ```
41
+
42
+ If the sentinel file does not exist, the Stop hook will NOT block — which means interactive sessions stop freely and only `rdc:overnight` is held to the "drain the queue" contract.
43
+
44
+ Before touching any code, verify the environment is safe:
45
+
46
+ 1. **Clauth daemon alive:**
47
+ ```bash
48
+ curl -s http://127.0.0.1:52437/ping
49
+ ```
50
+ If not responding: report `BLOCKED: credential daemon offline` and exit. Do not proceed.
51
+
52
+ 2. **Git state clean:**
53
+ ```bash
54
+ git status --short
55
+ ```
56
+ Must be on the development branch with no uncommitted changes. If dirty: commit or stash first.
57
+
58
+ 3. **Baseline review:**
59
+ Run `rdc:review --unattended`. If `REVIEW_STATUS.verdict = "HAS_ISSUES"` and
60
+ issues cannot be auto-fixed: report `BLOCKED: codebase has pre-existing issues` and exit.
61
+ A dirty baseline overnight compounds into a disaster by morning.
62
+
63
+ If all three pass: proceed to Phase 2.
64
+
65
+ ## Phase 2 — Load Scope
66
+
67
+ Determine which epics to work:
68
+
69
+ - **Specific epic arg:** load that one epic via `get_work_items_by_epic()`
70
+ - **Label filter:** `SELECT get_open_epics(p_label_filter := '<label>')`
71
+ - **No arg (default):** `SELECT get_open_epics()` filtered to:
72
+ - `priority IN ('urgent', 'high')`
73
+ - `status IN ('todo', 'in_progress')`
74
+ - Order: urgent first, then high, then by `created_at`
75
+
76
+ Log the epic queue at the start of `.rdc/reports/overnight-<YYYY-MM-DD>.md` (fallback: `.rdc/reports/overnight-<YYYY-MM-DD>.md` if `.rdc/` does not exist).
77
+
78
+ ## Phase 3 — Epic Loop
79
+
80
+ For each epic in the queue, run this sequence:
81
+
82
+ ### 3a. Research (if needed)
83
+ Condition: epic has 0 child tasks AND no matching doc in `.rdc/plans/` (or `.rdc/plans/` as fallback)
84
+
85
+ ```
86
+ rdc:preplan <topic> --unattended
87
+ ```
88
+
89
+ Check `PREPLAN_STATUS.recommendation_confidence`:
90
+ - `"high"` or `"medium"`: proceed
91
+ - `"low"`: escalate via advisor tool (see Escalation Protocol below)
92
+ - If advisor gives direction: proceed with that direction
93
+ - If advisor cannot resolve: skip this epic, log reason, move to next
94
+
95
+ ### 3b. Plan (if no tasks exist)
96
+ Condition: epic has 0 child tasks after preplan
97
+
98
+ ```
99
+ rdc:plan <epic-id> --unattended
100
+ ```
101
+
102
+ Check `PLAN_STATUS.task_count > 0` before continuing.
103
+ If 0 tasks created: escalate via advisor, then skip if still unresolved.
104
+
105
+ ### 3c. Build
106
+
107
+ This skill delegates to rdc:build which uses typed agent dispatch. See rdc:build for agent type classification.
108
+
109
+ ```
110
+ rdc:build <epic-id> --unattended
111
+ ```
112
+
113
+ Agents receive the relevant guide file from `.rdc/guides/` (fallback: `.rdc/guides/`) based on their work package type.
114
+
115
+ After each wave: check `BUILD_STATUS`. If `escalated: true`, log the escalation
116
+ in the overnight doc and continue — don't stop the loop.
117
+
118
+ ### 3d. Review
119
+
120
+ ```
121
+ rdc:review --unattended
122
+ ```
123
+
124
+ Check `REVIEW_STATUS.verdict`:
125
+ - `"CLEAN"`: mark epic `done` in work_items, push, continue to next epic
126
+ - `"HAS_ISSUES"` with `escalations > 0`: log issues, push what's clean, continue
127
+ - `"HAS_ISSUES"` with `escalations = 0` (all auto-fixed): push, continue
128
+
129
+ ### 3e. Commit checkpoint
130
+
131
+ After each epic (pass or fail):
132
+ ```bash
133
+ if [ "$RDC_TEST" != "1" ]; then
134
+ git push origin {development-branch}
135
+ else
136
+ echo "[RDC_TEST] skipping git push origin {development-branch}"
137
+ fi
138
+ ```
139
+
140
+ This ensures every epic's work is saved regardless of what comes next.
141
+
142
+ ## Phase 4 — Exit
143
+
144
+ After all epics are processed:
145
+
146
+ 1. Run `rdc:report --unattended`
147
+
148
+ 2. Write session summary to `.rdc/reports/overnight-<YYYY-MM-DD>.md` (fallback: `.rdc/reports/overnight-<YYYY-MM-DD>.md`):
149
+ ```markdown
150
+ # Overnight Session — YYYY-MM-DD
151
+
152
+ ## Started
153
+ <timestamp>
154
+
155
+ ## Epics Attempted
156
+ | Epic | Status | Tasks Done | Commits |
157
+
158
+ ## Epics Completed
159
+ <list with epic IDs>
160
+
161
+ ## Escalations
162
+ N advisor calls — details:
163
+ - <epic>: <what was escalated> → <advisor response>
164
+
165
+ ## Blockers Remaining
166
+ <any epics skipped or partially done>
167
+
168
+ ## Git Summary
169
+ - Total commits: N
170
+ - Push status: ✅
171
+
172
+ ## Completed
173
+ <timestamp>
174
+ ```
175
+
176
+ 3. Final push:
177
+ ```bash
178
+ if [ "$RDC_TEST" != "1" ]; then
179
+ git push origin {development-branch}
180
+ else
181
+ echo "[RDC_TEST] skipping final git push origin {development-branch}"
182
+ fi
183
+ ```
184
+
185
+ ## Escalation Protocol
186
+
187
+ The advisor tool pairs this executor with a high-level model for high-stakes decisions.
188
+ Use it when genuinely stuck — not for every small uncertainty.
189
+
190
+ **Escalation triggers:**
191
+ - `PREPLAN_STATUS.recommendation_confidence = "low"` (too many unknowns)
192
+ - `PLAN_STATUS.task_count = 0` after planning (nothing actionable)
193
+ - Build agent fails twice on the same task
194
+ - `REVIEW_STATUS` has unfixable issues requiring architectural judgment
195
+ - Credential daemon goes down mid-session (escalate before exiting)
196
+
197
+ **How to escalate:**
198
+ Provide the advisor with:
199
+ 1. What was attempted and what failed
200
+ 2. The error or ambiguity in detail
201
+ 3. Two most likely paths forward with tradeoffs
202
+ 4. Which epic/task is blocked
203
+
204
+ **After advisor responds:**
205
+ - Log the guidance in the overnight doc
206
+ - Resume the loop from where it stopped
207
+ - If advisor cannot resolve: mark task/epic `blocked`, log reason, skip to next
208
+
209
+ **Max escalations:** 3 per epic. After 3, skip the epic and log.
210
+
211
+ ## Safety Rules
212
+
213
+ - Branch: development branch always — NEVER touch main/production
214
+ - NEVER run `pnpm build` — use `npx tsc --noEmit` for typecheck, vitest for tests only on modified packages
215
+ - NEVER let agents overlap on the same files
216
+ - Push after every epic, not just at the end
217
+ - Update Supabase work items in real time throughout
218
+ - Max 2 hours per epic — if exceeded, skip and log `TIMEOUT`
219
+ - If credential daemon goes down mid-session: write current state to overnight doc, push, exit gracefully
220
+ - If git push fails: log the failure, attempt rebase, retry once — do not force push