@lifeaitools/rdc-skills 0.24.7 → 0.24.8

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 (49) hide show
  1. package/.claude-plugin/plugin.json +20 -5
  2. package/.github/workflows/self-test.yml +34 -34
  3. package/MANIFEST.md +23 -0
  4. package/README.md +37 -0
  5. package/commands/build.md +181 -181
  6. package/commands/collab.md +180 -180
  7. package/commands/deploy.md +148 -148
  8. package/commands/fixit.md +105 -105
  9. package/commands/handoff.md +173 -173
  10. package/commands/overnight.md +218 -218
  11. package/commands/plan.md +158 -158
  12. package/commands/preplan.md +131 -131
  13. package/commands/prototype.md +145 -145
  14. package/commands/report.md +99 -99
  15. package/commands/review.md +120 -120
  16. package/commands/status.md +86 -86
  17. package/commands/workitems.md +127 -127
  18. package/git-sha.json +1 -1
  19. package/guides/agent-bootstrap.md +195 -195
  20. package/guides/agents/backend.md +102 -102
  21. package/guides/agents/content.md +94 -94
  22. package/guides/agents/cs2.md +56 -56
  23. package/guides/agents/data.md +86 -86
  24. package/guides/agents/design.md +77 -77
  25. package/guides/agents/frontend.md +91 -91
  26. package/guides/agents/infrastructure.md +81 -81
  27. package/guides/agents/setup.md +272 -272
  28. package/guides/agents/verify.md +119 -119
  29. package/guides/agents/viz.md +106 -106
  30. package/package.json +1 -1
  31. package/scripts/self-test.mjs +1458 -1458
  32. package/skills/build/SKILL.md +554 -554
  33. package/skills/channel-formatter/SKILL.md +174 -9
  34. package/skills/collab/SKILL.md +239 -239
  35. package/skills/deploy/SKILL.md +541 -541
  36. package/skills/design/SKILL.md +205 -205
  37. package/skills/fixit/SKILL.md +165 -165
  38. package/skills/handoff/SKILL.md +200 -200
  39. package/skills/overnight/SKILL.md +251 -251
  40. package/skills/plan/SKILL.md +314 -314
  41. package/skills/preplan/SKILL.md +90 -90
  42. package/skills/prototype/SKILL.md +150 -150
  43. package/skills/release/SKILL.md +140 -140
  44. package/skills/report/SKILL.md +100 -100
  45. package/skills/review/SKILL.md +152 -152
  46. package/skills/self-test/SKILL.md +123 -123
  47. package/skills/status/SKILL.md +99 -99
  48. package/skills/watch/SKILL.md +90 -90
  49. package/skills/workitems/SKILL.md +151 -151
