@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.
- package/.claude-plugin/plugin.json +1560 -1518
- package/.github/workflows/self-test.yml +34 -34
- package/CHANGELOG.md +322 -310
- package/MANIFEST.md +224 -221
- package/README.md +379 -377
- package/commands/build.md +181 -181
- package/commands/collab.md +180 -180
- package/commands/deploy.md +148 -148
- package/commands/fixit.md +150 -150
- package/commands/handoff.md +173 -173
- package/commands/overnight.md +220 -220
- package/commands/plan.md +158 -158
- package/commands/preplan.md +131 -131
- package/commands/prototype.md +145 -145
- package/commands/report.md +99 -99
- package/commands/review.md +120 -120
- package/commands/status.md +86 -86
- package/commands/workitems.md +127 -127
- package/git-sha.json +1 -1
- package/guides/agent-bootstrap.md +195 -195
- package/guides/agents/backend.md +102 -102
- package/guides/agents/content.md +94 -94
- package/guides/agents/cs2.md +56 -56
- package/guides/agents/data.md +86 -86
- package/guides/agents/design.md +77 -77
- package/guides/agents/frontend.md +91 -91
- package/guides/agents/infrastructure.md +81 -81
- package/guides/agents/setup.md +272 -272
- package/guides/agents/verify.md +119 -119
- package/guides/agents/viz.md +106 -106
- package/package.json +57 -57
- package/scripts/install-rdc-skills.js +1401 -1289
- package/scripts/self-test.mjs +1460 -1460
- package/scripts/validate-publish-manifests.js +502 -502
- package/skills/build/SKILL.md +574 -559
- package/skills/channel-formatter/SKILL.md +538 -538
- package/skills/collab/SKILL.md +239 -239
- package/skills/convert/SKILL.md +167 -167
- package/skills/deploy/SKILL.md +541 -541
- package/skills/design/SKILL.md +205 -205
- package/skills/env/SKILL.md +141 -0
- package/skills/fixit/SKILL.md +203 -203
- package/skills/fs-mcp/SKILL.md +37 -2
- package/skills/handoff/SKILL.md +236 -236
- package/skills/new-model/SKILL.md +49 -0
- package/skills/onramp/SKILL.md +1459 -248
- package/skills/overnight/SKILL.md +251 -251
- package/skills/plan/SKILL.md +345 -345
- package/skills/preplan/SKILL.md +90 -90
- package/skills/prototype/SKILL.md +150 -150
- package/skills/regen-media/SKILL.md +94 -0
- package/skills/release/SKILL.md +140 -140
- package/skills/report/SKILL.md +100 -100
- package/skills/review/SKILL.md +159 -151
- package/skills/self-test/SKILL.md +108 -108
- package/skills/status/SKILL.md +99 -99
- package/skills/tests/MATRIX.md +55 -54
- package/skills/tests/onramp.test.json +87 -87
- package/skills/tests/rdc-regen-media.test.json +29 -0
- package/skills/watch/SKILL.md +84 -84
- package/skills/workitems/SKILL.md +151 -151
package/skills/handoff/SKILL.md
CHANGED
|
@@ -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)
|