@lifeaitools/rdc-skills 0.24.37 → 0.24.39

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 (191) hide show
  1. package/.claude/settings.json +15 -15
  2. package/.claude-plugin/marketplace.json +21 -21
  3. package/.claude-plugin/plugin.json +1371 -1371
  4. package/.github/workflows/publish.yml +34 -34
  5. package/.github/workflows/self-test.yml +58 -58
  6. package/CHANGELOG.md +310 -310
  7. package/LICENSE +21 -21
  8. package/MANIFEST.md +221 -221
  9. package/README.md +377 -377
  10. package/README.sandbox.md +3 -3
  11. package/assets/watcher/viewer.html +164 -164
  12. package/bin/rdc-skills-mcp.mjs +316 -316
  13. package/commands/build.md +183 -183
  14. package/commands/collab.md +180 -180
  15. package/commands/deploy.md +152 -152
  16. package/commands/design.md +31 -31
  17. package/commands/edit.md +28 -28
  18. package/commands/fixit.md +124 -124
  19. package/commands/handoff.md +173 -173
  20. package/commands/help.md +95 -95
  21. package/commands/overnight.md +220 -220
  22. package/commands/plan.md +158 -158
  23. package/commands/preplan.md +131 -131
  24. package/commands/prototype.md +145 -145
  25. package/commands/release.md +49 -49
  26. package/commands/report.md +99 -99
  27. package/commands/review.md +120 -120
  28. package/commands/self-test.md +113 -113
  29. package/commands/status.md +86 -86
  30. package/commands/watch.md +98 -98
  31. package/commands/workitems.md +137 -137
  32. package/git-sha.json +1 -1
  33. package/guides/agent-bootstrap.md +295 -295
  34. package/guides/agents/backend.md +104 -104
  35. package/guides/agents/content.md +94 -94
  36. package/guides/agents/cs2.md +56 -56
  37. package/guides/agents/data.md +87 -87
  38. package/guides/agents/design.md +77 -77
  39. package/guides/agents/frontend.md +92 -92
  40. package/guides/agents/infrastructure.md +81 -81
  41. package/guides/agents/setup.md +281 -281
  42. package/guides/agents/verify.md +151 -151
  43. package/guides/agents/viz.md +106 -106
  44. package/guides/backend.md +146 -146
  45. package/guides/content.md +147 -147
  46. package/guides/cs2.md +190 -190
  47. package/guides/data.md +123 -123
  48. package/guides/design.md +116 -116
  49. package/guides/engineering-behavior.md +43 -43
  50. package/guides/escalation-protocol.md +125 -125
  51. package/guides/frontend.md +151 -151
  52. package/guides/history-md-spec.md +297 -297
  53. package/guides/infrastructure.md +179 -179
  54. package/guides/lessons-learned-spec.md +153 -153
  55. package/guides/output-contract.md +108 -108
  56. package/guides/publish-md-spec.md +289 -289
  57. package/guides/rdc-skills-startup.md +30 -30
  58. package/guides/verify.md +11 -11
  59. package/hooks/check-cwd.js +31 -31
  60. package/hooks/check-rdc-environment.js +164 -164
  61. package/hooks/check-services.js +6 -6
  62. package/hooks/check-stale-work-items.js +19 -19
  63. package/hooks/foreground-process-gate.js +128 -128
  64. package/hooks/gate-watchdog-selfcheck.js +257 -257
  65. package/hooks/hook-logger.js +25 -25
  66. package/hooks/lib/run-evidence-gate.mjs +241 -241
  67. package/hooks/no-stop-open-epics.js +127 -127
  68. package/hooks/post-tool-batch-gate.js +203 -203
  69. package/hooks/post-work-check.js +21 -21
  70. package/hooks/postcompact-log.js +13 -13
  71. package/hooks/precompact-log.js +13 -13
  72. package/hooks/rate-limit-retry.js +46 -46
  73. package/hooks/rdc-invocation-marker.js +157 -157
  74. package/hooks/rdc-output-contract-gate.js +94 -94
  75. package/hooks/require-work-item-on-commit.js +294 -294
  76. package/hooks/restart-brief.js +19 -19
  77. package/hooks/run-hidden-hook.ps1 +47 -47
  78. package/hooks/task-completed-gate.js +274 -274
  79. package/hooks/work-item-exit-gate.js +944 -944
  80. package/lib/catalog.mjs +236 -236
  81. package/lib/cloud-rewrite.mjs +155 -155
  82. package/package.json +56 -56
  83. package/rules/work-items-rpc.md +520 -520
  84. package/scaffold/templates/HISTORY.md.template +39 -39
  85. package/scaffold/templates/PUBLISH.md.template +21 -21
  86. package/scaffold/templates/brochure-studio-default.html +70 -70
  87. package/scripts/acceptance.mjs +502 -502
  88. package/scripts/fixtures/guides/bad-guide.md +15 -15
  89. package/scripts/fixtures/guides-clean/good-guide.md +16 -16
  90. package/scripts/install-rdc-skills.js +1289 -1289
  91. package/scripts/install.ps1 +202 -202
  92. package/scripts/install.sh +132 -132
  93. package/scripts/lib/assertions.mjs +287 -287
  94. package/scripts/lib/manifest-schema.mjs +754 -754
  95. package/scripts/lib/runner.mjs +465 -465
  96. package/scripts/lib/sandbox.mjs +435 -435
  97. package/scripts/prepack.mjs +32 -32
  98. package/scripts/rdc-brochure.mjs +464 -464
  99. package/scripts/rdc-design-cli.mjs +134 -134
  100. package/scripts/rebuild-mcp.mjs +107 -107
  101. package/scripts/self-test.mjs +1460 -1460
  102. package/scripts/stamp-git-sha.mjs +29 -29
  103. package/scripts/test-guide-validator.mjs +196 -196
  104. package/scripts/test-rdc-hooks.mjs +145 -145
  105. package/scripts/uninstall.ps1 +77 -77
  106. package/scripts/uninstall.sh +69 -69
  107. package/scripts/update.ps1 +43 -43
  108. package/scripts/update.sh +43 -43
  109. package/scripts/validate-place-histories.js +461 -461
  110. package/scripts/validate-publish-manifests.js +424 -424
  111. package/scripts/watch-init.mjs +100 -100
  112. package/skills/brochure/SKILL.md +107 -107
  113. package/skills/build/SKILL.md +563 -554
  114. package/skills/channel-formatter/SKILL.md +533 -533
  115. package/skills/co-develop/SKILL.md +196 -196
  116. package/skills/collab/SKILL.md +239 -239
  117. package/skills/convert/SKILL.md +140 -140
  118. package/skills/deploy/SKILL.md +541 -541
  119. package/skills/design/SKILL.md +211 -211
  120. package/skills/design/reference/ownership.md +16 -16
  121. package/skills/design/reference/rampa.md +92 -92
  122. package/skills/design/reference/studio-model.md +153 -153
  123. package/skills/edit/SKILL.md +98 -98
  124. package/skills/fixit/SKILL.md +165 -165
  125. package/skills/fs-mcp/SKILL.md +148 -148
  126. package/skills/handoff/SKILL.md +236 -200
  127. package/skills/help/SKILL.md +143 -143
  128. package/skills/housekeeping/SKILL.md +189 -189
  129. package/skills/lifeai-brochure-author/SKILL.md +340 -340
  130. package/skills/overnight/SKILL.md +251 -251
  131. package/skills/plan/SKILL.md +345 -314
  132. package/skills/preplan/SKILL.md +90 -90
  133. package/skills/prototype/SKILL.md +150 -150
  134. package/skills/rdc-brochurify/SKILL.md +245 -245
  135. package/skills/rdc-extract-verifier-rules/SKILL.md +191 -191
  136. package/skills/release/SKILL.md +140 -140
  137. package/skills/report/SKILL.md +100 -100
  138. package/skills/review/SKILL.md +152 -152
  139. package/skills/rpms-filemap/SKILL.cloud.md +111 -111
  140. package/skills/rpms-filemap/SKILL.md +111 -111
  141. package/skills/self-test/SKILL.md +132 -132
  142. package/skills/status/SKILL.md +99 -99
  143. package/skills/terminal-config/SKILL.md +62 -62
  144. package/skills/tests/MATRIX.md +54 -54
  145. package/skills/tests/README.md +47 -47
  146. package/skills/tests/rdc-brochure.test.json +34 -34
  147. package/skills/tests/rdc-build.test.json +36 -36
  148. package/skills/tests/rdc-channel-formatter.test.json +45 -45
  149. package/skills/tests/rdc-co-develop.test.json +29 -29
  150. package/skills/tests/rdc-collab.test.json +29 -29
  151. package/skills/tests/rdc-convert.test.json +35 -35
  152. package/skills/tests/rdc-deploy.test.json +30 -30
  153. package/skills/tests/rdc-design.test.json +27 -27
  154. package/skills/tests/rdc-edit.test.json +29 -29
  155. package/skills/tests/rdc-fixit.test.json +36 -36
  156. package/skills/tests/rdc-fs-mcp.test.json +36 -36
  157. package/skills/tests/rdc-handoff.test.json +28 -28
  158. package/skills/tests/rdc-help.test.json +29 -29
  159. package/skills/tests/rdc-housekeeping.test.json +31 -31
  160. package/skills/tests/rdc-lifeai-brochure-author.test.json +35 -35
  161. package/skills/tests/rdc-overnight.test.json +37 -37
  162. package/skills/tests/rdc-plan.test.json +27 -27
  163. package/skills/tests/rdc-preplan.test.json +31 -31
  164. package/skills/tests/rdc-prototype.test.json +28 -28
  165. package/skills/tests/rdc-rdc-brochurify.test.json +23 -23
  166. package/skills/tests/rdc-rdc-extract-verifier-rules.test.json +34 -34
  167. package/skills/tests/rdc-release.test.json +29 -29
  168. package/skills/tests/rdc-report.test.json +28 -28
  169. package/skills/tests/rdc-review.test.json +29 -29
  170. package/skills/tests/rdc-rpms-filemap.test.json +28 -28
  171. package/skills/tests/rdc-self-test.test.json +24 -24
  172. package/skills/tests/rdc-status.test.json +29 -29
  173. package/skills/tests/rdc-terminal-config.test.json +29 -29
  174. package/skills/tests/rdc-watch.test.json +24 -24
  175. package/skills/tests/rdc-workitems.test.json +27 -27
  176. package/skills/watch/SKILL.md +97 -97
  177. package/skills/workitems/SKILL.md +151 -151
  178. package/tests/acceptance.test.mjs +59 -59
  179. package/tests/channel-formatter.contract.test.mjs +251 -251
  180. package/tests/curl-surface.test.mjs +289 -289
  181. package/tests/harness-gates.test.mjs +325 -325
  182. package/tests/help-surface.test.mjs +61 -61
  183. package/tests/install-rdc-skills.test.mjs +49 -49
  184. package/tests/manifest-contract-fields.test.mjs +78 -78
  185. package/tests/mcp.test.mjs +271 -271
  186. package/tests/require-work-item-on-commit.test.mjs +162 -162
  187. package/tests/run-evidence-gate.test.mjs +82 -82
  188. package/tests/skill-test-matrix.test.mjs +66 -66
  189. package/tests/validate-skills.js +27 -27
  190. package/tests/work-item-exit-gate-l2.test.mjs +368 -368
  191. package/tests/work-item-exit-gate-l3.test.mjs +197 -197
