@lifeaitools/rdc-skills 0.24.41 → 0.25.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.
Files changed (198) hide show
  1. package/.claude/settings.json +15 -15
  2. package/.claude-plugin/marketplace.json +21 -21
  3. package/.claude-plugin/plugin.json +1518 -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 +375 -376
  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 +150 -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 +145 -151
  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 +57 -57
  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 +482 -482
  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 +502 -424
  111. package/scripts/watch-init.mjs +100 -100
  112. package/skills/brochure/SKILL.md +107 -107
  113. package/skills/build/SKILL.md +563 -563
  114. package/skills/channel-formatter/SKILL.md +538 -533
  115. package/skills/co-develop/SKILL.md +196 -196
  116. package/skills/collab/SKILL.md +239 -239
  117. package/skills/convert/SKILL.md +167 -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 +203 -165
  125. package/skills/fs-mcp/SKILL.md +148 -148
  126. package/skills/handoff/SKILL.md +236 -236
  127. package/skills/help/SKILL.md +143 -143
  128. package/skills/housekeeping/SKILL.md +160 -219
  129. package/skills/lifeai-brochure-author/SKILL.md +340 -340
  130. package/skills/onramp/SKILL.md +248 -0
  131. package/skills/overnight/SKILL.md +251 -251
  132. package/skills/plan/SKILL.md +345 -345
  133. package/skills/preplan/SKILL.md +90 -90
  134. package/skills/prototype/SKILL.md +150 -150
  135. package/skills/rdc-brochurify/SKILL.md +245 -245
  136. package/skills/rdc-extract-verifier-rules/SKILL.md +191 -191
  137. package/skills/release/SKILL.md +140 -140
  138. package/skills/report/SKILL.md +100 -100
  139. package/skills/review/SKILL.md +152 -152
  140. package/skills/rpms-filemap/SKILL.cloud.md +111 -111
  141. package/skills/rpms-filemap/SKILL.md +111 -111
  142. package/skills/self-test/SKILL.md +132 -132
  143. package/skills/status/SKILL.md +99 -99
  144. package/skills/terminal-config/SKILL.md +62 -62
  145. package/skills/tests/MATRIX.md +54 -54
  146. package/skills/tests/README.md +47 -47
  147. package/skills/tests/onramp.test.json +87 -0
  148. package/skills/tests/rdc-brochure.test.json +34 -34
  149. package/skills/tests/rdc-build.test.json +36 -36
  150. package/skills/tests/rdc-channel-formatter.test.json +45 -45
  151. package/skills/tests/rdc-co-develop.test.json +29 -29
  152. package/skills/tests/rdc-collab.test.json +29 -29
  153. package/skills/tests/rdc-convert.test.json +35 -35
  154. package/skills/tests/rdc-deploy.test.json +30 -30
  155. package/skills/tests/rdc-design.test.json +27 -27
  156. package/skills/tests/rdc-edit.test.json +29 -29
  157. package/skills/tests/rdc-fixit.test.json +36 -36
  158. package/skills/tests/rdc-fs-mcp.test.json +36 -36
  159. package/skills/tests/rdc-handoff.test.json +28 -28
  160. package/skills/tests/rdc-help.test.json +29 -29
  161. package/skills/tests/rdc-housekeeping.test.json +28 -32
  162. package/skills/tests/rdc-lifeai-brochure-author.test.json +35 -35
  163. package/skills/tests/rdc-overnight.test.json +37 -37
  164. package/skills/tests/rdc-plan.test.json +27 -27
  165. package/skills/tests/rdc-preplan.test.json +31 -31
  166. package/skills/tests/rdc-prototype.test.json +28 -28
  167. package/skills/tests/rdc-rdc-brochurify.test.json +23 -23
  168. package/skills/tests/rdc-rdc-extract-verifier-rules.test.json +34 -34
  169. package/skills/tests/rdc-release.test.json +29 -29
  170. package/skills/tests/rdc-report.test.json +28 -28
  171. package/skills/tests/rdc-review.test.json +29 -29
  172. package/skills/tests/rdc-rpms-filemap.test.json +28 -28
  173. package/skills/tests/rdc-self-test.test.json +24 -24
  174. package/skills/tests/rdc-status.test.json +29 -29
  175. package/skills/tests/rdc-terminal-config.test.json +29 -29
  176. package/skills/tests/rdc-watch.test.json +24 -24
  177. package/skills/tests/rdc-workitems.test.json +27 -27
  178. package/skills/watch/SKILL.md +97 -97
  179. package/skills/workitems/SKILL.md +151 -151
  180. package/tests/acceptance.test.mjs +59 -59
  181. package/tests/channel-formatter.contract.test.mjs +251 -251
  182. package/tests/curl-surface.test.mjs +289 -289
  183. package/tests/harness-gates.test.mjs +325 -325
  184. package/tests/help-surface.test.mjs +61 -61
  185. package/tests/install-rdc-skills.test.mjs +49 -49
  186. package/tests/manifest-contract-fields.test.mjs +78 -78
  187. package/tests/mcp.test.mjs +271 -271
  188. package/tests/rdc-brochure.test.mjs +125 -125
  189. package/tests/require-work-item-on-commit.test.mjs +162 -162
  190. package/tests/run-evidence-gate.test.mjs +82 -82
  191. package/tests/skill-test-matrix.test.mjs +66 -66
  192. package/tests/validate-skills.js +27 -27
  193. package/tests/work-item-exit-gate-l2.test.mjs +368 -368
  194. package/tests/work-item-exit-gate-l3.test.mjs +197 -197
  195. package/RELEASE.md +0 -42
  196. package/tests/housekeeping-lessons-triage.test.mjs +0 -49
  197. package/tests/lessons-pipeline-contract.test.mjs +0 -26
  198. package/tests/release-contract.test.mjs +0 -16
