@lifeaitools/rdc-skills 0.25.4 → 0.25.9

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 (71) hide show
  1. package/.claude-plugin/plugin.json +1574 -1528
  2. package/.github/workflows/self-test.yml +34 -34
  3. package/CHANGELOG.md +326 -313
  4. package/MANIFEST.md +224 -224
  5. package/README.md +372 -369
  6. package/RELEASE.md +26 -2
  7. package/commands/build.md +181 -181
  8. package/commands/collab.md +180 -180
  9. package/commands/deploy.md +148 -148
  10. package/commands/fixit.md +150 -150
  11. package/commands/handoff.md +173 -173
  12. package/commands/overnight.md +220 -220
  13. package/commands/plan.md +158 -158
  14. package/commands/preplan.md +131 -131
  15. package/commands/prototype.md +145 -145
  16. package/commands/report.md +99 -99
  17. package/commands/review.md +120 -120
  18. package/commands/status.md +86 -86
  19. package/commands/workitems.md +127 -127
  20. package/git-sha.json +1 -1
  21. package/guides/agent-bootstrap.md +195 -195
  22. package/guides/agents/backend.md +102 -102
  23. package/guides/agents/content.md +94 -94
  24. package/guides/agents/cs2.md +56 -56
  25. package/guides/agents/data.md +86 -86
  26. package/guides/agents/design.md +77 -77
  27. package/guides/agents/frontend.md +91 -91
  28. package/guides/agents/infrastructure.md +81 -81
  29. package/guides/agents/setup.md +272 -272
  30. package/guides/agents/verify.md +119 -119
  31. package/guides/agents/viz.md +106 -106
  32. package/hooks/check-rdc-environment.js +318 -164
  33. package/hooks/lib/box-lock.js +186 -0
  34. package/package.json +1 -1
  35. package/scripts/install-rdc-skills.js +1474 -1400
  36. package/scripts/local-install-with-stop.sh +41 -0
  37. package/scripts/probe-box-lock.mjs +179 -0
  38. package/scripts/probe-installed-hooks.mjs +60 -0
  39. package/scripts/probe-lock-holders.mjs +36 -0
  40. package/scripts/self-test.mjs +1459 -1459
  41. package/scripts/validate-publish-manifests.js +502 -502
  42. package/skills/build/SKILL.md +578 -578
  43. package/skills/channel-formatter/SKILL.md +538 -538
  44. package/skills/collab/SKILL.md +239 -239
  45. package/skills/convert/SKILL.md +150 -161
  46. package/skills/deploy/SKILL.md +541 -541
  47. package/skills/design/SKILL.md +205 -205
  48. package/skills/env/SKILL.md +139 -139
  49. package/skills/fixit/SKILL.md +203 -203
  50. package/skills/handoff/SKILL.md +236 -236
  51. package/skills/housekeeping/SKILL.md +189 -189
  52. package/skills/new-model/SKILL.md +14 -3
  53. package/skills/onramp/SKILL.md +1459 -1459
  54. package/skills/overnight/SKILL.md +251 -251
  55. package/skills/plan/SKILL.md +345 -345
  56. package/skills/preplan/SKILL.md +90 -90
  57. package/skills/prototype/SKILL.md +150 -150
  58. package/skills/regen-media/SKILL.md +94 -94
  59. package/skills/release/SKILL.md +140 -140
  60. package/skills/report/SKILL.md +100 -100
  61. package/skills/review/SKILL.md +151 -151
  62. package/skills/self-test/SKILL.md +108 -108
  63. package/skills/status/SKILL.md +99 -99
  64. package/skills/tests/MATRIX.md +55 -55
  65. package/skills/tests/onramp.test.json +87 -87
  66. package/skills/tests/rdc-regen-media.test.json +29 -29
  67. package/skills/watch/SKILL.md +84 -84
  68. package/skills/workitems/SKILL.md +151 -151
  69. package/tests/curl-surface.test.mjs +4 -2
  70. package/tests/help-surface.test.mjs +1 -1
  71. package/tests/install-rdc-skills.test.mjs +1 -1
