@lifeaitools/rdc-skills 0.24.38 → 0.24.41
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/settings.json +15 -15
- package/.claude-plugin/marketplace.json +21 -21
- package/.claude-plugin/plugin.json +1371 -1371
- package/.github/workflows/publish.yml +34 -34
- package/.github/workflows/self-test.yml +58 -58
- package/CHANGELOG.md +310 -310
- package/LICENSE +21 -21
- package/MANIFEST.md +221 -221
- package/README.md +376 -375
- package/README.sandbox.md +3 -3
- package/RELEASE.md +42 -0
- package/assets/watcher/viewer.html +164 -164
- package/bin/rdc-skills-mcp.mjs +316 -316
- package/commands/build.md +183 -183
- package/commands/collab.md +180 -180
- package/commands/deploy.md +152 -152
- package/commands/design.md +31 -31
- package/commands/edit.md +28 -28
- package/commands/fixit.md +124 -124
- package/commands/handoff.md +173 -173
- package/commands/help.md +95 -95
- package/commands/overnight.md +220 -220
- package/commands/plan.md +158 -158
- package/commands/preplan.md +131 -131
- package/commands/prototype.md +145 -145
- package/commands/release.md +49 -49
- package/commands/report.md +99 -99
- package/commands/review.md +120 -120
- package/commands/self-test.md +113 -113
- package/commands/status.md +86 -86
- package/commands/watch.md +98 -98
- package/commands/workitems.md +137 -137
- package/git-sha.json +1 -1
- package/guides/agent-bootstrap.md +295 -295
- package/guides/agents/backend.md +104 -104
- package/guides/agents/content.md +94 -94
- package/guides/agents/cs2.md +56 -56
- package/guides/agents/data.md +87 -87
- package/guides/agents/design.md +77 -77
- package/guides/agents/frontend.md +92 -92
- package/guides/agents/infrastructure.md +81 -81
- package/guides/agents/setup.md +281 -281
- package/guides/agents/verify.md +151 -151
- package/guides/agents/viz.md +106 -106
- package/guides/backend.md +146 -146
- package/guides/content.md +147 -147
- package/guides/cs2.md +190 -190
- package/guides/data.md +123 -123
- package/guides/design.md +116 -116
- package/guides/engineering-behavior.md +43 -43
- package/guides/escalation-protocol.md +125 -125
- package/guides/frontend.md +151 -151
- package/guides/history-md-spec.md +297 -297
- package/guides/infrastructure.md +179 -179
- package/guides/lessons-learned-spec.md +151 -145
- package/guides/output-contract.md +108 -108
- package/guides/publish-md-spec.md +289 -289
- package/guides/rdc-skills-startup.md +30 -30
- package/guides/verify.md +11 -11
- package/hooks/check-cwd.js +31 -31
- package/hooks/check-rdc-environment.js +164 -164
- package/hooks/check-services.js +6 -6
- package/hooks/check-stale-work-items.js +19 -19
- package/hooks/foreground-process-gate.js +128 -128
- package/hooks/gate-watchdog-selfcheck.js +257 -257
- package/hooks/hook-logger.js +25 -25
- package/hooks/lib/run-evidence-gate.mjs +241 -241
- package/hooks/no-stop-open-epics.js +127 -127
- package/hooks/post-tool-batch-gate.js +203 -203
- package/hooks/post-work-check.js +21 -21
- package/hooks/postcompact-log.js +13 -13
- package/hooks/precompact-log.js +13 -13
- package/hooks/rate-limit-retry.js +46 -46
- package/hooks/rdc-invocation-marker.js +157 -157
- package/hooks/rdc-output-contract-gate.js +94 -94
- package/hooks/require-work-item-on-commit.js +294 -294
- package/hooks/restart-brief.js +19 -19
- package/hooks/run-hidden-hook.ps1 +47 -47
- package/hooks/task-completed-gate.js +274 -274
- package/hooks/work-item-exit-gate.js +944 -944
- package/lib/catalog.mjs +236 -236
- package/lib/cloud-rewrite.mjs +155 -155
- package/package.json +57 -56
- package/rules/work-items-rpc.md +520 -520
- package/scaffold/templates/HISTORY.md.template +39 -39
- package/scaffold/templates/PUBLISH.md.template +21 -21
- package/scaffold/templates/brochure-studio-default.html +70 -70
- package/scripts/acceptance.mjs +502 -502
- package/scripts/fixtures/guides/bad-guide.md +15 -15
- package/scripts/fixtures/guides-clean/good-guide.md +16 -16
- package/scripts/install-rdc-skills.js +1289 -1289
- package/scripts/install.ps1 +202 -202
- package/scripts/install.sh +132 -132
- package/scripts/lib/assertions.mjs +287 -287
- package/scripts/lib/manifest-schema.mjs +754 -754
- package/scripts/lib/runner.mjs +465 -465
- package/scripts/lib/sandbox.mjs +435 -435
- package/scripts/prepack.mjs +32 -32
- package/scripts/rdc-brochure.mjs +482 -464
- package/scripts/rdc-design-cli.mjs +134 -134
- package/scripts/rebuild-mcp.mjs +107 -107
- package/scripts/self-test.mjs +1460 -1460
- package/scripts/stamp-git-sha.mjs +29 -29
- package/scripts/test-guide-validator.mjs +196 -196
- package/scripts/test-rdc-hooks.mjs +145 -145
- package/scripts/uninstall.ps1 +77 -77
- package/scripts/uninstall.sh +69 -69
- package/scripts/update.ps1 +43 -43
- package/scripts/update.sh +43 -43
- package/scripts/validate-place-histories.js +461 -461
- package/scripts/validate-publish-manifests.js +424 -424
- package/scripts/watch-init.mjs +100 -100
- package/skills/brochure/SKILL.md +107 -107
- package/skills/build/SKILL.md +563 -563
- package/skills/channel-formatter/SKILL.md +533 -533
- package/skills/co-develop/SKILL.md +196 -196
- package/skills/collab/SKILL.md +239 -239
- package/skills/convert/SKILL.md +140 -140
- package/skills/deploy/SKILL.md +541 -541
- package/skills/design/SKILL.md +211 -211
- package/skills/design/reference/ownership.md +16 -16
- package/skills/design/reference/rampa.md +92 -92
- package/skills/design/reference/studio-model.md +153 -153
- package/skills/edit/SKILL.md +98 -98
- package/skills/fixit/SKILL.md +165 -165
- package/skills/fs-mcp/SKILL.md +148 -148
- package/skills/handoff/SKILL.md +236 -200
- package/skills/help/SKILL.md +143 -143
- package/skills/housekeeping/SKILL.md +219 -160
- package/skills/lifeai-brochure-author/SKILL.md +340 -340
- package/skills/overnight/SKILL.md +251 -251
- package/skills/plan/SKILL.md +345 -345
- package/skills/preplan/SKILL.md +90 -90
- package/skills/prototype/SKILL.md +150 -150
- package/skills/rdc-brochurify/SKILL.md +245 -245
- package/skills/rdc-extract-verifier-rules/SKILL.md +191 -191
- 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 +111 -111
- package/skills/rpms-filemap/SKILL.md +111 -111
- package/skills/self-test/SKILL.md +132 -132
- package/skills/status/SKILL.md +99 -99
- package/skills/terminal-config/SKILL.md +62 -62
- package/skills/tests/MATRIX.md +54 -54
- package/skills/tests/README.md +47 -47
- package/skills/tests/rdc-brochure.test.json +34 -34
- package/skills/tests/rdc-build.test.json +36 -36
- package/skills/tests/rdc-channel-formatter.test.json +45 -45
- package/skills/tests/rdc-co-develop.test.json +29 -29
- package/skills/tests/rdc-collab.test.json +29 -29
- package/skills/tests/rdc-convert.test.json +35 -35
- package/skills/tests/rdc-deploy.test.json +30 -30
- package/skills/tests/rdc-design.test.json +27 -27
- package/skills/tests/rdc-edit.test.json +29 -29
- package/skills/tests/rdc-fixit.test.json +36 -36
- package/skills/tests/rdc-fs-mcp.test.json +36 -36
- package/skills/tests/rdc-handoff.test.json +28 -28
- package/skills/tests/rdc-help.test.json +29 -29
- package/skills/tests/rdc-housekeeping.test.json +32 -28
- package/skills/tests/rdc-lifeai-brochure-author.test.json +35 -35
- package/skills/tests/rdc-overnight.test.json +37 -37
- package/skills/tests/rdc-plan.test.json +27 -27
- package/skills/tests/rdc-preplan.test.json +31 -31
- package/skills/tests/rdc-prototype.test.json +28 -28
- package/skills/tests/rdc-rdc-brochurify.test.json +23 -23
- package/skills/tests/rdc-rdc-extract-verifier-rules.test.json +34 -34
- package/skills/tests/rdc-release.test.json +29 -29
- package/skills/tests/rdc-report.test.json +28 -28
- package/skills/tests/rdc-review.test.json +29 -29
- package/skills/tests/rdc-rpms-filemap.test.json +28 -28
- package/skills/tests/rdc-self-test.test.json +24 -24
- package/skills/tests/rdc-status.test.json +29 -29
- package/skills/tests/rdc-terminal-config.test.json +29 -29
- package/skills/tests/rdc-watch.test.json +24 -24
- package/skills/tests/rdc-workitems.test.json +27 -27
- package/skills/watch/SKILL.md +97 -97
- package/skills/workitems/SKILL.md +151 -151
- package/tests/acceptance.test.mjs +59 -59
- package/tests/channel-formatter.contract.test.mjs +251 -251
- package/tests/curl-surface.test.mjs +289 -289
- package/tests/harness-gates.test.mjs +325 -325
- package/tests/help-surface.test.mjs +61 -61
- package/tests/housekeeping-lessons-triage.test.mjs +49 -0
- package/tests/install-rdc-skills.test.mjs +49 -49
- package/tests/lessons-pipeline-contract.test.mjs +26 -0
- package/tests/manifest-contract-fields.test.mjs +78 -78
- package/tests/mcp.test.mjs +271 -271
- package/tests/rdc-brochure.test.mjs +125 -0
- package/tests/release-contract.test.mjs +16 -0
- package/tests/require-work-item-on-commit.test.mjs +162 -162
- package/tests/run-evidence-gate.test.mjs +82 -82
- package/tests/skill-test-matrix.test.mjs +66 -66
- package/tests/validate-skills.js +27 -27
- package/tests/work-item-exit-gate-l2.test.mjs +368 -368
- package/tests/work-item-exit-gate-l3.test.mjs +197 -197
package/guides/agents/data.md
CHANGED
|
@@ -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
|
package/guides/agents/design.md
CHANGED
|
@@ -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
|