@lifeaitools/rdc-skills 0.25.0 → 0.25.2

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 (61) hide show
  1. package/.claude-plugin/plugin.json +1560 -1518
  2. package/.github/workflows/self-test.yml +34 -34
  3. package/CHANGELOG.md +322 -310
  4. package/MANIFEST.md +224 -221
  5. package/README.md +379 -377
  6. package/commands/build.md +181 -181
  7. package/commands/collab.md +180 -180
  8. package/commands/deploy.md +148 -148
  9. package/commands/fixit.md +150 -150
  10. package/commands/handoff.md +173 -173
  11. package/commands/overnight.md +220 -220
  12. package/commands/plan.md +158 -158
  13. package/commands/preplan.md +131 -131
  14. package/commands/prototype.md +145 -145
  15. package/commands/report.md +99 -99
  16. package/commands/review.md +120 -120
  17. package/commands/status.md +86 -86
  18. package/commands/workitems.md +127 -127
  19. package/git-sha.json +1 -1
  20. package/guides/agent-bootstrap.md +195 -195
  21. package/guides/agents/backend.md +102 -102
  22. package/guides/agents/content.md +94 -94
  23. package/guides/agents/cs2.md +56 -56
  24. package/guides/agents/data.md +86 -86
  25. package/guides/agents/design.md +77 -77
  26. package/guides/agents/frontend.md +91 -91
  27. package/guides/agents/infrastructure.md +81 -81
  28. package/guides/agents/setup.md +272 -272
  29. package/guides/agents/verify.md +119 -119
  30. package/guides/agents/viz.md +106 -106
  31. package/package.json +57 -57
  32. package/scripts/install-rdc-skills.js +1401 -1289
  33. package/scripts/self-test.mjs +1460 -1460
  34. package/scripts/validate-publish-manifests.js +502 -502
  35. package/skills/build/SKILL.md +574 -559
  36. package/skills/channel-formatter/SKILL.md +538 -538
  37. package/skills/collab/SKILL.md +239 -239
  38. package/skills/convert/SKILL.md +167 -167
  39. package/skills/deploy/SKILL.md +541 -541
  40. package/skills/design/SKILL.md +205 -205
  41. package/skills/env/SKILL.md +141 -0
  42. package/skills/fixit/SKILL.md +203 -203
  43. package/skills/fs-mcp/SKILL.md +37 -2
  44. package/skills/handoff/SKILL.md +236 -236
  45. package/skills/new-model/SKILL.md +49 -0
  46. package/skills/onramp/SKILL.md +1459 -248
  47. package/skills/overnight/SKILL.md +251 -251
  48. package/skills/plan/SKILL.md +345 -345
  49. package/skills/preplan/SKILL.md +90 -90
  50. package/skills/prototype/SKILL.md +150 -150
  51. package/skills/regen-media/SKILL.md +94 -0
  52. package/skills/release/SKILL.md +140 -140
  53. package/skills/report/SKILL.md +100 -100
  54. package/skills/review/SKILL.md +159 -151
  55. package/skills/self-test/SKILL.md +108 -108
  56. package/skills/status/SKILL.md +99 -99
  57. package/skills/tests/MATRIX.md +55 -54
  58. package/skills/tests/onramp.test.json +87 -87
  59. package/skills/tests/rdc-regen-media.test.json +29 -0
  60. package/skills/watch/SKILL.md +84 -84
  61. package/skills/workitems/SKILL.md +151 -151
@@ -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
+ ```
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: new-model
3
+ description: >
4
+ Register a new Reference Model completely — the yes/no gate that prevents half-registered models.
5
+ A reference model is DEFINED as registered in all four homes: (1) RPMS project_nodes row
6
+ (node_type=reference_model), (2) apps/vlas route group /models/<slug>, (3) apps/vlas
7
+ src/data/models/<slug> definitions, (4) global-corpus Drive directory. If ANY of the four is
8
+ missing, the model does not exist yet — run this skill.
9
+ TRIGGER: 'rdc:new-model', 'rdc new model', 'create model', 'new reference model', 'add a model',
10
+ 'register model', 'new model for', 'model for conservation easements', 'is this model registered',
11
+ 'model registration check'.
12
+ ---
13
+
14
+ # rdc:new-model — Reference Model Registration (complete or not at all)
15
+
16
+ ## When to run
17
+ - Creating any new reference model (conservation easement, regen data center, etc.)
18
+ - ANY time a model page/idea exists but you cannot confirm all four homes below
19
+ - Asked "is <model> registered?" → run the CHECK phase, report yes/no per home, offer to complete
20
+
21
+ ## The four homes (a model exists ONLY when all four do)
22
+ 1. **RPMS node** — `project_nodes` row: `node_type='reference_model'`, slug matches route slug exactly, status active, non-null description, metadata JSONB `{model_kind, capitals_profile, pathway_version, catalog_version, tabs}` when known.
23
+ 2. **Routes** — `apps/vlas/src/app/models/<slug>/` (or `(library)/<slug>/` for library-page models) + entry on the models library index.
24
+ 3. **Definitions** — `apps/vlas/src/data/models/<slug>/` (engine/constants/prompts as applicable; may start minimal).
25
+ 4. **Corpus** — Google Drive `global-corpus/VLAS/models/<slug>/` with subdirs `_working, _archive, _originals, diagrams, docs`. Drive models root folder ID: `1ua4zXohgZeYsZZTb1kUdnPqfN4eQAHuU`; copy structure from `_template` (`1ZVeq7iycg-dzG_iAKXrbTqIFYa6E26bQ`). Access Drive ONLY via the Google Drive connector (claude.ai) — H:\My Drive is NOT under any FS mount. From the CLI, the local sync path `H:\My Drive\global-corpus\VLAS\models\` may be used directly.
26
+
27
+ ## Procedure
28
+ ### Phase 0 — CHECK (always first; idempotent)
29
+ For the given slug, verify each home. Output a 4-line yes/no table. If all yes → report "registered" and stop.
30
+ ### Phase 1 — REGISTER (only the missing homes; never duplicate)
31
+ - RPMS: INSERT project_nodes with ON CONFLICT (slug) DO NOTHING; RETURNING id. Slug is kebab-case, matches route.
32
+ - Routes/definitions: scaffold minimal `/models/<slug>/page.tsx` + `src/data/models/<slug>/index.ts` if absent (full build is a separate plan/epic — this skill registers, it does not build the site).
33
+ - Corpus: create `<slug>/` + the five subdirs under the models root.
34
+ ### Phase 2 — RECORD
35
+ - Add the model to the library index page if missing.
36
+ - If created from claude.ai: note node id + Drive folder id in the session; if a related epic exists, add a note via update_work_item_status.
37
+ - Commit any repo changes on develop with a Work-Item trailer.
38
+
39
+ ## Rules
40
+ - NEVER create a model in fewer than four homes. Partial registration is the failure mode this skill exists to kill (it happened twice: regen-data-center shipped with a bare node; regenerative-development-and-design shipped with no node and no corpus dir).
41
+ - Slug is identical everywhere. No spaces, no case variants.
42
+ - Models NEVER live on place.fund, PRT, TPF, or RDC surfaces — VLAS only (models are teaching instruments of the standard).
43
+ - Catalog scoping: if the model needs interventions, decide model_slug scoping on stewardship_interventions BEFORE seeding (see library-conventions epic ba1b5d5d).
44
+
45
+ ## Done means
46
+ - [ ] Four-home check table all YES
47
+ - [ ] Node id + Drive folder id reported
48
+ - [ ] Library index lists the model
49
+ - [ ] Repo changes committed (develop, trailer)