@lifeaitools/rdc-skills 0.24.42 → 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 -27
  198. package/tests/release-contract.test.mjs +0 -16
@@ -1,236 +1,236 @@
1
- ---
2
- name: rdc:handoff
3
- description: "Usage `rdc:handoff [--from-prototype <id>]` — Convert a finalized plan or prototype into CLI-ready artifacts: writes .rdc/plans/, creates Supabase work items with DoD checklists, registers prototype if present. Bridge between planning session and rdc:build."
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
- > 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`).
11
-
12
- > **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. Supabase work item writes, prototype registry inserts, design context inserts, and git push are skipped under `RDC_TEST=1`.
13
-
14
-
15
- # rdc:handoff — Planning → CLI Bridge
16
-
17
- ## When to Use
18
-
19
- - A prototype has been built and needs production implementation
20
- - A design decision has been made and needs to be executed
21
- - Project lead says "hand this off", "give this to the CLI", "write it up"
22
- - A plan exists in the conversation but hasn't been saved to disk or database yet
23
-
24
- ## What This Skill Produces
25
-
26
- 1. **Plan doc** → `.rdc/plans/<topic-slug>.md` (fallback: `.rdc/plans/<topic-slug>.md`)
27
- 2. **Database epic + child tasks** (with agent types and guide file refs)
28
- 3. **Prototype registry entry** (if a prototype was built)
29
- 4. **Design context entries** (for decisions made in the session)
30
-
31
- ## Procedure
32
-
33
- ### Step 1 — Extract the Plan
34
-
35
- Identify from the conversation:
36
- - What is the goal?
37
- - What prototypes or designs were built? Where are they?
38
- - What decisions were made? What was rejected and why?
39
- - What is the sequencing (what depends on what)?
40
- - Which agent types are needed?
41
-
42
- ### Step 2 — Write the Plan Doc
43
-
44
- ```
45
- .rdc/plans/<topic-slug>.md
46
- ```
47
- (fallback: `.rdc/plans/<topic-slug>.md` if `.rdc/` does not exist)
48
-
49
- Template:
50
- ```markdown
51
- # Plan: <Topic>
52
- > Route: <app route or package>
53
- > Status: Ready for CLI build
54
- > Created: <date>
55
- > Source: planning session
56
-
57
- ---
58
-
59
- ## What Already Exists (Do NOT Re-implement)
60
-
61
- [List any existing components, database tables, or files
62
- that agents must use rather than recreate]
63
-
64
- ## What Was Built in Planning (Prototype)
65
-
66
- [Describe the prototype — file location, key design decisions,
67
- what to preserve vs what to adapt]
68
-
69
- ## Work Packages
70
-
71
- ### Package 1 — <Name>
72
- - Agent type: frontend | backend | data | design | infra | content | cs2 | viz
73
- - Guide: .rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md)
74
- - Files to create/modify: [list]
75
- - Deliverables: [specific outputs]
76
- - Depends on: [other packages if sequential]
77
-
78
- ### Package 2 — <Name>
79
- [...]
80
-
81
- ## Sequencing
82
-
83
- Wave 1 (parallel): Package 1, Package 2
84
- Wave 2 (after Wave 1): Package 3
85
-
86
- ## Checklist Decomposition Matrix
87
-
88
- | Work item | Atomic deliverable | Surface type | Route or file path | Preconditions / fixture data | Action | Expected result | Verification artifact | Owner package | Status |
89
- |-----------|-------------------|--------------|--------------------|------------------------------|--------|-----------------|-----------------------|---------------|--------|
90
- | WP-1 | decomp-<surface>-<slug> | screen | /route | seeded fixture | open / click / submit | observable result | Playwright screenshot / route probe / test name | Package 1 | todo |
91
-
92
- Rules:
93
- - One observable behavior per row.
94
- - Each row must be independently pass/fail.
95
- - Each implementation work item must have matching `decomp-*` checklist rows and `test-*` verification rows.
96
- - UI routes list state rows separately: empty, loading, loaded, error, create/edit/detail/mobile where applicable.
97
- - API and DB rows include success, failure/guard, and side-effect proof where applicable.
98
-
99
- ## Checklist Quality Gate
100
-
101
- verdict: PASS | FAIL
102
- failures:
103
- - <missing/coarse row if any>
104
- deferred:
105
- - <explicitly out-of-scope row if any>
106
-
107
- ## Definition of Done
108
-
109
- - [ ] [specific acceptance criterion]
110
- - [ ] [build verification: zero new TS errors]
111
- - [ ] [functional test]
112
- ```
113
-
114
- ### Step 3 — Create Database Epic + Tasks
115
-
116
- ```sql
117
- -- Check for existing epics first
118
- SELECT get_open_epics();
119
-
120
- -- Create epic
121
- SELECT insert_work_item(
122
- p_title := 'EPIC: <Topic>',
123
- p_description := 'See .rdc/plans/<topic-slug>.md for full spec.',
124
- p_item_type := 'epic',
125
- p_priority := 'high',
126
- p_labels := ARRAY['<system-label>'],
127
- p_source := 'planning'
128
- );
129
-
130
- -- Create tasks (one per work package)
131
- SELECT insert_work_item(
132
- p_title := '<Package Name>',
133
- p_description := 'What: <deliverable>
134
- Where: <files>
135
- Agent type: <type>
136
- Guide: .rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md)
137
- Design doc: .rdc/plans/<topic-slug>.md (fallback: .rdc/plans/<topic-slug>.md)
138
- Checklist: include required rows from the plan matrix:
139
- - decomp-<surface>-<slug>: route/file=<path> | action=<action> | expect=<result> | evidence=<artifact>
140
- - test-<type>-<slug>: <verification command or artifact>
141
- Depends on: <other task if applicable>
142
- Est: <hours>',
143
- p_parent_id := '<epic-uuid>'::uuid,
144
- p_item_type := 'task',
145
- p_priority := 'high',
146
- p_labels := ARRAY['<label>'],
147
- p_estimated_hours := 2,
148
- p_source := 'planning'
149
- );
150
- ```
151
-
152
- Do not create build-ready tasks unless the plan has `## Checklist Decomposition Matrix` and `## Checklist Quality Gate` with `verdict: PASS`. If the matrix fails, save the plan as `Status: Needs checklist repair` and return the failure list instead of creating dispatchable implementation tasks.
153
-
154
- ### Step 4 — Register Prototype (if one was built)
155
-
156
- ```sql
157
- INSERT INTO prototype_registry (name, component, source_path, notes, created_by)
158
- VALUES (
159
- '<Component Name> v1',
160
- '<ComponentName>',
161
- 'docs/source/<filename>.jsx',
162
- '<Key design decisions, data shapes, what to preserve>',
163
- 'planning'
164
- )
165
- ON CONFLICT DO NOTHING;
166
- ```
167
-
168
- ### Step 5 — Record Design Decisions
169
-
170
- ```sql
171
- INSERT INTO design_context (topic, context_type, summary, source, created_by)
172
- VALUES
173
- ('<Topic>', 'decision', '<What was decided and why>', 'planning session', 'planning'),
174
- ('<Topic>', 'rejected', '<What was considered but not chosen, and why>', 'planning session', 'planning');
175
- ```
176
-
177
- ### Step 6 — Dispatch to CLI (worktree-isolated) — the ONLY sanctioned spawn
178
-
179
- If you are handing this off to a CLI worker **now** (e.g. from a claude.ai session), do
180
- **NOT** improvise a CLI spawn. Two spawn paths exist and they land in different trees:
181
-
182
- | Dispatch path | Where the session runs | Use for handoff? |
183
- |---------------|------------------------|------------------|
184
- | **TinTin dispatch** — `tintin_dispatch` MCP tool, or `POST http://127.0.0.1:52437/tintin/dispatch`, `agent: "claude"` | A **fresh isolated worktree** `C:\Dev\regen-root.wt\tintin-claude-<sid>` on `develop` — `isolation: "worktree"` is the **default** (it runs `git worktree add -b wt/tintin/claude/<sid> <lane> develop`) | ✅ **YES** |
185
- | `call_agent` / a supervisor-run / a bare `claude` in `C:\Dev\regen-root` | The **shared SV / main tree** — `resolveDispatchCwd` falls back to the main tree when no cwd is given | ❌ **NEVER** — this dumps a new-app build onto the integration tree as Supervisor |
186
-
187
- **Recipe:**
188
-
189
- 1. **Commit the plan doc (and any handoff artifacts) to `develop` first.** The dispatch
190
- branches the new lane from `develop`, so the fresh worktree only contains what is on
191
- `develop`. Commit `.rdc/plans/<topic-slug>.md` so the dispatched session finds the
192
- **handoff file present in its own lane**.
193
- 2. **Dispatch via TinTin, leaving `isolation` at its default (`"worktree"`).** Do **NOT**
194
- pass `cwd: C:\Dev\regen-root` and do **NOT** pass `isolation: "cwd"` — either forces the
195
- shared main tree. Put the epic id + plan path in the prompt:
196
- ```json
197
- {
198
- "agent": "claude",
199
- "app_slug": "<app>",
200
- "prompt": "Build epic <epic-uuid>. Plan: .rdc/plans/<topic-slug>.md (already on develop, so it is present in your lane). Operate ONLY in this worktree; never cd to C:\\Dev\\regen-root."
201
- }
202
- ```
203
- MCP: `mcp__<clauth-connector>__tintin_dispatch`. HTTP: `POST http://127.0.0.1:52437/tintin/dispatch`.
204
- 3. The dispatch returns `cwd` (the lane), `branch` (`wt/tintin/claude/<sid>`), and
205
- `worktree_path`. Confirm the session is in `...regen-root.wt\...`, not `C:\Dev\regen-root`.
206
-
207
- **Why:** the SV/main tree is the shared integration checkout used for merges and landing.
208
- A new-app build there is not crash-isolated and collides with coordination — the exact
209
- failure a handoff-spawned SV session causes.
210
-
211
- ## System Labels Reference
212
-
213
- | Label | When |
214
- |-------|------|
215
- | `project-a` | Your-app-specific label |
216
- | `marketing` | Marketing / outreach work |
217
- | `ui` | Component library work |
218
- | `data` | Schema, migrations |
219
- | `infrastructure` | CI/CD, deployment |
220
- | `cs2` | Core paradigm packages |
221
- | `website` | Public-facing sites |
222
- | `media` | Media/asset work |
223
-
224
- ## Output
225
-
226
- When complete, tell the project lead:
227
- ```
228
- Handoff complete:
229
- - Plan: .rdc/plans/<topic-slug>.md
230
- - Epic: <epic-id> ("<title>")
231
- - Tasks: <N> tasks created, wave structure: [Wave 1: X, Y | Wave 2: Z]
232
- - Prototype: registered at docs/source/<file> (if applicable)
233
- - Dispatch (Step 6): if handing to a CLI worker now, dispatch worktree-isolated via TinTin
234
- (isolation=worktree → a fresh wt/tintin/claude/<sid> lane on develop), NEVER a
235
- supervisor / main-tree spawn. Otherwise CLI agents pick this up from the epic on next run.
236
- ```
1
+ ---
2
+ name: rdc:handoff
3
+ description: "Usage `rdc:handoff [--from-prototype <id>]` — Convert a finalized plan or prototype into CLI-ready artifacts: writes .rdc/plans/, creates Supabase work items with DoD checklists, registers prototype if present. Bridge between planning session and rdc:build."
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
+ > 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`).
11
+
12
+ > **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. Supabase work item writes, prototype registry inserts, design context inserts, and git push are skipped under `RDC_TEST=1`.
13
+
14
+
15
+ # rdc:handoff — Planning → CLI Bridge
16
+
17
+ ## When to Use
18
+
19
+ - A prototype has been built and needs production implementation
20
+ - A design decision has been made and needs to be executed
21
+ - Project lead says "hand this off", "give this to the CLI", "write it up"
22
+ - A plan exists in the conversation but hasn't been saved to disk or database yet
23
+
24
+ ## What This Skill Produces
25
+
26
+ 1. **Plan doc** → `.rdc/plans/<topic-slug>.md` (fallback: `.rdc/plans/<topic-slug>.md`)
27
+ 2. **Database epic + child tasks** (with agent types and guide file refs)
28
+ 3. **Prototype registry entry** (if a prototype was built)
29
+ 4. **Design context entries** (for decisions made in the session)
30
+
31
+ ## Procedure
32
+
33
+ ### Step 1 — Extract the Plan
34
+
35
+ Identify from the conversation:
36
+ - What is the goal?
37
+ - What prototypes or designs were built? Where are they?
38
+ - What decisions were made? What was rejected and why?
39
+ - What is the sequencing (what depends on what)?
40
+ - Which agent types are needed?
41
+
42
+ ### Step 2 — Write the Plan Doc
43
+
44
+ ```
45
+ .rdc/plans/<topic-slug>.md
46
+ ```
47
+ (fallback: `.rdc/plans/<topic-slug>.md` if `.rdc/` does not exist)
48
+
49
+ Template:
50
+ ```markdown
51
+ # Plan: <Topic>
52
+ > Route: <app route or package>
53
+ > Status: Ready for CLI build
54
+ > Created: <date>
55
+ > Source: planning session
56
+
57
+ ---
58
+
59
+ ## What Already Exists (Do NOT Re-implement)
60
+
61
+ [List any existing components, database tables, or files
62
+ that agents must use rather than recreate]
63
+
64
+ ## What Was Built in Planning (Prototype)
65
+
66
+ [Describe the prototype — file location, key design decisions,
67
+ what to preserve vs what to adapt]
68
+
69
+ ## Work Packages
70
+
71
+ ### Package 1 — <Name>
72
+ - Agent type: frontend | backend | data | design | infra | content | cs2 | viz
73
+ - Guide: .rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md)
74
+ - Files to create/modify: [list]
75
+ - Deliverables: [specific outputs]
76
+ - Depends on: [other packages if sequential]
77
+
78
+ ### Package 2 — <Name>
79
+ [...]
80
+
81
+ ## Sequencing
82
+
83
+ Wave 1 (parallel): Package 1, Package 2
84
+ Wave 2 (after Wave 1): Package 3
85
+
86
+ ## Checklist Decomposition Matrix
87
+
88
+ | Work item | Atomic deliverable | Surface type | Route or file path | Preconditions / fixture data | Action | Expected result | Verification artifact | Owner package | Status |
89
+ |-----------|-------------------|--------------|--------------------|------------------------------|--------|-----------------|-----------------------|---------------|--------|
90
+ | WP-1 | decomp-<surface>-<slug> | screen | /route | seeded fixture | open / click / submit | observable result | Playwright screenshot / route probe / test name | Package 1 | todo |
91
+
92
+ Rules:
93
+ - One observable behavior per row.
94
+ - Each row must be independently pass/fail.
95
+ - Each implementation work item must have matching `decomp-*` checklist rows and `test-*` verification rows.
96
+ - UI routes list state rows separately: empty, loading, loaded, error, create/edit/detail/mobile where applicable.
97
+ - API and DB rows include success, failure/guard, and side-effect proof where applicable.
98
+
99
+ ## Checklist Quality Gate
100
+
101
+ verdict: PASS | FAIL
102
+ failures:
103
+ - <missing/coarse row if any>
104
+ deferred:
105
+ - <explicitly out-of-scope row if any>
106
+
107
+ ## Definition of Done
108
+
109
+ - [ ] [specific acceptance criterion]
110
+ - [ ] [build verification: zero new TS errors]
111
+ - [ ] [functional test]
112
+ ```
113
+
114
+ ### Step 3 — Create Database Epic + Tasks
115
+
116
+ ```sql
117
+ -- Check for existing epics first
118
+ SELECT get_open_epics();
119
+
120
+ -- Create epic
121
+ SELECT insert_work_item(
122
+ p_title := 'EPIC: <Topic>',
123
+ p_description := 'See .rdc/plans/<topic-slug>.md for full spec.',
124
+ p_item_type := 'epic',
125
+ p_priority := 'high',
126
+ p_labels := ARRAY['<system-label>'],
127
+ p_source := 'planning'
128
+ );
129
+
130
+ -- Create tasks (one per work package)
131
+ SELECT insert_work_item(
132
+ p_title := '<Package Name>',
133
+ p_description := 'What: <deliverable>
134
+ Where: <files>
135
+ Agent type: <type>
136
+ Guide: .rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md)
137
+ Design doc: .rdc/plans/<topic-slug>.md (fallback: .rdc/plans/<topic-slug>.md)
138
+ Checklist: include required rows from the plan matrix:
139
+ - decomp-<surface>-<slug>: route/file=<path> | action=<action> | expect=<result> | evidence=<artifact>
140
+ - test-<type>-<slug>: <verification command or artifact>
141
+ Depends on: <other task if applicable>
142
+ Est: <hours>',
143
+ p_parent_id := '<epic-uuid>'::uuid,
144
+ p_item_type := 'task',
145
+ p_priority := 'high',
146
+ p_labels := ARRAY['<label>'],
147
+ p_estimated_hours := 2,
148
+ p_source := 'planning'
149
+ );
150
+ ```
151
+
152
+ Do not create build-ready tasks unless the plan has `## Checklist Decomposition Matrix` and `## Checklist Quality Gate` with `verdict: PASS`. If the matrix fails, save the plan as `Status: Needs checklist repair` and return the failure list instead of creating dispatchable implementation tasks.
153
+
154
+ ### Step 4 — Register Prototype (if one was built)
155
+
156
+ ```sql
157
+ INSERT INTO prototype_registry (name, component, source_path, notes, created_by)
158
+ VALUES (
159
+ '<Component Name> v1',
160
+ '<ComponentName>',
161
+ 'docs/source/<filename>.jsx',
162
+ '<Key design decisions, data shapes, what to preserve>',
163
+ 'planning'
164
+ )
165
+ ON CONFLICT DO NOTHING;
166
+ ```
167
+
168
+ ### Step 5 — Record Design Decisions
169
+
170
+ ```sql
171
+ INSERT INTO design_context (topic, context_type, summary, source, created_by)
172
+ VALUES
173
+ ('<Topic>', 'decision', '<What was decided and why>', 'planning session', 'planning'),
174
+ ('<Topic>', 'rejected', '<What was considered but not chosen, and why>', 'planning session', 'planning');
175
+ ```
176
+
177
+ ### Step 6 — Dispatch to CLI (worktree-isolated) — the ONLY sanctioned spawn
178
+
179
+ If you are handing this off to a CLI worker **now** (e.g. from a claude.ai session), do
180
+ **NOT** improvise a CLI spawn. Two spawn paths exist and they land in different trees:
181
+
182
+ | Dispatch path | Where the session runs | Use for handoff? |
183
+ |---------------|------------------------|------------------|
184
+ | **TinTin dispatch** — `tintin_dispatch` MCP tool, or `POST http://127.0.0.1:52437/tintin/dispatch`, `agent: "claude"` | A **fresh isolated worktree** `C:\Dev\regen-root.wt\tintin-claude-<sid>` on `develop` — `isolation: "worktree"` is the **default** (it runs `git worktree add -b wt/tintin/claude/<sid> <lane> develop`) | ✅ **YES** |
185
+ | `call_agent` / a supervisor-run / a bare `claude` in `C:\Dev\regen-root` | The **shared SV / main tree** — `resolveDispatchCwd` falls back to the main tree when no cwd is given | ❌ **NEVER** — this dumps a new-app build onto the integration tree as Supervisor |
186
+
187
+ **Recipe:**
188
+
189
+ 1. **Commit the plan doc (and any handoff artifacts) to `develop` first.** The dispatch
190
+ branches the new lane from `develop`, so the fresh worktree only contains what is on
191
+ `develop`. Commit `.rdc/plans/<topic-slug>.md` so the dispatched session finds the
192
+ **handoff file present in its own lane**.
193
+ 2. **Dispatch via TinTin, leaving `isolation` at its default (`"worktree"`).** Do **NOT**
194
+ pass `cwd: C:\Dev\regen-root` and do **NOT** pass `isolation: "cwd"` — either forces the
195
+ shared main tree. Put the epic id + plan path in the prompt:
196
+ ```json
197
+ {
198
+ "agent": "claude",
199
+ "app_slug": "<app>",
200
+ "prompt": "Build epic <epic-uuid>. Plan: .rdc/plans/<topic-slug>.md (already on develop, so it is present in your lane). Operate ONLY in this worktree; never cd to C:\\Dev\\regen-root."
201
+ }
202
+ ```
203
+ MCP: `mcp__<clauth-connector>__tintin_dispatch`. HTTP: `POST http://127.0.0.1:52437/tintin/dispatch`.
204
+ 3. The dispatch returns `cwd` (the lane), `branch` (`wt/tintin/claude/<sid>`), and
205
+ `worktree_path`. Confirm the session is in `...regen-root.wt\...`, not `C:\Dev\regen-root`.
206
+
207
+ **Why:** the SV/main tree is the shared integration checkout used for merges and landing.
208
+ A new-app build there is not crash-isolated and collides with coordination — the exact
209
+ failure a handoff-spawned SV session causes.
210
+
211
+ ## System Labels Reference
212
+
213
+ | Label | When |
214
+ |-------|------|
215
+ | `project-a` | Your-app-specific label |
216
+ | `marketing` | Marketing / outreach work |
217
+ | `ui` | Component library work |
218
+ | `data` | Schema, migrations |
219
+ | `infrastructure` | CI/CD, deployment |
220
+ | `cs2` | Core paradigm packages |
221
+ | `website` | Public-facing sites |
222
+ | `media` | Media/asset work |
223
+
224
+ ## Output
225
+
226
+ When complete, tell the project lead:
227
+ ```
228
+ Handoff complete:
229
+ - Plan: .rdc/plans/<topic-slug>.md
230
+ - Epic: <epic-id> ("<title>")
231
+ - Tasks: <N> tasks created, wave structure: [Wave 1: X, Y | Wave 2: Z]
232
+ - Prototype: registered at docs/source/<file> (if applicable)
233
+ - Dispatch (Step 6): if handing to a CLI worker now, dispatch worktree-isolated via TinTin
234
+ (isolation=worktree → a fresh wt/tintin/claude/<sid> lane on develop), NEVER a
235
+ supervisor / main-tree spawn. Otherwise CLI agents pick this up from the epic on next run.
236
+ ```