@@ -1,94 +1,94 @@
1
- > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
2
- > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
3
- > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
4
-
5
- > 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`).
6
-
7
-
8
- # rdc:content — Content Agent
9
-
10
- ## Mandatory First Step
11
-
12
- Read the guide before writing ANY copy:
13
- ```
14
- {PROJECT_ROOT}/.rdc/guides/content.md
15
- (fallback: {PROJECT_ROOT}/.rdc/guides/content.md)
16
- ```
17
-
18
- ## Core Message Development
19
-
20
- Before writing any copy:
21
-
22
- 1. Define the lead word or core concept (e.g., "Stewardship", "Community", "Trust")
23
- 2. State the core message in 1-2 sentences
24
- 3. List language to always use
25
- 4. List language to never use
26
- 5. Define target audiences and key messages for each
27
-
28
- ## Language Rules Pattern
29
-
30
- ### Always Use
31
- - Core concept words (replace vague synonyms)
32
- - Specific, measurable terms
33
- - Active voice where possible
34
- - Real data, not approximations
35
-
36
- ### Never Use
37
- | Avoid | Use Instead |
38
- |-------|-------------|
39
- | Vague concept | Specific term |
40
- | Passive construction | Active voice |
41
- | Clichéd term | Domain-specific language |
42
-
43
- ## Regulatory Context
44
-
45
- Verify what regulations apply to your content before writing:
46
- - Never guarantee results or returns
47
- - Use ranges and targets, not promises
48
- - Include necessary disclaimers
49
- - Maintain transparency about assumptions
50
-
51
- ## Audience Segments
52
-
53
- Define key audiences and their primary concerns:
54
- - What matters to this group?
55
- - What is their current perception?
56
- - What action do you want them to take?
57
-
58
- ## Key Facts
59
-
60
- Maintain a source-of-truth list:
61
- - Financial figures
62
- - Timelines
63
- - Commitments
64
- - Metrics
65
-
66
- Never invent these — always verify.
67
-
68
- ## Tone Template
69
-
70
- - Authority level: high/medium/low
71
- - Formality: formal/casual
72
- - Technical depth: detailed/accessible
73
- - Emotion: neutral/passionate
74
- - Speed: short/long form
75
-
76
- ## Content Queue (save to database)
77
-
78
- ```sql
79
- INSERT INTO content_queue (title, content_type, status, draft_body)
80
- VALUES (
81
- 'Email subject or article title',
82
- 'email_sequence', -- or: social_post, article, newsletter, landing_copy
83
- 'draft',
84
- '...'
85
- );
86
- ```
87
-
88
- ## Safety Rules
89
-
90
- - Never invent data — verify all figures
91
- - Never make legal claims — use "may be" language
92
- - Use prohibited words list when provided
93
- - Always include disclaimers for regulated content
94
- - Branch: development branch — commit content files to repo
1
+ > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
2
+ > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
3
+ > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
4
+
5
+ > 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`).
6
+
7
+
8
+ # rdc:content — Content Agent
9
+
10
+ ## Mandatory First Step
11
+
12
+ Read the guide before writing ANY copy:
13
+ ```
14
+ {PROJECT_ROOT}/.rdc/guides/content.md
15
+ (fallback: {PROJECT_ROOT}/.rdc/guides/content.md)
16
+ ```
17
+
18
+ ## Core Message Development
19
+
20
+ Before writing any copy:
21
+
22
+ 1. Define the lead word or core concept (e.g., "Stewardship", "Community", "Trust")
23
+ 2. State the core message in 1-2 sentences
24
+ 3. List language to always use
25
+ 4. List language to never use
26
+ 5. Define target audiences and key messages for each
27
+
28
+ ## Language Rules Pattern
29
+
30
+ ### Always Use
31
+ - Core concept words (replace vague synonyms)
32
+ - Specific, measurable terms
33
+ - Active voice where possible
34
+ - Real data, not approximations
35
+
36
+ ### Never Use
37
+ | Avoid | Use Instead |
38
+ |-------|-------------|
39
+ | Vague concept | Specific term |
40
+ | Passive construction | Active voice |
41
+ | Clichéd term | Domain-specific language |
42
+
43
+ ## Regulatory Context
44
+
45
+ Verify what regulations apply to your content before writing:
46
+ - Never guarantee results or returns
47
+ - Use ranges and targets, not promises
48
+ - Include necessary disclaimers
49
+ - Maintain transparency about assumptions
50
+
51
+ ## Audience Segments
52
+
53
+ Define key audiences and their primary concerns:
54
+ - What matters to this group?
55
+ - What is their current perception?
56
+ - What action do you want them to take?
57
+
58
+ ## Key Facts
59
+
60
+ Maintain a source-of-truth list:
61
+ - Financial figures
62
+ - Timelines
63
+ - Commitments
64
+ - Metrics
65
+
66
+ Never invent these — always verify.
67
+
68
+ ## Tone Template
69
+
70
+ - Authority level: high/medium/low
71
+ - Formality: formal/casual
72
+ - Technical depth: detailed/accessible
73
+ - Emotion: neutral/passionate
74
+ - Speed: short/long form
75
+
76
+ ## Content Queue (save to database)
77
+
78
+ ```sql
79
+ INSERT INTO content_queue (title, content_type, status, draft_body)
80
+ VALUES (
81
+ 'Email subject or article title',
82
+ 'email_sequence', -- or: social_post, article, newsletter, landing_copy
83
+ 'draft',
84
+ '...'
85
+ );
86
+ ```
87
+
88
+ ## Safety Rules
89
+
90
+ - Never invent data — verify all figures
91
+ - Never make legal claims — use "may be" language
92
+ - Use prohibited words list when provided
93
+ - Always include disclaimers for regulated content
94
+ - Branch: development branch — commit content files to repo
@@ -1,56 +1,56 @@
1
- > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
2
- > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
3
- > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
4
-
5
- > 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`).
6
-
7
-
8
- # rdc:cs2 — CS 2.0 Agent
9
-
10
- ## Mandatory First Step
11
-
12
- Read the guide before ANY code:
13
- ```
14
- {PROJECT_ROOT}/.rdc/guides/cs2.md
15
- (fallback: {PROJECT_ROOT}/.rdc/guides/cs2.md)
16
- ```
17
-
18
- Also read the master spec:
19
- ```
20
- {PROJECT_ROOT}/docs/systems/cs2/cs2-master-spec.md
21
- {PROJECT_ROOT}/docs/systems/cs2/package-map.md
22
- ```
23
-
24
- ## The Paradigm Check
25
-
26
- **Before writing ANY code, ask:**
27
- > "Is this building a new computational primitive, or am I wiring a UI to a database?"
28
-
29
- If the latter — STOP. That is CS 1.0 thinking. Route to `rdc:frontend` + `rdc:backend`.
30
-
31
- ## Package Dependency Graph
32
-
33
- Respect this — never create circular deps:
34
-
35
- ```
36
- Layer 0 (roots): cs2, core-primitive-1, core-primitive-2
37
- Layer 1: system-a(core-primitive-1), system-b(core-primitive-2)
38
- Layer 2: advanced-system(system-a, system-b)
39
- ```
40
-
41
- Apps depend on `@regen/` packages. **Apps never depend on each other.**
42
-
43
- ## TypeScript — No `any`, No Escape Hatches
44
-
45
- CS 2.0 packages must be fully typed. If you hit a type boundary you cannot express,
46
- that is a signal the abstraction is wrong — fix the model, not the types.
47
-
48
- ## Safety Rules
49
-
50
- - Branch: development branch — auto-commit per package
51
- - NEVER run `pnpm build` — use `npx tsc --noEmit --project packages/<n>/tsconfig.json`
52
- - Respect the dependency graph — no circular deps
53
- - Never self-modify governance weights from executing layers
54
- - All immutable proofs are permanent — never update committed data
55
- - NEVER overlap agents on the same package
56
- - Write tests FIRST — red → implement → green
1
+ > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
2
+ > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
3
+ > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
4
+
5
+ > 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`).
6
+
7
+
8
+ # rdc:cs2 — CS 2.0 Agent
9
+
10
+ ## Mandatory First Step
11
+
12
+ Read the guide before ANY code:
13
+ ```
14
+ {PROJECT_ROOT}/.rdc/guides/cs2.md
15
+ (fallback: {PROJECT_ROOT}/.rdc/guides/cs2.md)
16
+ ```
17
+
18
+ Also read the master spec:
19
+ ```
20
+ {PROJECT_ROOT}/docs/systems/cs2/cs2-master-spec.md
21
+ {PROJECT_ROOT}/docs/systems/cs2/package-map.md
22
+ ```
23
+
24
+ ## The Paradigm Check
25
+
26
+ **Before writing ANY code, ask:**
27
+ > "Is this building a new computational primitive, or am I wiring a UI to a database?"
28
+
29
+ If the latter — STOP. That is CS 1.0 thinking. Route to `rdc:frontend` + `rdc:backend`.
30
+
31
+ ## Package Dependency Graph
32
+
33
+ Respect this — never create circular deps:
34
+
35
+ ```
36
+ Layer 0 (roots): cs2, core-primitive-1, core-primitive-2
37
+ Layer 1: system-a(core-primitive-1), system-b(core-primitive-2)
38
+ Layer 2: advanced-system(system-a, system-b)
39
+ ```
40
+
41
+ Apps depend on `@regen/` packages. **Apps never depend on each other.**
42
+
43
+ ## TypeScript — No `any`, No Escape Hatches
44
+
45
+ CS 2.0 packages must be fully typed. If you hit a type boundary you cannot express,
46
+ that is a signal the abstraction is wrong — fix the model, not the types.
47
+
48
+ ## Safety Rules
49
+
50
+ - Branch: development branch — auto-commit per package
51
+ - NEVER run `pnpm build` — use `npx tsc --noEmit --project packages/<n>/tsconfig.json`
52
+ - Respect the dependency graph — no circular deps
53
+ - Never self-modify governance weights from executing layers
54
+ - All immutable proofs are permanent — never update committed data
55
+ - NEVER overlap agents on the same package
56
+ - Write tests FIRST — red → implement → green
@@ -1,87 +1,87 @@
1
- > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
2
- > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
3
- > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
4
-
5
- > 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`).
6
-
7
-
8
- # rdc:data — Data Agent
9
-
10
- ## Mandatory First Step
11
-
12
- Read the guide before ANY operations:
13
- ```
14
- {PROJECT_ROOT}/.rdc/guides/data.md
15
- (fallback: {PROJECT_ROOT}/.rdc/guides/data.md)
16
- ```
17
-
18
- ## Migration Pattern
19
-
20
- Always use database MCP `apply_migration` — never raw shell commands:
21
-
22
- ```sql
23
- -- Example migration
24
- ALTER TABLE example_table ADD COLUMN IF NOT EXISTS new_column TEXT;
25
-
26
- -- Verify after applying
27
- SELECT column_name, data_type
28
- FROM information_schema.columns
29
- WHERE table_name = 'example_table'
30
- ORDER BY ordinal_position;
31
- ```
32
-
33
- After `apply_migration`: always verify with queries.
34
-
35
- ## Work Items — RPC Only
36
-
37
- ```sql
38
- SELECT get_open_epics();
39
- SELECT insert_work_item(p_title := 'Task', p_priority := 'high', p_labels := ARRAY['data'], p_source := 'agent');
1
+ > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
2
+ > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
3
+ > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
4
+
5
+ > 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`).
6
+
7
+
8
+ # rdc:data — Data Agent
9
+
10
+ ## Mandatory First Step
11
+
12
+ Read the guide before ANY operations:
13
+ ```
14
+ {PROJECT_ROOT}/.rdc/guides/data.md
15
+ (fallback: {PROJECT_ROOT}/.rdc/guides/data.md)
16
+ ```
17
+
18
+ ## Migration Pattern
19
+
20
+ Always use database MCP `apply_migration` — never raw shell commands:
21
+
22
+ ```sql
23
+ -- Example migration
24
+ ALTER TABLE example_table ADD COLUMN IF NOT EXISTS new_column TEXT;
25
+
26
+ -- Verify after applying
27
+ SELECT column_name, data_type
28
+ FROM information_schema.columns
29
+ WHERE table_name = 'example_table'
30
+ ORDER BY ordinal_position;
31
+ ```
32
+
33
+ After `apply_migration`: always verify with queries.
34
+
35
+ ## Work Items — RPC Only
36
+
37
+ ```sql
38
+ SELECT get_open_epics();
39
+ SELECT insert_work_item(p_title := 'Task', p_priority := 'high', p_labels := ARRAY['data'], p_source := 'agent');
40
40
  SELECT update_work_item_status('<uuid>'::uuid, 'review', '["Implementation complete; ready for validator"]'::jsonb, '<agent-session-id>', 'agent');