package/commands/fixit.md CHANGED
@@ -1,150 +1,150 @@
1
- ---
2
- name: rdc:fixit
3
- description: >-
4
- Usage `rdc:fixit <description>` — sanctioned bypass for quick fixes under 5 files / 30 min. Creates minimal work item, makes fix, commits, DELIVERS it to where it is consumed (publish/deploy/land) and verifies, then closes. The ONLY alternative to rdc:build. For typos, config patches, hotfixes, dep bumps.
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:fixit — Sanctioned Quick Fix
17
-
18
- ## When to Use
19
- - Typo or single-line text correction
20
- - Config value change (env vars, constants, feature flags)
21
- - Emergency hotfix that cannot wait for a full build cycle
22
- - Dependency version bump
23
- - CSS/styling tweak on a single component
24
- - Broken import or export fix
25
- - Single-file logic correction
26
-
27
- ## When NOT to Use — escalate to rdc:build instead
28
- - New feature of any size
29
- - Refactor touching >5 files
30
- - Anything requiring architecture decisions
31
- - Work that will take longer than 30 minutes
32
- - Schema changes or migrations
33
-
34
- ## Arguments
35
- - `rdc:fixit <description>` — fix the described issue
36
-
37
- ## Procedure
38
-
39
- ### 1. Scope check (mandatory — do this before touching any file)
40
-
41
- Will this fix touch more than **5 files** or take more than **30 minutes**?
42
-
43
- - **YES** → Stop. Use `/rdc:build` instead. Explain to the user why.
44
- - **NO** → Continue.
45
-
46
- ### 2. Create a minimal work item (before touching any code)
47
-
48
- ```sql
49
- SELECT insert_work_item(
50
- p_title := 'fixit: <description>',
51
- p_item_type := 'bug',
52
- p_priority := 'urgent',
53
- p_status := 'in_progress',
54
- p_source := 'fixit'
55
- );
56
- ```
57
-
58
- Note the returned `id`.
59
-
60
- ### 3. Write the fixit session marker
61
-
62
- Write to `{USER_HOME}/.claude/fixit.marker`:
63
- ```
64
- <work_item_id>
65
- <ISO timestamp>
66
- <description>
67
- ```
68
-
69
- This signals the Stop hook that fixit is handling its own documentation.
70
-
71
- ### 4. Make the fix
72
-
73
- Do the minimal work. Scope creep rule: if you discover the fix requires more than originally scoped, **stop immediately**:
74
- 1. Close the work item: `update_work_item_status('<id>', 'blocked', '["Escalated — scope exceeded fixit threshold"]')`
75
- 2. Delete the marker file
76
- 3. Tell the user to use `/rdc:build` instead
77
-
78
- ### 5. Commit
79
-
80
- ```bash
81
- git add <specific files only — never git add -A for a fixit>
82
- git commit -m "fix(<scope>): <description>"
83
- if [ "$RDC_TEST" != "1" ]; then
84
- git push origin {development-branch}
85
- else
86
- echo "[RDC_TEST] skipping git push origin {development-branch}"
87
- fi
88
- ```
89
-
90
- ### 5.5 Deliver to done (MANDATORY — a fixit is not done until the change is LIVE)
91
-
92
- ⛔ **"Committed and pushed" is NOT done.** Editing code and walking away is the exact
93
- failure this step exists to prevent. Carry the change to where it is consumed and verify it:
94
-
95
- | Target shape | "Done" = delivered means | How + structural proof |
96
- |---|---|---|
97
- | Published package (npm / PyPI) | new version live on the registry | `npm publish --access public` (or repo release path); verify `npm view <pkg> version` == new version |
98
- | Deployed app (`apps/*`, sites) | change live on the running host | `/rdc:deploy <slug>` (dev) / `promote` (prod); verify HTTP 200 + content probe |
99
- | Shared lib consumed in-repo | landed on the integration branch | `node scripts/land.mjs`; verify branch contains the SHA |
100
- | Standalone repo | its own release ritual completed | repo release script/tag; verify the artifact/tag exists |
101
- | Pure doc / internal-only change, NO consumer | committed + landed | no deploy; the ONLY case where commit == done |
102
-
103
- - **A version bump obligates a release.** A bumped-but-unshipped version is an unfinished fixit.
104
- - **Verify structurally** (registry version, HTTP status, tag presence), never by assumption.
105
- - **If delivery can't complete in-session** (missing OTP/secret, human approval, denied
106
- command, manual prod promotion): set the work item `blocked` with the exact remaining
107
- command + reason and tell the user the one step to run — do NOT mark `done`.
108
-
109
- Under `RDC_TEST=1`: echo `[RDC_TEST] skipping delivery (publish/deploy)` and proceed.
110
-
111
- ### 6. Report, review, close, and clean up
112
-
113
- **Precondition: Step 5.5 delivery is verified.** If delivery is blocked, set `blocked` (not
114
- `done`) with the remaining step — never mark an undelivered change `done`.
115
-
116
- ```sql
117
- SELECT submit_implementation_report('<id>'::uuid,
118
- '{"tldr":"<one sentence>","assumptions":[],"deviations":[],"uncertainty":[],"detail":"<what was fixed>","flags":[],"transactional":false,"memory_records":[],"codeflow_post":{"agent_session_id":"<agent-session-id>","summary":"<what changed and why>","files_changed":["<path>"],"verification":["<command/evidence>"],"commit":"<hash optional>"}}'::jsonb
119
- );
120
-
121
- SELECT update_work_item_status('<id>'::uuid, 'review',
122
- '["Fixed via rdc:fixit; ready for validation"]'::jsonb,
123
- '<agent-session-id>',
124
- 'agent'
125
- );
126
-
127
- SELECT update_work_item_status('<id>'::uuid, 'done',
128
- '["Validator verified rdc:fixit report, CodeFlow post, and checklist evidence"]'::jsonb,
129
- '<validator-session-id>',
130
- 'validator'
131
- );
132
- ```
133
-
134
- ```bash
135
- rm {USER_HOME}/.claude/fixit.marker
136
- ```
137
-
138
- ### 7. Confirm to user
139
-
140
- Report: what was fixed, file(s) changed, commit hash. One sentence.
141
-
142
- ## Rules
143
- - Work item created BEFORE any code change — never after
144
- - `git add` specific files only — never `-A` or `.` for a fixit
145
- - Branch: development branch always
146
- - Never run `pnpm build` — not needed for a fixit
147
- - If scope expands mid-fix: stop, escalate to rdc:build, don't finish under fixit
148
- - Marker file must be cleaned up whether fix succeeds or escalates
149
- - **Done = delivered, not committed.** Live where consumed (published/deployed/landed) +
150
- verified. A version bump obligates a publish. Can't deliver in-session → `blocked`, never `done`.
1
+ ---
2
+ name: rdc:fixit
3
+ description: >-
4
+ Usage `rdc:fixit <description>` — sanctioned bypass for quick fixes under 5 files / 30 min. Creates minimal work item, makes fix, commits, DELIVERS it to where it is consumed (publish/deploy/land) and verifies, then closes. The ONLY alternative to rdc:build. For typos, config patches, hotfixes, dep bumps.
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:fixit — Sanctioned Quick Fix
17
+
18
+ ## When to Use
19
+ - Typo or single-line text correction
20
+ - Config value change (env vars, constants, feature flags)
21
+ - Emergency hotfix that cannot wait for a full build cycle
22
+ - Dependency version bump
23
+ - CSS/styling tweak on a single component
24
+ - Broken import or export fix
25
+ - Single-file logic correction
26
+
27
+ ## When NOT to Use — escalate to rdc:build instead
28
+ - New feature of any size
29
+ - Refactor touching >5 files
30
+ - Anything requiring architecture decisions
31
+ - Work that will take longer than 30 minutes
32
+ - Schema changes or migrations
33
+
34
+ ## Arguments
35
+ - `rdc:fixit <description>` — fix the described issue
36
+
37
+ ## Procedure
38
+
39
+ ### 1. Scope check (mandatory — do this before touching any file)
40
+
41
+ Will this fix touch more than **5 files** or take more than **30 minutes**?
42
+
43
+ - **YES** → Stop. Use `/rdc:build` instead. Explain to the user why.
44
+ - **NO** → Continue.
45
+
46
+ ### 2. Create a minimal work item (before touching any code)
47
+
48
+ ```sql
49
+ SELECT insert_work_item(
50
+ p_title := 'fixit: <description>',
51
+ p_item_type := 'bug',
52
+ p_priority := 'urgent',
53
+ p_status := 'in_progress',
54
+ p_source := 'fixit'
55
+ );
56
+ ```
57
+
58
+ Note the returned `id`.
59
+
60
+ ### 3. Write the fixit session marker
61
+
62
+ Write to `{USER_HOME}/.claude/fixit.marker`:
63
+ ```
64
+ <work_item_id>
65
+ <ISO timestamp>
66
+ <description>
67
+ ```
68
+
69
+ This signals the Stop hook that fixit is handling its own documentation.
70
+
71
+ ### 4. Make the fix
72
+
73
+ Do the minimal work. Scope creep rule: if you discover the fix requires more than originally scoped, **stop immediately**:
74
+ 1. Close the work item: `update_work_item_status('<id>', 'blocked', '["Escalated — scope exceeded fixit threshold"]')`
75
+ 2. Delete the marker file
76
+ 3. Tell the user to use `/rdc:build` instead
77
+
78
+ ### 5. Commit
79
+
80
+ ```bash
81
+ git add <specific files only — never git add -A for a fixit>
82
+ git commit -m "fix(<scope>): <description>"
83
+ if [ "$RDC_TEST" != "1" ]; then
84
+ git push origin {development-branch}
85
+ else
86
+ echo "[RDC_TEST] skipping git push origin {development-branch}"
87
+ fi
88
+ ```
89
+
90
+ ### 5.5 Deliver to done (MANDATORY — a fixit is not done until the change is LIVE)
91
+
92
+ ⛔ **"Committed and pushed" is NOT done.** Editing code and walking away is the exact
93
+ failure this step exists to prevent. Carry the change to where it is consumed and verify it:
94
+
95
+ | Target shape | "Done" = delivered means | How + structural proof |
96
+ |---|---|---|
97
+ | Published package (npm / PyPI) | new version live on the registry | `npm publish --access public` (or repo release path); verify `npm view <pkg> version` == new version |
98
+ | Deployed app (`apps/*`, sites) | change live on the running host | `/rdc:deploy <slug>` (dev) / `promote` (prod); verify HTTP 200 + content probe |
99
+ | Shared lib consumed in-repo | landed on the integration branch | `node scripts/land.mjs`; verify branch contains the SHA |
100
+ | Standalone repo | its own release ritual completed | repo release script/tag; verify the artifact/tag exists |
101
+ | Pure doc / internal-only change, NO consumer | committed + landed | no deploy; the ONLY case where commit == done |
102
+
103
+ - **A version bump obligates a release.** A bumped-but-unshipped version is an unfinished fixit.
104
+ - **Verify structurally** (registry version, HTTP status, tag presence), never by assumption.
105
+ - **If delivery can't complete in-session** (missing OTP/secret, human approval, denied
106
+ command, manual prod promotion): set the work item `blocked` with the exact remaining
107
+ command + reason and tell the user the one step to run — do NOT mark `done`.
108
+
109
+ Under `RDC_TEST=1`: echo `[RDC_TEST] skipping delivery (publish/deploy)` and proceed.
110
+
111
+ ### 6. Report, review, close, and clean up
112
+
113
+ **Precondition: Step 5.5 delivery is verified.** If delivery is blocked, set `blocked` (not
114
+ `done`) with the remaining step — never mark an undelivered change `done`.
115
+
116
+ ```sql
117
+ SELECT submit_implementation_report('<id>'::uuid,
118
+ '{"tldr":"<one sentence>","assumptions":[],"deviations":[],"uncertainty":[],"detail":"<what was fixed>","flags":[],"transactional":false,"memory_records":[],"codeflow_post":{"agent_session_id":"<agent-session-id>","summary":"<what changed and why>","files_changed":["<path>"],"verification":["<command/evidence>"],"commit":"<hash optional>"}}'::jsonb
119
+ );
120
+
121
+ SELECT update_work_item_status('<id>'::uuid, 'review',
122
+ '["Fixed via rdc:fixit; ready for validation"]'::jsonb,
123
+ '<agent-session-id>',
124
+ 'agent'
125
+ );
126
+
127
+ SELECT update_work_item_status('<id>'::uuid, 'done',
128
+ '["Validator verified rdc:fixit report, CodeFlow post, and checklist evidence"]'::jsonb,
129
+ '<validator-session-id>',
130
+ 'validator'
131
+ );
132
+ ```
133
+
134
+ ```bash
135
+ rm {USER_HOME}/.claude/fixit.marker
136
+ ```
137
+
138
+ ### 7. Confirm to user
139
+
140
+ Report: what was fixed, file(s) changed, commit hash. One sentence.
141
+
142
+ ## Rules
143
+ - Work item created BEFORE any code change — never after
144
+ - `git add` specific files only — never `-A` or `.` for a fixit
145
+ - Branch: development branch always
146
+ - Never run `pnpm build` — not needed for a fixit
147
+ - If scope expands mid-fix: stop, escalate to rdc:build, don't finish under fixit
148
+ - Marker file must be cleaned up whether fix succeeds or escalates
149
+ - **Done = delivered, not committed.** Live where consumed (published/deployed/landed) +
150
+ verified. A version bump obligates a publish. Can't deliver in-session → `blocked`, never `done`.
@@ -1,173 +1,173 @@
1
- ---
2
- name: rdc:handoff
3
- description: >-
4
- Usage `rdc:handoff <topic>` — structured handoff from planning session to CLI agents. Produces plan doc in .rdc/plans/, work items in DB, prototype registry entry if applicable. Use when plan/prototype is finalized and ready for implementation.
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
-
14
- # rdc:handoff — Planning → CLI Bridge
15
-
16
- ## When to Use
17
-
18
- - A prototype has been built and needs production implementation
19
- - A design decision has been made and needs to be executed
20
- - Project lead says "hand this off", "give this to the CLI", "write it up"
21
- - A plan exists in the conversation but hasn't been saved to disk or database yet
22
-
23
- ## What This Skill Produces
24
-
25
- 1. **Plan doc** → `.rdc/plans/<topic-slug>.md` (fallback: `.rdc/plans/<topic-slug>.md`)
26
- 2. **Database epic + child tasks** (with agent types and guide file refs)
27
- 3. **Prototype registry entry** (if a prototype was built)
28
- 4. **Design context entries** (for decisions made in the session)
29
-
30
- ## Procedure
31
-
32
- ### Step 1 — Extract the Plan
33
-
34
- Identify from the conversation:
35
- - What is the goal?
36
- - What prototypes or designs were built? Where are they?
37
- - What decisions were made? What was rejected and why?
38
- - What is the sequencing (what depends on what)?
39
- - Which agent types are needed?
40
-
41
- ### Step 2 — Write the Plan Doc
42
-
43
- ```
44
- .rdc/plans/<topic-slug>.md
45
- ```
46
- (fallback: `.rdc/plans/<topic-slug>.md` if `.rdc/` does not exist)
47
-
48
- Template:
49
- ```markdown
50
- # Plan: <Topic>
51
- > Route: <app route or package>
52
- > Status: Ready for CLI build
53
- > Created: <date>
54
- > Source: planning session
55
-
56
- ---
57
-
58
- ## What Already Exists (Do NOT Re-implement)
59
-
60
- [List any existing components, database tables, or files
61
- that agents must use rather than recreate]
62
-
63
- ## What Was Built in Planning (Prototype)
64
-
65
- [Describe the prototype — file location, key design decisions,
66
- what to preserve vs what to adapt]
67
-
68
- ## Work Packages
69
-
70
- ### Package 1 — <Name>
71
- - Agent type: frontend | backend | data | design | infra | content | cs2 | viz
72
- - Guide: .rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md)
73
- - Files to create/modify: [list]
74
- - Deliverables: [specific outputs]
75
- - Depends on: [other packages if sequential]
76
-
77
- ### Package 2 — <Name>
78
- [...]
79
-
80
- ## Sequencing
81
-
82
- Wave 1 (parallel): Package 1, Package 2
83
- Wave 2 (after Wave 1): Package 3
84
-
85
- ## Definition of Done
86
-
87
- - [ ] [specific acceptance criterion]
88
- - [ ] [build verification: zero new TS errors]
89
- - [ ] [functional test]
90
- ```
91
-
92
- ### Step 3 — Create Database Epic + Tasks
93
-
94
- ```sql
95
- -- Check for existing epics first
96
- SELECT get_open_epics();
97
-
98
- -- Create epic
99
- SELECT insert_work_item(
100
- p_title := 'EPIC: <Topic>',
101
- p_description := 'See .rdc/plans/<topic-slug>.md for full spec.',
102
- p_item_type := 'epic',
103
- p_priority := 'high',
104
- p_labels := ARRAY['<system-label>'],
105
- p_source := 'planning'
106
- );
107
-
108
- -- Create tasks (one per work package)
109
- SELECT insert_work_item(
110
- p_title := '<Package Name>',
111
- p_description := 'What: <deliverable>
112
- Where: <files>
113
- Agent type: <type>
114
- Guide: .rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md)
115
- Design doc: .rdc/plans/<topic-slug>.md (fallback: .rdc/plans/<topic-slug>.md)
116
- Depends on: <other task if applicable>
117
- Est: <hours>',
118
- p_parent_id := '<epic-uuid>'::uuid,
119
- p_item_type := 'task',
120
- p_priority := 'high',
121
- p_labels := ARRAY['<label>'],
122
- p_estimated_hours := 2,
123
- p_source := 'planning'
124
- );
125
- ```
126
-
127
- ### Step 4 — Register Prototype (if one was built)
128
-
129
- ```sql
130
- INSERT INTO prototype_registry (name, component, source_path, notes, created_by)
131
- VALUES (
132
- '<Component Name> v1',
133
- '<ComponentName>',
134
- 'docs/source/<filename>.jsx',
135
- '<Key design decisions, data shapes, what to preserve>',
136
- 'planning'
137
- )
138
- ON CONFLICT DO NOTHING;
139
- ```
140
-
141
- ### Step 5 — Record Design Decisions
142
-
143
- ```sql
144
- INSERT INTO design_context (topic, context_type, summary, source, created_by)
145
- VALUES
146
- ('<Topic>', 'decision', '<What was decided and why>', 'planning session', 'planning'),
147
- ('<Topic>', 'rejected', '<What was considered but not chosen, and why>', 'planning session', 'planning');
148
- ```
149
-
150
- ## System Labels Reference
151
-
152
- | Label | When |
153
- |-------|------|
154
- | `project-a` | Your-app-specific label |
155
- | `marketing` | Marketing / outreach work |
156
- | `ui` | Component library work |
157
- | `data` | Schema, migrations |
158
- | `infrastructure` | CI/CD, deployment |
159
- | `cs2` | Core paradigm packages |
160
- | `website` | Public-facing sites |
161
- | `media` | Media/asset work |
162
-
163
- ## Output
164
-
165
- When complete, tell the project lead:
166
- ```
167
- Handoff complete:
168
- - Plan: .rdc/plans/<topic-slug>.md
169
- - Epic: <epic-id> ("<title>")
170
- - Tasks: <N> tasks created, wave structure: [Wave 1: X, Y | Wave 2: Z]
171
- - Prototype: registered at docs/source/<file> (if applicable)
172
- - CLI agents will pick this up on next run.
173
- ```
1
+ ---
2
+ name: rdc:handoff
3
+ description: >-
4
+ Usage `rdc:handoff <topic>` — structured handoff from planning session to CLI agents. Produces plan doc in .rdc/plans/, work items in DB, prototype registry entry if applicable. Use when plan/prototype is finalized and ready for implementation.
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
+
14
+ # rdc:handoff — Planning → CLI Bridge
15
+
16
+ ## When to Use
17
+
18
+ - A prototype has been built and needs production implementation
19
+ - A design decision has been made and needs to be executed
20
+ - Project lead says "hand this off", "give this to the CLI", "write it up"
21
+ - A plan exists in the conversation but hasn't been saved to disk or database yet
22
+
23
+ ## What This Skill Produces
24
+
25
+ 1. **Plan doc** → `.rdc/plans/<topic-slug>.md` (fallback: `.rdc/plans/<topic-slug>.md`)
26
+ 2. **Database epic + child tasks** (with agent types and guide file refs)
27
+ 3. **Prototype registry entry** (if a prototype was built)
28
+ 4. **Design context entries** (for decisions made in the session)
29
+
30
+ ## Procedure
31
+
32
+ ### Step 1 — Extract the Plan
33
+
34
+ Identify from the conversation:
35
+ - What is the goal?
36
+ - What prototypes or designs were built? Where are they?
37
+ - What decisions were made? What was rejected and why?
38
+ - What is the sequencing (what depends on what)?
39
+ - Which agent types are needed?
40
+
41
+ ### Step 2 — Write the Plan Doc
42
+
43
+ ```
44
+ .rdc/plans/<topic-slug>.md
45
+ ```
46
+ (fallback: `.rdc/plans/<topic-slug>.md` if `.rdc/` does not exist)
47
+
48
+ Template:
49
+ ```markdown
50
+ # Plan: <Topic>
51
+ > Route: <app route or package>
52
+ > Status: Ready for CLI build
53
+ > Created: <date>
54
+ > Source: planning session
55
+
56
+ ---
57
+
58
+ ## What Already Exists (Do NOT Re-implement)
59
+
60
+ [List any existing components, database tables, or files
61
+ that agents must use rather than recreate]
62
+
63
+ ## What Was Built in Planning (Prototype)
64
+
65
+ [Describe the prototype — file location, key design decisions,
66
+ what to preserve vs what to adapt]
67
+
68
+ ## Work Packages
69
+
70
+ ### Package 1 — <Name>
71
+ - Agent type: frontend | backend | data | design | infra | content | cs2 | viz
72
+ - Guide: .rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md)
73
+ - Files to create/modify: [list]
74
+ - Deliverables: [specific outputs]
75
+ - Depends on: [other packages if sequential]
76
+
77
+ ### Package 2 — <Name>
78
+ [...]
79
+
80
+ ## Sequencing
81
+
82
+ Wave 1 (parallel): Package 1, Package 2
83
+ Wave 2 (after Wave 1): Package 3
84
+
85
+ ## Definition of Done
86
+
87
+ - [ ] [specific acceptance criterion]
88
+ - [ ] [build verification: zero new TS errors]
89
+ - [ ] [functional test]
90
+ ```
91
+
92
+ ### Step 3 — Create Database Epic + Tasks
93
+
94
+ ```sql
95
+ -- Check for existing epics first
96
+ SELECT get_open_epics();
97
+
98
+ -- Create epic
99
+ SELECT insert_work_item(
100
+ p_title := 'EPIC: <Topic>',
101
+ p_description := 'See .rdc/plans/<topic-slug>.md for full spec.',
102
+ p_item_type := 'epic',
103
+ p_priority := 'high',
104
+ p_labels := ARRAY['<system-label>'],
105
+ p_source := 'planning'
106
+ );
107
+
108
+ -- Create tasks (one per work package)
109
+ SELECT insert_work_item(
110
+ p_title := '<Package Name>',
111
+ p_description := 'What: <deliverable>
112
+ Where: <files>
113
+ Agent type: <type>
114
+ Guide: .rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md)
115
+ Design doc: .rdc/plans/<topic-slug>.md (fallback: .rdc/plans/<topic-slug>.md)
116
+ Depends on: <other task if applicable>
117
+ Est: <hours>',
118
+ p_parent_id := '<epic-uuid>'::uuid,
119
+ p_item_type := 'task',
120
+ p_priority := 'high',
121
+ p_labels := ARRAY['<label>'],
122
+ p_estimated_hours := 2,
123
+ p_source := 'planning'
124
+ );
125
+ ```
126
+
127
+ ### Step 4 — Register Prototype (if one was built)
128
+
129
+ ```sql
130
+ INSERT INTO prototype_registry (name, component, source_path, notes, created_by)
131
+ VALUES (
132
+ '<Component Name> v1',
133
+ '<ComponentName>',
134
+ 'docs/source/<filename>.jsx',
135
+ '<Key design decisions, data shapes, what to preserve>',
136
+ 'planning'
137
+ )
138
+ ON CONFLICT DO NOTHING;
139
+ ```
140
+
141
+ ### Step 5 — Record Design Decisions
142
+
143
+ ```sql
144
+ INSERT INTO design_context (topic, context_type, summary, source, created_by)
145
+ VALUES
146
+ ('<Topic>', 'decision', '<What was decided and why>', 'planning session', 'planning'),
147
+ ('<Topic>', 'rejected', '<What was considered but not chosen, and why>', 'planning session', 'planning');
148
+ ```
149
+
150
+ ## System Labels Reference
151
+
152
+ | Label | When |
153
+ |-------|------|
154
+ | `project-a` | Your-app-specific label |
155
+ | `marketing` | Marketing / outreach work |
156
+ | `ui` | Component library work |
157
+ | `data` | Schema, migrations |
158
+ | `infrastructure` | CI/CD, deployment |
159
+ | `cs2` | Core paradigm packages |
160
+ | `website` | Public-facing sites |
161
+ | `media` | Media/asset work |
162
+
163
+ ## Output
164
+
165
+ When complete, tell the project lead:
166
+ ```
167
+ Handoff complete:
168
+ - Plan: .rdc/plans/<topic-slug>.md
169
+ - Epic: <epic-id> ("<title>")
170
+ - Tasks: <N> tasks created, wave structure: [Wave 1: X, Y | Wave 2: Z]
171
+ - Prototype: registered at docs/source/<file> (if applicable)
172
+ - CLI agents will pick this up on next run.
173
+ ```