@@ -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');
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
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
+ 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
@@ -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`
@@ -1,92 +1,92 @@
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
- > **Sandbox contract:** This guide honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
8
-
9
-
10
- # rdc:frontend — Frontend Agent
11
-
12
- ## Mandatory First Step
13
-
14
- Read the guide before ANY code:
15
- ```
16
- {PROJECT_ROOT}/.rdc/guides/frontend.md
17
- (fallback: {PROJECT_ROOT}/.rdc/guides/frontend.md)
18
- ```
19
-
20
- ## Before Writing Any Code
21
-
22
- 1. **Check for existing prototypes:**
23
- ```sql
24
- SELECT name, component, source_path, status, notes
25
- FROM prototype_registry
26
- WHERE status IN ('prototype', 'converting')
27
- ORDER BY created_at DESC;
28
- ```
29
- If a prototype exists: **ADAPT IT. Do not build from scratch.**
30
-
31
- 2. **Check design decisions:**
32
- ```sql
33
- SELECT topic, summary FROM design_context
34
- WHERE topic ILIKE '%<task-topic>%'
35
- ORDER BY created_at DESC;
36
- ```
37
-
38
- 3. **Read the app CLAUDE.md** for the target app.
39
-
40
- ## New Component Contract
41
-
42
- All new components follow the standard pattern:
43
-
44
- ```tsx
45
- "use client"; // only if uses hooks/browser APIs
46
- import * as React from "react";
47
- import { cva, type VariantProps } from "class-variance-authority";
48
- import { cn } from "../lib/utils";
49
-
50
- const myComponentVariants = cva("base-classes", {
51
- variants: {
52
- variant: { default: "", outline: "" },
53
- size: { sm: "", md: "", lg: "" },
54
- },
55
- defaultVariants: { variant: "default", size: "md" },
56
- });
57
-
58
- interface MyComponentProps
59
- extends React.HTMLAttributes<HTMLDivElement>,
60
- VariantProps<typeof myComponentVariants> {}
61
-
62
- const MyComponent = React.forwardRef<HTMLDivElement, MyComponentProps>(
63
- ({ className, variant, size, ...props }, ref) => (
64
- <div ref={ref} className={cn(myComponentVariants({ variant, size }), className)} {...props} />
65
- )
66
- );
67
- MyComponent.displayName = "MyComponent";
68
- export { MyComponent, myComponentVariants };
69
- ```
70
-
71
- Then re-export from the package's index.
72
-
73
- ## Next.js Patterns
74
-
75
- - App Router (modern) — use `src/app/`
76
- - Dynamic imports for browser-only libs
77
- - `transpilePackages` in next.config must list all monorepo packages used
78
- - Auth: use the auth helpers for protected apps; pass-through for public
79
-
80
- ## Colors — CSS Variables ONLY
81
-
82
- Never hardcode hex values in components. Always use CSS variables from the app's globals.css.
83
-
84
- ## Safety Rules
85
-
86
- - Branch: development branch — auto-commit after logical blocks
87
- - NEVER run `pnpm build` — crashes the system; code only
88
- - NEVER overlap with other agents on the same files
89
- - NEVER modify files outside your assigned scope
90
- - After completing: commit with descriptive message, push *(skip push if `$RDC_TEST=1` — echo `[RDC_TEST] skipping git push` instead)*
91
- - Submit `implementation_report.codeflow_post`, then update work item to `review` via `update_work_item_status(..., p_actor_role := 'agent')`; validators close `done`
92
- - 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
+ > **Sandbox contract:** This guide honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
8
+
9
+
10
+ # rdc:frontend — Frontend Agent
11
+
12
+ ## Mandatory First Step
13
+
14
+ Read the guide before ANY code:
15
+ ```
16
+ {PROJECT_ROOT}/.rdc/guides/frontend.md
17
+ (fallback: {PROJECT_ROOT}/.rdc/guides/frontend.md)
18
+ ```
19
+
20
+ ## Before Writing Any Code
21
+
22
+ 1. **Check for existing prototypes:**
23
+ ```sql
24
+ SELECT name, component, source_path, status, notes
25
+ FROM prototype_registry
26
+ WHERE status IN ('prototype', 'converting')
27
+ ORDER BY created_at DESC;
28
+ ```
29
+ If a prototype exists: **ADAPT IT. Do not build from scratch.**
30
+
31
+ 2. **Check design decisions:**
32
+ ```sql
33
+ SELECT topic, summary FROM design_context
34
+ WHERE topic ILIKE '%<task-topic>%'
35
+ ORDER BY created_at DESC;
36
+ ```
37
+
38
+ 3. **Read the app CLAUDE.md** for the target app.
39
+
40
+ ## New Component Contract
41
+
42
+ All new components follow the standard pattern:
43
+
44
+ ```tsx
45
+ "use client"; // only if uses hooks/browser APIs
46
+ import * as React from "react";
47
+ import { cva, type VariantProps } from "class-variance-authority";
48
+ import { cn } from "../lib/utils";
49
+
50
+ const myComponentVariants = cva("base-classes", {
51
+ variants: {
52
+ variant: { default: "", outline: "" },
53
+ size: { sm: "", md: "", lg: "" },
54
+ },
55
+ defaultVariants: { variant: "default", size: "md" },
56
+ });
57
+
58
+ interface MyComponentProps
59
+ extends React.HTMLAttributes<HTMLDivElement>,
60
+ VariantProps<typeof myComponentVariants> {}
61
+
62
+ const MyComponent = React.forwardRef<HTMLDivElement, MyComponentProps>(
63
+ ({ className, variant, size, ...props }, ref) => (
64
+ <div ref={ref} className={cn(myComponentVariants({ variant, size }), className)} {...props} />
65
+ )
66
+ );
67
+ MyComponent.displayName = "MyComponent";
68
+ export { MyComponent, myComponentVariants };
69
+ ```
70
+
71
+ Then re-export from the package's index.
72
+
73
+ ## Next.js Patterns
74
+
75
+ - App Router (modern) — use `src/app/`
76
+ - Dynamic imports for browser-only libs
77
+ - `transpilePackages` in next.config must list all monorepo packages used
78
+ - Auth: use the auth helpers for protected apps; pass-through for public
79
+
80
+ ## Colors — CSS Variables ONLY
81
+
82
+ Never hardcode hex values in components. Always use CSS variables from the app's globals.css.
83
+
84
+ ## Safety Rules
85
+
86
+ - Branch: development branch — auto-commit after logical blocks
87
+ - NEVER run `pnpm build` — crashes the system; code only
88
+ - NEVER overlap with other agents on the same files
89
+ - NEVER modify files outside your assigned scope
90
+ - After completing: commit with descriptive message, push *(skip push if `$RDC_TEST=1` — echo `[RDC_TEST] skipping git push` instead)*
91
+ - Submit `implementation_report.codeflow_post`, then update work item to `review` via `update_work_item_status(..., p_actor_role := 'agent')`; validators close `done`
92
+ - Write tests FIRST — red → implement → green