@@ -1,151 +1,151 @@
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
-
6
- # rdc:verify — Verification Before Completion
7
-
8
- > Adapted from obra/superpowers `verification-before-completion`.
9
- > Stack-specific: uses `npx vitest run` + `npx tsc --noEmit`. NEVER `pnpm build` (crashes machine — 800MB/process).
10
-
11
- ## The Iron Law
12
-
13
- **NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
14
-
15
- You may not say "done", "complete", "working", "fixed", "passing", or imply success until you have:
16
-
17
- 1. **Identified** the exact commands that prove the claim
18
- 2. **Run** those commands fresh in the current state (not memory, not "earlier", not "should")
19
- 3. **Read** the full output
20
- 4. **Verified** the output matches the claim
21
- 5. Only THEN made the claim, quoting the evidence
22
-
23
- If you cannot run the commands, say so explicitly. Do not substitute reasoning for evidence.
24
-
25
- ## Red Flags — Stop and Verify
26
-
27
- If you're about to write any of these, STOP:
28
-
29
- - "should work" / "should pass" / "should be fine"
30
- - "probably" / "seems to" / "looks good"
31
- - "I think the tests pass"
32
- - "the types check out" (without running tsc)
33
- - "everything compiles" (without fresh output)
34
- - Expressing satisfaction or wrapping up before the gate ran
35
-
36
- ## The Gate — Commands for This Stack
37
-
38
- Run these in order. All must pass. Capture output.
39
-
40
- ### 0. Checklist decomposition quality
41
-
42
- Before code verification, inspect each work item checklist and the matching plan section.
43
-
44
- Required plan evidence:
45
- - `## Checklist Decomposition Matrix`
46
- - `## Checklist Quality Gate`
47
- - `verdict: PASS`
48
-
49
- Required work item evidence:
50
- - At least one `decomp-*` checklist item for every implementation work item
51
- - At least one `test-*` checklist item for every implementation work item
52
- - Each `decomp-*` item includes a route or file path, one action, one expected result, and one evidence artifact
53
- - Each `decomp-*` item is independently pass/fail; vague rows like "UI complete", "theme management works", or "integration verified" are failures
54
-
55
- If this check fails, stop validation for that item and reopen it. Do not mark a work item `done` when the checklist itself is not decomposed enough to prove completion.
56
-
57
- ### 1. Per-package vitest (every package touched)
58
-
59
- ```bash
60
- cd <repo-root>
61
- for pkg in <changed-packages>; do
62
- npx vitest run --dir packages/$pkg 2>&1 | tee /tmp/verify-$pkg.log
63
- done
64
- ```
65
-
66
- Or for a single package:
67
- ```bash
68
- npx vitest run --dir packages/<pkg>
69
- npx vitest run --dir apps/<app>
70
- ```
71
-
72
- **NEVER** run `pnpm build` or `pnpm test` at the repo root — spawns 5-7 node processes at 800MB each and crashes the machine.
73
-
74
- ### 2. Typecheck per package
75
-
76
- ```bash
77
- npx tsc --noEmit --project packages/<pkg>/tsconfig.json
78
- npx tsc --noEmit --project apps/<app>/tsconfig.json
79
- ```
80
-
81
- One package at a time. Read the full output — zero errors required.
82
-
83
- ### 3. Lint (if configured for the package)
84
-
85
- ```bash
86
- npx eslint <paths> --max-warnings=0
87
- ```
88
-
89
- ### 4. Smoke check exports (if package adds public API)
90
-
91
- ```bash
92
- node -e "const m = require('<pkg>'); console.log(Object.keys(m));"
93
- ```
94
-
95
- Or for ESM:
96
- ```bash
97
- node --input-type=module -e "import * as m from '<pkg>'; console.log(Object.keys(m));"
98
- ```
99
-
100
- ## Rationalization Prevention
101
-
102
- | You're tempted to think... | Reality |
103
- |---|---|
104
- | "Tests passed earlier, should still pass" | Run them now. Code changed. |
105
- | "TypeScript is strict, if it built it works" | You didn't build. Run tsc. |
106
- | "Small change, no need to retest" | Small changes are where regressions hide. |
107
- | "I'll note it as pending verification" | No. Verify now or mark incomplete. |
108
- | "The test file looks right" | Reading ≠ running. Run it. |
109
-
110
- ## Output Format — Required
111
-
112
- When reporting completion, use this structure:
113
-
114
- ```
115
- ## Verification Evidence
116
-
117
- ### vitest
118
- $ npx vitest run --dir packages/hail
119
- Test Files 12 passed (12)
120
- Tests 147 passed (147)
121
-
122
- ### tsc
123
- $ npx tsc --noEmit --project packages/hail/tsconfig.json
124
- (no output — clean)
125
-
126
- ### Status
127
- Checklist quality: PASS
128
- PASS — safe to mark tasks done.
129
- ```
130
-
131
- If any step fails: do NOT claim completion. Report the failure, fix it, re-run the entire gate.
132
-
133
- ## When to Invoke
134
-
135
- - **End of `/rdc:build`** — mandatory final phase before marking epic done
136
- - **During `/rdc:review`** — verification gate after fixes applied
137
- - **Before any "done" declaration** — if an agent or supervisor is about to say work is complete
138
- - **After merging waves** — when parallel agents finish and their work is combined
139
-
140
- ## Agent Delegation
141
-
142
- When dispatching a verification agent, give them:
143
- - Exact list of packages/apps to verify
144
- - Explicit ban on `pnpm build` / `pnpm test` / `pnpm -r`
145
- - Work item checklists and the matching plan doc so `decomp-*` quality can be verified first
146
- - Required output format (above)
147
- - Instruction: "If any command fails, STOP and report. Do not fix. Do not continue."
148
-
149
- ## The Bottom Line
150
-
151
- Evidence before claims. Fresh evidence, not remembered evidence. Full output, not selective reading. If you skip the gate, you are lying about the work being done.
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
+
6
+ # rdc:verify — Verification Before Completion
7
+
8
+ > Adapted from obra/superpowers `verification-before-completion`.
9
+ > Stack-specific: uses `npx vitest run` + `npx tsc --noEmit`. NEVER `pnpm build` (crashes machine — 800MB/process).
10
+
11
+ ## The Iron Law
12
+
13
+ **NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
14
+
15
+ You may not say "done", "complete", "working", "fixed", "passing", or imply success until you have:
16
+
17
+ 1. **Identified** the exact commands that prove the claim
18
+ 2. **Run** those commands fresh in the current state (not memory, not "earlier", not "should")
19
+ 3. **Read** the full output
20
+ 4. **Verified** the output matches the claim
21
+ 5. Only THEN made the claim, quoting the evidence
22
+
23
+ If you cannot run the commands, say so explicitly. Do not substitute reasoning for evidence.
24
+
25
+ ## Red Flags — Stop and Verify
26
+
27
+ If you're about to write any of these, STOP:
28
+
29
+ - "should work" / "should pass" / "should be fine"
30
+ - "probably" / "seems to" / "looks good"
31
+ - "I think the tests pass"
32
+ - "the types check out" (without running tsc)
33
+ - "everything compiles" (without fresh output)
34
+ - Expressing satisfaction or wrapping up before the gate ran
35
+
36
+ ## The Gate — Commands for This Stack
37
+
38
+ Run these in order. All must pass. Capture output.
39
+
40
+ ### 0. Checklist decomposition quality
41
+
42
+ Before code verification, inspect each work item checklist and the matching plan section.
43
+
44
+ Required plan evidence:
45
+ - `## Checklist Decomposition Matrix`
46
+ - `## Checklist Quality Gate`
47
+ - `verdict: PASS`
48
+
49
+ Required work item evidence:
50
+ - At least one `decomp-*` checklist item for every implementation work item
51
+ - At least one `test-*` checklist item for every implementation work item
52
+ - Each `decomp-*` item includes a route or file path, one action, one expected result, and one evidence artifact
53
+ - Each `decomp-*` item is independently pass/fail; vague rows like "UI complete", "theme management works", or "integration verified" are failures
54
+
55
+ If this check fails, stop validation for that item and reopen it. Do not mark a work item `done` when the checklist itself is not decomposed enough to prove completion.
56
+
57
+ ### 1. Per-package vitest (every package touched)
58
+
59
+ ```bash
60
+ cd <repo-root>
61
+ for pkg in <changed-packages>; do
62
+ npx vitest run --dir packages/$pkg 2>&1 | tee /tmp/verify-$pkg.log
63
+ done
64
+ ```
65
+
66
+ Or for a single package:
67
+ ```bash
68
+ npx vitest run --dir packages/<pkg>
69
+ npx vitest run --dir apps/<app>
70
+ ```
71
+
72
+ **NEVER** run `pnpm build` or `pnpm test` at the repo root — spawns 5-7 node processes at 800MB each and crashes the machine.
73
+
74
+ ### 2. Typecheck per package
75
+
76
+ ```bash
77
+ npx tsc --noEmit --project packages/<pkg>/tsconfig.json
78
+ npx tsc --noEmit --project apps/<app>/tsconfig.json
79
+ ```
80
+
81
+ One package at a time. Read the full output — zero errors required.
82
+
83
+ ### 3. Lint (if configured for the package)
84
+
85
+ ```bash
86
+ npx eslint <paths> --max-warnings=0
87
+ ```
88
+
89
+ ### 4. Smoke check exports (if package adds public API)
90
+
91
+ ```bash
92
+ node -e "const m = require('<pkg>'); console.log(Object.keys(m));"
93
+ ```
94
+
95
+ Or for ESM:
96
+ ```bash
97
+ node --input-type=module -e "import * as m from '<pkg>'; console.log(Object.keys(m));"
98
+ ```
99
+
100
+ ## Rationalization Prevention
101
+
102
+ | You're tempted to think... | Reality |
103
+ |---|---|
104
+ | "Tests passed earlier, should still pass" | Run them now. Code changed. |
105
+ | "TypeScript is strict, if it built it works" | You didn't build. Run tsc. |
106
+ | "Small change, no need to retest" | Small changes are where regressions hide. |
107
+ | "I'll note it as pending verification" | No. Verify now or mark incomplete. |
108
+ | "The test file looks right" | Reading ≠ running. Run it. |
109
+
110
+ ## Output Format — Required
111
+
112
+ When reporting completion, use this structure:
113
+
114
+ ```
115
+ ## Verification Evidence
116
+
117
+ ### vitest
118
+ $ npx vitest run --dir packages/hail
119
+ Test Files 12 passed (12)
120
+ Tests 147 passed (147)
121
+
122
+ ### tsc
123
+ $ npx tsc --noEmit --project packages/hail/tsconfig.json
124
+ (no output — clean)
125
+
126
+ ### Status
127
+ Checklist quality: PASS
128
+ PASS — safe to mark tasks done.
129
+ ```
130
+
131
+ If any step fails: do NOT claim completion. Report the failure, fix it, re-run the entire gate.
132
+
133
+ ## When to Invoke
134
+
135
+ - **End of `/rdc:build`** — mandatory final phase before marking epic done
136
+ - **During `/rdc:review`** — verification gate after fixes applied
137
+ - **Before any "done" declaration** — if an agent or supervisor is about to say work is complete
138
+ - **After merging waves** — when parallel agents finish and their work is combined
139
+
140
+ ## Agent Delegation
141
+
142
+ When dispatching a verification agent, give them:
143
+ - Exact list of packages/apps to verify
144
+ - Explicit ban on `pnpm build` / `pnpm test` / `pnpm -r`
145
+ - Work item checklists and the matching plan doc so `decomp-*` quality can be verified first
146
+ - Required output format (above)
147
+ - Instruction: "If any command fails, STOP and report. Do not fix. Do not continue."
148
+
149
+ ## The Bottom Line
150
+
151
+ Evidence before claims. Fresh evidence, not remembered evidence. Full output, not selective reading. If you skip the gate, you are lying about the work being done.
@@ -1,106 +1,106 @@
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:viz — Visualization Agent
9
-
10
- ## Mandatory First Steps
11
-
12
- Read BOTH guides before ANY code:
13
- ```
14
- {PROJECT_ROOT}/.rdc/guides/frontend.md (fallback: {PROJECT_ROOT}/.rdc/guides/frontend.md)
15
- {PROJECT_ROOT}/.rdc/guides/design.md (fallback: {PROJECT_ROOT}/.rdc/guides/design.md)
16
- ```
17
-
18
- ## Before Writing Any Code
19
-
20
- 1. **Check for existing prototypes:**
21
- ```sql
22
- SELECT name, component, source_path, status, notes
23
- FROM prototype_registry
24
- WHERE status IN ('prototype', 'converting')
25
- ORDER BY created_at DESC;
26
- ```
27
- Source path is usually `docs/source/`. **Read it first.**
28
-
29
- 2. **Check design decisions:**
30
- ```sql
31
- SELECT topic, summary FROM design_context
32
- WHERE topic ILIKE '%<viz-name>%';
33
- ```
34
-
35
- ## SVG Layout Patterns
36
-
37
- When building new SVG-based viz:
38
- - Define all layout constants at top (`W`, `H`, column x-centers, box dimensions)
39
- - Build path builders as pure functions
40
- - Separate data from rendering
41
- - Use `viewBox` for responsive scaling
42
- - Animate with appropriate motion libraries
43
-
44
- ```tsx
45
- const W = 980, H = 570;
46
- const COL_A = 80, COL_B = 240, COL_C = 435;
47
-
48
- function pathTo(x1: number, y1: number, x2: number, y2: number): string {
49
- const mx = (x1 + x2) / 2;
50
- return `M ${x1} ${y1} C ${mx} ${y1} ${mx} ${y2} ${x2} ${y2}`;
51
- }
52
- ```
53
-
54
- ## Viz Component Contract
55
-
56
- ```tsx
57
- "use client";
58
- import * as React from "react";
59
- import { cva, type VariantProps } from "class-variance-authority";
60
- import { cn } from "../lib/utils";
61
-
62
- // CVA variants required on every new viz component
63
- const myVizVariants = cva("relative w-full", {
64
- variants: {
65
- layout: { single: "", double: "flex flex-col", grid: "" },
66
- density: { compact: "", comfortable: "", spacious: "" },
67
- },
68
- defaultVariants: { layout: "single", density: "comfortable" },
69
- });
70
-
71
- interface MyVizProps
72
- extends React.HTMLAttributes<HTMLDivElement>,
73
- VariantProps<typeof myVizVariants> {}
74
-
75
- const MyViz = React.forwardRef<HTMLDivElement, MyVizProps>(
76
- ({ className, layout, density, ...props }, ref) => (
77
- <div ref={ref} className={cn(myVizVariants({ layout, density }), className)} {...props} />
78
- )
79
- );
80
- MyViz.displayName = "MyViz";
81
- export { MyViz, myVizVariants };
82
- ```
83
-
84
- Export from package's index after building.
85
-
86
- ## Registering New Viz Components
87
-
88
- After completing:
89
- ```sql
90
- INSERT INTO prototype_registry (name, component, source_path, notes, created_by)
91
- VALUES (
92
- 'MyViz v1.0',
93
- 'MyViz',
94
- 'packages/ui/src/components/my-viz.tsx',
95
- 'Production component. Props: <list key props>',
96
- 'agent'
97
- );
98
- ```
99
-
100
- ## Safety Rules
101
-
102
- - Branch: development branch — auto-commit
103
- - NEVER run `pnpm build`
104
- - Reduce motion: always wrap animations with appropriate hooks
105
- - NEVER overlap with other agents on the same component file
106
- - 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:viz — Visualization Agent
9
+
10
+ ## Mandatory First Steps
11
+
12
+ Read BOTH guides before ANY code:
13
+ ```
14
+ {PROJECT_ROOT}/.rdc/guides/frontend.md (fallback: {PROJECT_ROOT}/.rdc/guides/frontend.md)
15
+ {PROJECT_ROOT}/.rdc/guides/design.md (fallback: {PROJECT_ROOT}/.rdc/guides/design.md)
16
+ ```
17
+
18
+ ## Before Writing Any Code
19
+
20
+ 1. **Check for existing prototypes:**
21
+ ```sql
22
+ SELECT name, component, source_path, status, notes
23
+ FROM prototype_registry
24
+ WHERE status IN ('prototype', 'converting')
25
+ ORDER BY created_at DESC;
26
+ ```
27
+ Source path is usually `docs/source/`. **Read it first.**
28
+
29
+ 2. **Check design decisions:**
30
+ ```sql
31
+ SELECT topic, summary FROM design_context
32
+ WHERE topic ILIKE '%<viz-name>%';
33
+ ```
34
+
35
+ ## SVG Layout Patterns
36
+
37
+ When building new SVG-based viz:
38
+ - Define all layout constants at top (`W`, `H`, column x-centers, box dimensions)
39
+ - Build path builders as pure functions
40
+ - Separate data from rendering
41
+ - Use `viewBox` for responsive scaling
42
+ - Animate with appropriate motion libraries
43
+
44
+ ```tsx
45
+ const W = 980, H = 570;
46
+ const COL_A = 80, COL_B = 240, COL_C = 435;
47
+
48
+ function pathTo(x1: number, y1: number, x2: number, y2: number): string {
49
+ const mx = (x1 + x2) / 2;
50
+ return `M ${x1} ${y1} C ${mx} ${y1} ${mx} ${y2} ${x2} ${y2}`;
51
+ }
52
+ ```
53
+
54
+ ## Viz Component Contract
55
+
56
+ ```tsx
57
+ "use client";
58
+ import * as React from "react";
59
+ import { cva, type VariantProps } from "class-variance-authority";
60
+ import { cn } from "../lib/utils";
61
+
62
+ // CVA variants required on every new viz component
63
+ const myVizVariants = cva("relative w-full", {
64
+ variants: {
65
+ layout: { single: "", double: "flex flex-col", grid: "" },
66
+ density: { compact: "", comfortable: "", spacious: "" },
67
+ },
68
+ defaultVariants: { layout: "single", density: "comfortable" },
69
+ });
70
+
71
+ interface MyVizProps
72
+ extends React.HTMLAttributes<HTMLDivElement>,
73
+ VariantProps<typeof myVizVariants> {}
74
+
75
+ const MyViz = React.forwardRef<HTMLDivElement, MyVizProps>(
76
+ ({ className, layout, density, ...props }, ref) => (
77
+ <div ref={ref} className={cn(myVizVariants({ layout, density }), className)} {...props} />
78
+ )
79
+ );
80
+ MyViz.displayName = "MyViz";
81
+ export { MyViz, myVizVariants };
82
+ ```
83
+
84
+ Export from package's index after building.
85
+
86
+ ## Registering New Viz Components
87
+
88
+ After completing:
89
+ ```sql
90
+ INSERT INTO prototype_registry (name, component, source_path, notes, created_by)
91
+ VALUES (
92
+ 'MyViz v1.0',
93
+ 'MyViz',
94
+ 'packages/ui/src/components/my-viz.tsx',
95
+ 'Production component. Props: <list key props>',
96
+ 'agent'
97
+ );
98
+ ```
99
+
100
+ ## Safety Rules
101
+
102
+ - Branch: development branch — auto-commit
103
+ - NEVER run `pnpm build`
104
+ - Reduce motion: always wrap animations with appropriate hooks
105
+ - NEVER overlap with other agents on the same component file
106
+ - Write tests FIRST — red → implement → green