@lifeaitools/rdc-skills 0.21.1 → 0.23.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.
- package/.claude-plugin/plugin.json +1 -1
- package/.github/workflows/self-test.yml +34 -34
- package/commands/build.md +181 -181
- package/commands/collab.md +180 -180
- package/commands/deploy.md +148 -148
- package/commands/fixit.md +105 -105
- package/commands/handoff.md +173 -173
- package/commands/overnight.md +218 -218
- 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 +1 -1
- package/scripts/self-test.mjs +1458 -1458
- package/skills/build/SKILL.md +517 -478
- package/skills/collab/SKILL.md +239 -239
- package/skills/deploy/SKILL.md +541 -522
- package/skills/design/SKILL.md +205 -205
- package/skills/fixit/SKILL.md +165 -165
- package/skills/fs-mcp/SKILL.md +17 -0
- package/skills/handoff/SKILL.md +200 -200
- package/skills/housekeeping/SKILL.md +14 -1
- package/skills/overnight/SKILL.md +251 -230
- package/skills/plan/SKILL.md +314 -274
- package/skills/preplan/SKILL.md +90 -90
- package/skills/prototype/SKILL.md +150 -150
- package/skills/release/SKILL.md +140 -140
- package/skills/report/SKILL.md +100 -100
- package/skills/review/SKILL.md +152 -152
- package/skills/rpms-filemap/SKILL.cloud.md +107 -0
- package/skills/rpms-filemap/SKILL.md +107 -0
- package/skills/self-test/SKILL.md +123 -123
- package/skills/status/SKILL.md +99 -99
- package/skills/watch/SKILL.md +90 -90
- package/skills/workitems/SKILL.md +151 -151
package/skills/preplan/SKILL.md
CHANGED
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: rdc:preplan
|
|
3
|
-
description: "Usage `rdc:preplan <topic>` — Before committing to an architecture, research unknowns first. Codebase scan + web search, no code written, no work items created. Output feeds rdc:plan. Use for open-ended approach questions."
|
|
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. This skill is read-only and produces only local file writes — no destructive external calls to short-circuit.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
# rdc:preplan — Research Before Planning
|
|
16
|
-
|
|
17
|
-
## When to Use
|
|
18
|
-
- Starting a new feature area you haven't built before
|
|
19
|
-
- Need to understand how best-in-class projects solve a problem
|
|
20
|
-
- Codebase has unknowns that need mapping before planning
|
|
21
|
-
- Project lead says "research", "look into", "what's the best way to", "how do others do"
|
|
22
|
-
- Called by `rdc:overnight` before planning an epic with no existing tasks
|
|
23
|
-
|
|
24
|
-
## Arguments
|
|
25
|
-
- `rdc:preplan <topic>` — interactive research session
|
|
26
|
-
- `rdc:preplan <topic> --unattended` — silent mode for overnight builds
|
|
27
|
-
|
|
28
|
-
## Procedure
|
|
29
|
-
|
|
30
|
-
1. **Parse the topic** from user input or epic title/description.
|
|
31
|
-
- Interactive: if vague, ask ONE clarifying question before proceeding
|
|
32
|
-
- Unattended: infer from the epic title + description — never pause to ask
|
|
33
|
-
|
|
34
|
-
2. **Web research** — search for current (2025-2026) best practices:
|
|
35
|
-
- How do major projects solve this?
|
|
36
|
-
- What tools/libraries exist?
|
|
37
|
-
- What are the common tradeoffs?
|
|
38
|
-
|
|
39
|
-
3. **Codebase analysis** — what do we already have?
|
|
40
|
-
- Search relevant packages for existing code
|
|
41
|
-
- Check `.rdc/research/` for prior research on this topic (fallback: `.rdc/research/`)
|
|
42
|
-
- Check `docs/archive/` for historical work
|
|
43
|
-
- Research agents should read relevant guides from `.rdc/guides/` (fallback: `.rdc/guides/`)
|
|
44
|
-
- Check work items for related epics
|
|
45
|
-
- Read relevant CLAUDE.md files
|
|
46
|
-
|
|
47
|
-
4. **Best-in-class comparison** — create a comparison table:
|
|
48
|
-
| Approach | Pros | Cons | Fit for Us |
|
|
49
|
-
|
|
50
|
-
5. **Surface unknowns** — what questions remain unanswered?
|
|
51
|
-
|
|
52
|
-
6. **Write research doc** to `.rdc/research/<topic-slug>.md` (fallback: `.rdc/research/<topic-slug>.md` if `.rdc/` does not exist):
|
|
53
|
-
```markdown
|
|
54
|
-
# Research: <Topic>
|
|
55
|
-
> Generated: <date> | Requested by: Project Lead
|
|
56
|
-
|
|
57
|
-
## Question
|
|
58
|
-
## What We Already Have
|
|
59
|
-
## Best-in-Class Analysis
|
|
60
|
-
## Comparison Table
|
|
61
|
-
## Unknowns & Open Questions
|
|
62
|
-
## Recommendation (preliminary — not a decision)
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
7. **Report results:**
|
|
66
|
-
- Interactive: summarize findings. Do NOT create epics or write code.
|
|
67
|
-
- Unattended: skip summary, emit status block only:
|
|
68
|
-
```
|
|
69
|
-
PREPLAN_STATUS: { topic, doc_path, unknowns_count, recommendation_confidence: "high|medium|low" }
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Unattended Escalation
|
|
73
|
-
|
|
74
|
-
When `--unattended` and `recommendation_confidence` is `"low"` (≥5 unresolved unknowns,
|
|
75
|
-
or no clear best-fit approach exists), escalate via the advisor tool rather than stopping.
|
|
76
|
-
Provide the advisor with: topic, unknowns list, comparison table. Resume with advisor's
|
|
77
|
-
direction if given. If advisor cannot resolve, log and skip to next step.
|
|
78
|
-
|
|
79
|
-
## Rules
|
|
80
|
-
- Output is a RESEARCH DOC, not a plan
|
|
81
|
-
- Do not make architectural decisions — surface options with tradeoffs
|
|
82
|
-
- Do not create work items
|
|
83
|
-
- Do not write code
|
|
84
|
-
- Web search is mandatory — don't just analyze the codebase
|
|
85
|
-
- Keep the doc under 200 lines — concise, not exhaustive
|
|
86
|
-
- Unattended: NEVER pause for input; infer and proceed
|
|
87
|
-
|
|
88
|
-
## Capture lessons (exit step)
|
|
89
|
-
|
|
90
|
-
Before the final verdict line, follow `.rdc/guides/lessons-learned-spec.md` § Capture procedure. If this run taught something non-obvious — a first root-cause theory that turned out wrong, the documented/standard path not working, a missing gate or check that cost a round, or a surprising tool/infra behavior — write one `.rdc/lessons/<YYYY-MM-DD>-preplan-<short-slug>.md` per lesson using the schema in that spec. Set `scope` (`simple` | `architectural`) and `status` (`open`, or `applied` if you shipped the fix in this same run, with the commit linked). Commit the lesson file(s) on `develop` alongside the run's other commits, and note "N lessons captured" in your verdict/summary. A run that taught nothing writes nothing — absence is the default.
|
|
1
|
+
---
|
|
2
|
+
name: rdc:preplan
|
|
3
|
+
description: "Usage `rdc:preplan <topic>` — Before committing to an architecture, research unknowns first. Codebase scan + web search, no code written, no work items created. Output feeds rdc:plan. Use for open-ended approach questions."
|
|
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. This skill is read-only and produces only local file writes — no destructive external calls to short-circuit.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# rdc:preplan — Research Before Planning
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
- Starting a new feature area you haven't built before
|
|
19
|
+
- Need to understand how best-in-class projects solve a problem
|
|
20
|
+
- Codebase has unknowns that need mapping before planning
|
|
21
|
+
- Project lead says "research", "look into", "what's the best way to", "how do others do"
|
|
22
|
+
- Called by `rdc:overnight` before planning an epic with no existing tasks
|
|
23
|
+
|
|
24
|
+
## Arguments
|
|
25
|
+
- `rdc:preplan <topic>` — interactive research session
|
|
26
|
+
- `rdc:preplan <topic> --unattended` — silent mode for overnight builds
|
|
27
|
+
|
|
28
|
+
## Procedure
|
|
29
|
+
|
|
30
|
+
1. **Parse the topic** from user input or epic title/description.
|
|
31
|
+
- Interactive: if vague, ask ONE clarifying question before proceeding
|
|
32
|
+
- Unattended: infer from the epic title + description — never pause to ask
|
|
33
|
+
|
|
34
|
+
2. **Web research** — search for current (2025-2026) best practices:
|
|
35
|
+
- How do major projects solve this?
|
|
36
|
+
- What tools/libraries exist?
|
|
37
|
+
- What are the common tradeoffs?
|
|
38
|
+
|
|
39
|
+
3. **Codebase analysis** — what do we already have?
|
|
40
|
+
- Search relevant packages for existing code
|
|
41
|
+
- Check `.rdc/research/` for prior research on this topic (fallback: `.rdc/research/`)
|
|
42
|
+
- Check `docs/archive/` for historical work
|
|
43
|
+
- Research agents should read relevant guides from `.rdc/guides/` (fallback: `.rdc/guides/`)
|
|
44
|
+
- Check work items for related epics
|
|
45
|
+
- Read relevant CLAUDE.md files
|
|
46
|
+
|
|
47
|
+
4. **Best-in-class comparison** — create a comparison table:
|
|
48
|
+
| Approach | Pros | Cons | Fit for Us |
|
|
49
|
+
|
|
50
|
+
5. **Surface unknowns** — what questions remain unanswered?
|
|
51
|
+
|
|
52
|
+
6. **Write research doc** to `.rdc/research/<topic-slug>.md` (fallback: `.rdc/research/<topic-slug>.md` if `.rdc/` does not exist):
|
|
53
|
+
```markdown
|
|
54
|
+
# Research: <Topic>
|
|
55
|
+
> Generated: <date> | Requested by: Project Lead
|
|
56
|
+
|
|
57
|
+
## Question
|
|
58
|
+
## What We Already Have
|
|
59
|
+
## Best-in-Class Analysis
|
|
60
|
+
## Comparison Table
|
|
61
|
+
## Unknowns & Open Questions
|
|
62
|
+
## Recommendation (preliminary — not a decision)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
7. **Report results:**
|
|
66
|
+
- Interactive: summarize findings. Do NOT create epics or write code.
|
|
67
|
+
- Unattended: skip summary, emit status block only:
|
|
68
|
+
```
|
|
69
|
+
PREPLAN_STATUS: { topic, doc_path, unknowns_count, recommendation_confidence: "high|medium|low" }
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Unattended Escalation
|
|
73
|
+
|
|
74
|
+
When `--unattended` and `recommendation_confidence` is `"low"` (≥5 unresolved unknowns,
|
|
75
|
+
or no clear best-fit approach exists), escalate via the advisor tool rather than stopping.
|
|
76
|
+
Provide the advisor with: topic, unknowns list, comparison table. Resume with advisor's
|
|
77
|
+
direction if given. If advisor cannot resolve, log and skip to next step.
|
|
78
|
+
|
|
79
|
+
## Rules
|
|
80
|
+
- Output is a RESEARCH DOC, not a plan
|
|
81
|
+
- Do not make architectural decisions — surface options with tradeoffs
|
|
82
|
+
- Do not create work items
|
|
83
|
+
- Do not write code
|
|
84
|
+
- Web search is mandatory — don't just analyze the codebase
|
|
85
|
+
- Keep the doc under 200 lines — concise, not exhaustive
|
|
86
|
+
- Unattended: NEVER pause for input; infer and proceed
|
|
87
|
+
|
|
88
|
+
## Capture lessons (exit step)
|
|
89
|
+
|
|
90
|
+
Before the final verdict line, follow `.rdc/guides/lessons-learned-spec.md` § Capture procedure. If this run taught something non-obvious — a first root-cause theory that turned out wrong, the documented/standard path not working, a missing gate or check that cost a round, or a surprising tool/infra behavior — write one `.rdc/lessons/<YYYY-MM-DD>-preplan-<short-slug>.md` per lesson using the schema in that spec. Set `scope` (`simple` | `architectural`) and `status` (`open`, or `applied` if you shipped the fix in this same run, with the commit linked). Commit the lesson file(s) on `develop` alongside the run's other commits, and note "N lessons captured" in your verdict/summary. A run that taught nothing writes nothing — absence is the default.
|
|
@@ -1,150 +1,150 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: rdc:prototype
|
|
3
|
-
description: "Usage `rdc:prototype <description>` — Build a JSX/TSX mockup for visual review before implementation. Saves to docs/source/, registers in prototype_registry. Use when asked to mock something up or show what it looks like. Not production code."
|
|
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 prototype_registry and design_context inserts, and git push are skipped under `RDC_TEST=1`.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
# rdc:prototype — Prototype Builder
|
|
16
|
-
|
|
17
|
-
## When to Use
|
|
18
|
-
|
|
19
|
-
- Project lead wants to see a design before committing to implementation
|
|
20
|
-
- A new component or page needs visual review before wiring to database
|
|
21
|
-
- Testing a data layout or interaction pattern
|
|
22
|
-
- Building a visual mockup for approval
|
|
23
|
-
|
|
24
|
-
## Arguments
|
|
25
|
-
|
|
26
|
-
- `rdc:prototype <description>` — describe the UI to build (e.g. "a data table for work items")
|
|
27
|
-
|
|
28
|
-
## What This Produces
|
|
29
|
-
|
|
30
|
-
- JSX/TSX prototype file → `docs/source/<ComponentName>.jsx`
|
|
31
|
-
- prototype_registry entry in database
|
|
32
|
-
- design_context entries for key decisions
|
|
33
|
-
|
|
34
|
-
## Prototype Rules
|
|
35
|
-
|
|
36
|
-
1. **Self-contained** — no real database calls. Mock data arrays only.
|
|
37
|
-
2. **Realistic data** — mock data must reflect actual schema field names
|
|
38
|
-
3. **Full fidelity** — looks exactly like the final product should look
|
|
39
|
-
4. **Annotated** — key design decisions commented at the top of the file
|
|
40
|
-
5. **Handoff-ready** — includes the spec block at the bottom
|
|
41
|
-
|
|
42
|
-
## Standard Mock Data Pattern
|
|
43
|
-
|
|
44
|
-
Use realistic field names from the actual database schema:
|
|
45
|
-
|
|
46
|
-
```tsx
|
|
47
|
-
// Mock data — mirrors your_table
|
|
48
|
-
const MOCK_DATA = [
|
|
49
|
-
{
|
|
50
|
-
id: "uuid-1",
|
|
51
|
-
slug: "example-slug",
|
|
52
|
-
name: "Example Name",
|
|
53
|
-
description: "...",
|
|
54
|
-
location_city: "City",
|
|
55
|
-
location_state: "State",
|
|
56
|
-
status: "active",
|
|
57
|
-
category: "example-category",
|
|
58
|
-
total_capital: 1000000,
|
|
59
|
-
total_area: 2400,
|
|
60
|
-
deploy_url: "https://...",
|
|
61
|
-
tags: ["tag1", "tag2"],
|
|
62
|
-
alignment: ["value1", "value2"],
|
|
63
|
-
web_visible: true,
|
|
64
|
-
ticker_label: "LABEL",
|
|
65
|
-
ticker_capital: "$1M",
|
|
66
|
-
scores: { field1: 82, field2: 71, field3: 68 },
|
|
67
|
-
},
|
|
68
|
-
];
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## File Header Template
|
|
72
|
-
|
|
73
|
-
```tsx
|
|
74
|
-
/**
|
|
75
|
-
* <ComponentName>.jsx — PROTOTYPE
|
|
76
|
-
* ─────────────────────────────────────────────
|
|
77
|
-
* Status: Prototype — reference only, not production code
|
|
78
|
-
* Created: <date>
|
|
79
|
-
* Route (production target): <app-route>
|
|
80
|
-
*
|
|
81
|
-
* Key design decisions:
|
|
82
|
-
* 1. <Decision and rationale>
|
|
83
|
-
* 2. <Decision and rationale>
|
|
84
|
-
*
|
|
85
|
-
* What to preserve in production:
|
|
86
|
-
* - <Design element>
|
|
87
|
-
* - <Interaction pattern>
|
|
88
|
-
*
|
|
89
|
-
* What production implementation must do differently:
|
|
90
|
-
* - Replace mock data with database query
|
|
91
|
-
* - Import <Component> from @regen/ui instead of inline implementation
|
|
92
|
-
* - Extract <Part> into shared component at src/components/<name>
|
|
93
|
-
*
|
|
94
|
-
* Production agent type: frontend | backend | data | viz
|
|
95
|
-
* Production guide: .rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md)
|
|
96
|
-
*/
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## File Footer Template
|
|
100
|
-
|
|
101
|
-
```tsx
|
|
102
|
-
// ─── HANDOFF SPEC ─────────────────────────────
|
|
103
|
-
// Production files:
|
|
104
|
-
// apps/<app>/src/app/<route>/page.tsx (server component)
|
|
105
|
-
// apps/<app>/src/app/<route>/<Name>Client.tsx (client component)
|
|
106
|
-
// apps/<app>/src/app/<route>/<Name>Wrapper.tsx (modal/state shell, if needed)
|
|
107
|
-
//
|
|
108
|
-
// Design system components to use (do not re-implement):
|
|
109
|
-
// <ComponentName> — <what it does>
|
|
110
|
-
//
|
|
111
|
-
// Database tables:
|
|
112
|
-
// <table> — <what to query>
|
|
113
|
-
//
|
|
114
|
-
// Form field schema additions needed:
|
|
115
|
-
// <table>.<column> — <input_type> — <label>
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
## After Building — Register and Record
|
|
119
|
-
|
|
120
|
-
```sql
|
|
121
|
-
-- Register prototype
|
|
122
|
-
INSERT INTO prototype_registry (name, component, source_path, notes, created_by)
|
|
123
|
-
VALUES (
|
|
124
|
-
'<Name> Prototype v1',
|
|
125
|
-
'<ComponentName>',
|
|
126
|
-
'docs/source/<ComponentName>.jsx',
|
|
127
|
-
'<One-line description of key design: layout, data shape, interactions>',
|
|
128
|
-
'planning'
|
|
129
|
-
);
|
|
130
|
-
|
|
131
|
-
-- Record design decisions
|
|
132
|
-
INSERT INTO design_context (topic, context_type, summary, source, created_by)
|
|
133
|
-
VALUES
|
|
134
|
-
('<Topic>', 'prototype', 'Prototype built with <X> layout and <Y> interaction pattern', 'planning', 'planning'),
|
|
135
|
-
('<Topic>', 'decision', '<Key decision made during prototyping and why>', 'planning', 'planning');
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
## Handoff
|
|
139
|
-
|
|
140
|
-
After prototype is approved, use `rdc:handoff` to create the plan doc and database work items.
|
|
141
|
-
|
|
142
|
-
Or tell the project lead:
|
|
143
|
-
```
|
|
144
|
-
Prototype complete.
|
|
145
|
-
File: docs/source/<ComponentName>.jsx
|
|
146
|
-
Registered: prototype_registry
|
|
147
|
-
|
|
148
|
-
To hand off to CLI build: use /rdc:handoff
|
|
149
|
-
To build immediately: use /rdc:build
|
|
150
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: rdc:prototype
|
|
3
|
+
description: "Usage `rdc:prototype <description>` — Build a JSX/TSX mockup for visual review before implementation. Saves to docs/source/, registers in prototype_registry. Use when asked to mock something up or show what it looks like. Not production code."
|
|
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 prototype_registry and design_context inserts, and git push are skipped under `RDC_TEST=1`.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# rdc:prototype — Prototype Builder
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
|
|
19
|
+
- Project lead wants to see a design before committing to implementation
|
|
20
|
+
- A new component or page needs visual review before wiring to database
|
|
21
|
+
- Testing a data layout or interaction pattern
|
|
22
|
+
- Building a visual mockup for approval
|
|
23
|
+
|
|
24
|
+
## Arguments
|
|
25
|
+
|
|
26
|
+
- `rdc:prototype <description>` — describe the UI to build (e.g. "a data table for work items")
|
|
27
|
+
|
|
28
|
+
## What This Produces
|
|
29
|
+
|
|
30
|
+
- JSX/TSX prototype file → `docs/source/<ComponentName>.jsx`
|
|
31
|
+
- prototype_registry entry in database
|
|
32
|
+
- design_context entries for key decisions
|
|
33
|
+
|
|
34
|
+
## Prototype Rules
|
|
35
|
+
|
|
36
|
+
1. **Self-contained** — no real database calls. Mock data arrays only.
|
|
37
|
+
2. **Realistic data** — mock data must reflect actual schema field names
|
|
38
|
+
3. **Full fidelity** — looks exactly like the final product should look
|
|
39
|
+
4. **Annotated** — key design decisions commented at the top of the file
|
|
40
|
+
5. **Handoff-ready** — includes the spec block at the bottom
|
|
41
|
+
|
|
42
|
+
## Standard Mock Data Pattern
|
|
43
|
+
|
|
44
|
+
Use realistic field names from the actual database schema:
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
// Mock data — mirrors your_table
|
|
48
|
+
const MOCK_DATA = [
|
|
49
|
+
{
|
|
50
|
+
id: "uuid-1",
|
|
51
|
+
slug: "example-slug",
|
|
52
|
+
name: "Example Name",
|
|
53
|
+
description: "...",
|
|
54
|
+
location_city: "City",
|
|
55
|
+
location_state: "State",
|
|
56
|
+
status: "active",
|
|
57
|
+
category: "example-category",
|
|
58
|
+
total_capital: 1000000,
|
|
59
|
+
total_area: 2400,
|
|
60
|
+
deploy_url: "https://...",
|
|
61
|
+
tags: ["tag1", "tag2"],
|
|
62
|
+
alignment: ["value1", "value2"],
|
|
63
|
+
web_visible: true,
|
|
64
|
+
ticker_label: "LABEL",
|
|
65
|
+
ticker_capital: "$1M",
|
|
66
|
+
scores: { field1: 82, field2: 71, field3: 68 },
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## File Header Template
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
/**
|
|
75
|
+
* <ComponentName>.jsx — PROTOTYPE
|
|
76
|
+
* ─────────────────────────────────────────────
|
|
77
|
+
* Status: Prototype — reference only, not production code
|
|
78
|
+
* Created: <date>
|
|
79
|
+
* Route (production target): <app-route>
|
|
80
|
+
*
|
|
81
|
+
* Key design decisions:
|
|
82
|
+
* 1. <Decision and rationale>
|
|
83
|
+
* 2. <Decision and rationale>
|
|
84
|
+
*
|
|
85
|
+
* What to preserve in production:
|
|
86
|
+
* - <Design element>
|
|
87
|
+
* - <Interaction pattern>
|
|
88
|
+
*
|
|
89
|
+
* What production implementation must do differently:
|
|
90
|
+
* - Replace mock data with database query
|
|
91
|
+
* - Import <Component> from @regen/ui instead of inline implementation
|
|
92
|
+
* - Extract <Part> into shared component at src/components/<name>
|
|
93
|
+
*
|
|
94
|
+
* Production agent type: frontend | backend | data | viz
|
|
95
|
+
* Production guide: .rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md)
|
|
96
|
+
*/
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## File Footer Template
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
// ─── HANDOFF SPEC ─────────────────────────────
|
|
103
|
+
// Production files:
|
|
104
|
+
// apps/<app>/src/app/<route>/page.tsx (server component)
|
|
105
|
+
// apps/<app>/src/app/<route>/<Name>Client.tsx (client component)
|
|
106
|
+
// apps/<app>/src/app/<route>/<Name>Wrapper.tsx (modal/state shell, if needed)
|
|
107
|
+
//
|
|
108
|
+
// Design system components to use (do not re-implement):
|
|
109
|
+
// <ComponentName> — <what it does>
|
|
110
|
+
//
|
|
111
|
+
// Database tables:
|
|
112
|
+
// <table> — <what to query>
|
|
113
|
+
//
|
|
114
|
+
// Form field schema additions needed:
|
|
115
|
+
// <table>.<column> — <input_type> — <label>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## After Building — Register and Record
|
|
119
|
+
|
|
120
|
+
```sql
|
|
121
|
+
-- Register prototype
|
|
122
|
+
INSERT INTO prototype_registry (name, component, source_path, notes, created_by)
|
|
123
|
+
VALUES (
|
|
124
|
+
'<Name> Prototype v1',
|
|
125
|
+
'<ComponentName>',
|
|
126
|
+
'docs/source/<ComponentName>.jsx',
|
|
127
|
+
'<One-line description of key design: layout, data shape, interactions>',
|
|
128
|
+
'planning'
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
-- Record design decisions
|
|
132
|
+
INSERT INTO design_context (topic, context_type, summary, source, created_by)
|
|
133
|
+
VALUES
|
|
134
|
+
('<Topic>', 'prototype', 'Prototype built with <X> layout and <Y> interaction pattern', 'planning', 'planning'),
|
|
135
|
+
('<Topic>', 'decision', '<Key decision made during prototyping and why>', 'planning', 'planning');
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Handoff
|
|
139
|
+
|
|
140
|
+
After prototype is approved, use `rdc:handoff` to create the plan doc and database work items.
|
|
141
|
+
|
|
142
|
+
Or tell the project lead:
|
|
143
|
+
```
|
|
144
|
+
Prototype complete.
|
|
145
|
+
File: docs/source/<ComponentName>.jsx
|
|
146
|
+
Registered: prototype_registry
|
|
147
|
+
|
|
148
|
+
To hand off to CLI build: use /rdc:handoff
|
|
149
|
+
To build immediately: use /rdc:build
|
|
150
|
+
```
|