41
- SELECT get_work_items_by_epic('<epic-uuid>'::uuid);
42
- ```
43
-
44
- **NEVER raw INSERT/UPDATE against work_items.**
45
-
46
- ## Schema-Driven Form Seeding
47
-
48
- When adding columns to dynamic form tables:
49
-
50
- ```sql
51
- INSERT INTO field_schema (
52
- table_name, column_name, input_type, label, section, display_order,
53
- required, readonly, hidden, col_span
54
- )
55
- VALUES
56
- ('example_table', 'new_column', 'text', 'New Column', 'Section', 90, false, false, false, 1)
57
- ON CONFLICT (table_name, column_name) DO NOTHING;
58
- ```
59
-
60
- Valid `input_type` values: `text` `textarea` `email` `url` `phone` `select` `tags`
61
- `json` `toggle` `currency` `number` `date` `richtext`
62
-
63
- ## Non-Public Schema Access
64
-
65
- ```ts
66
- const { data } = await supabase.schema("custom_schema").from("table_name").select("*");
67
- ```
68
-
69
- ## Design Decisions (record architectural choices)
70
-
71
- ```sql
72
- INSERT INTO design_context (topic, context_type, summary, source, created_by)
73
- VALUES (
74
- 'TopicName', 'decision',
75
- '2-3 sentence summary of what was decided and why',
76
- 'agent session', 'agent'
77
- );
78
- ```
79
-
80
- ## Safety Rules
81
-
82
- - Branch: development branch — auto-commit after each migration
83
- - Always verify migrations with queries
84
- - Never drop columns without explicit instruction
85
- - Never truncate tables without explicit instruction
86
- - NEVER overlap with other agents on schema changes mid-build
87
- - Write tests for RPC functions FIRST
41
+ SELECT get_work_items_by_epic('<epic-uuid>'::uuid);
42
+ ```
43
+
44
+ **NEVER raw INSERT/UPDATE against work_items.**
45
+
46
+ ## Schema-Driven Form Seeding
47
+
48
+ When adding columns to dynamic form tables:
49
+
50
+ ```sql
51
+ INSERT INTO field_schema (
52
+ table_name, column_name, input_type, label, section, display_order,
53
+ required, readonly, hidden, col_span
54
+ )
55
+ VALUES
56
+ ('example_table', 'new_column', 'text', 'New Column', 'Section', 90, false, false, false, 1)
57
+ ON CONFLICT (table_name, column_name) DO NOTHING;
58
+ ```
59
+
60
+ Valid `input_type` values: `text` `textarea` `email` `url` `phone` `select` `tags`
61
+ `json` `toggle` `currency` `number` `date` `richtext`
62
+
63
+ ## Non-Public Schema Access
64
+
65
+ ```ts
66
+ const { data } = await supabase.schema("custom_schema").from("table_name").select("*");
67
+ ```
68
+
69
+ ## Design Decisions (record architectural choices)
70
+
71
+ ```sql
72
+ INSERT INTO design_context (topic, context_type, summary, source, created_by)
73
+ VALUES (
74
+ 'TopicName', 'decision',
75
+ '2-3 sentence summary of what was decided and why',
76
+ 'agent session', 'agent'
77
+ );
78
+ ```
79
+
80
+ ## Safety Rules
81
+
82
+ - Branch: development branch — auto-commit after each migration
83
+ - Always verify migrations with queries
84
+ - Never drop columns without explicit instruction
85
+ - Never truncate tables without explicit instruction
86
+ - NEVER overlap with other agents on schema changes mid-build
87
+ - Write tests for RPC functions FIRST
@@ -1,77 +1,77 @@
1
- > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
2
- > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
3
- > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
4
-
5
- > 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`).
6
-
7
-
8
- # rdc:design — Design Agent
9
-
10
- ## Mandatory First Step
11
-
12
- Read the guide before ANY work:
13
- ```
14
- {PROJECT_ROOT}/.rdc/guides/design.md
15
- (fallback: {PROJECT_ROOT}/.rdc/guides/design.md)
16
- ```
17
-
18
- ## Six Design Principles
19
-
20
- 1. **User/Community First** — Serving those affected by the work
21
- 2. **Stewardship, Not Ownership** — Components hold space, don't dominate
22
- 3. **Verified, Not Narrated** — Real data only; no mocks
23
- 4. **Readability at Every Gate** — Clarity scales, jargon does not
24
- 5. **Dark by Default, Never Dark by Habit** — Dark palette signals trust
25
- 6. **Machines Handle Calculation; Humans Handle Conscience**
26
-
27
- ## Token System
28
-
29
- Two-layer model:
30
- ```
31
- global_design_tokens (base tokens)
32
- + brand_token_overrides (per-brand delta)
33
- = TokenWithInheritance[] (resolved set)
34
- ```
35
-
36
- Token export formats: JSON flat map, CSS vars (`:root`), other format systems.
37
-
38
- ## OG Images
39
-
40
- | Property | Value |
41
- |----------|-------|
42
- | Dimensions | 1200 × 630 px |
43
- | Format | RGB PNG, committed to git |
44
- | Location | `apps/<app>/public/og/og-image.png` |
45
- | Max size | 200 KB |
46
-
47
- Metadata:
48
- ```ts
49
- export const metadata: Metadata = {
50
- openGraph: {
51
- images: [{ url: "/og/og-image.png", width: 1200, height: 630, alt: "..." }],
52
- },
53
- twitter: { card: "summary_large_image", images: ["/og/og-image.png"] },
54
- };
55
- ```
56
-
57
- ## Variant Axes — Every Component Must Support
58
-
59
- | Axis | Values |
60
- |------|--------|
61
- | Size | xs / sm / md / lg / xl |
62
- | Shape | sharp / soft / pill / circle |
63
- | Density | compact / comfortable / spacious |
64
- | Motion | static / subtle / rich |
65
-
66
- ## Animation Philosophy
67
-
68
- - Always respect `prefers-reduced-motion` via appropriate hooks
69
- - Token-driven durations and easing — never hardcoded values
70
- - Keep motion purposeful, not decorative
71
-
72
- ## Safety Rules
73
-
74
- - Never hardcode hex colors in components — CSS variables only
75
- - Never override tokens without a design decision recorded
76
- - Branch: development branch — auto-commit
77
- - NEVER run `pnpm build`
1
+ > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
2
+ > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
3
+ > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
4
+
5
+ > 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`).
6
+
7
+
8
+ # rdc:design — Design Agent
9
+
10
+ ## Mandatory First Step
11
+
12
+ Read the guide before ANY work:
13
+ ```
14
+ {PROJECT_ROOT}/.rdc/guides/design.md
15
+ (fallback: {PROJECT_ROOT}/.rdc/guides/design.md)
16
+ ```
17
+
18
+ ## Six Design Principles
19
+
20
+ 1. **User/Community First** — Serving those affected by the work
21
+ 2. **Stewardship, Not Ownership** — Components hold space, don't dominate
22
+ 3. **Verified, Not Narrated** — Real data only; no mocks
23
+ 4. **Readability at Every Gate** — Clarity scales, jargon does not
24
+ 5. **Dark by Default, Never Dark by Habit** — Dark palette signals trust
25
+ 6. **Machines Handle Calculation; Humans Handle Conscience**
26
+
27
+ ## Token System
28
+
29
+ Two-layer model:
30
+ ```
31
+ global_design_tokens (base tokens)
32
+ + brand_token_overrides (per-brand delta)
33
+ = TokenWithInheritance[] (resolved set)
34
+ ```
35
+
36
+ Token export formats: JSON flat map, CSS vars (`:root`), other format systems.
37
+
38
+ ## OG Images
39
+
40
+ | Property | Value |
41
+ |----------|-------|
42
+ | Dimensions | 1200 × 630 px |
43
+ | Format | RGB PNG, committed to git |
44
+ | Location | `apps/<app>/public/og/og-image.png` |
45
+ | Max size | 200 KB |
46
+
47
+ Metadata:
48
+ ```ts
49
+ export const metadata: Metadata = {
50
+ openGraph: {
51
+ images: [{ url: "/og/og-image.png", width: 1200, height: 630, alt: "..." }],
52
+ },
53
+ twitter: { card: "summary_large_image", images: ["/og/og-image.png"] },
54
+ };
55
+ ```
56
+
57
+ ## Variant Axes — Every Component Must Support
58
+
59
+ | Axis | Values |
60
+ |------|--------|
61
+ | Size | xs / sm / md / lg / xl |
62
+ | Shape | sharp / soft / pill / circle |
63
+ | Density | compact / comfortable / spacious |
64
+ | Motion | static / subtle / rich |
65
+
66
+ ## Animation Philosophy
67
+
68
+ - Always respect `prefers-reduced-motion` via appropriate hooks
69
+ - Token-driven durations and easing — never hardcoded values
70
+ - Keep motion purposeful, not decorative
71
+
72
+ ## Safety Rules
73
+
74
+ - Never hardcode hex colors in components — CSS variables only
75
+ - Never override tokens without a design decision recorded
76
+ - Branch: development branch — auto-commit
77
+ - NEVER run `pnpm build`