@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.
- package/.claude/settings.json +15 -15
- package/.claude-plugin/marketplace.json +21 -21
- package/.claude-plugin/plugin.json +1518 -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 +375 -376
- package/README.sandbox.md +3 -3
- 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 +150 -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 +145 -151
- 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 -57
- 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 -482
- 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 +502 -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 +538 -533
- package/skills/co-develop/SKILL.md +196 -196
- package/skills/collab/SKILL.md +239 -239
- package/skills/convert/SKILL.md +167 -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 +203 -165
- package/skills/fs-mcp/SKILL.md +148 -148
- package/skills/handoff/SKILL.md +236 -236
- package/skills/help/SKILL.md +143 -143
- package/skills/housekeeping/SKILL.md +160 -219
- package/skills/lifeai-brochure-author/SKILL.md +340 -340
- package/skills/onramp/SKILL.md +248 -0
- 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/onramp.test.json +87 -0
- 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 +28 -32
- 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/install-rdc-skills.test.mjs +49 -49
- package/tests/manifest-contract-fields.test.mjs +78 -78
- package/tests/mcp.test.mjs +271 -271
- package/tests/rdc-brochure.test.mjs +125 -125
- 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/RELEASE.md +0 -42
- package/tests/housekeeping-lessons-triage.test.mjs +0 -49
- package/tests/lessons-pipeline-contract.test.mjs +0 -26
- package/tests/release-contract.test.mjs +0 -16
package/guides/agents/verify.md
CHANGED
|
@@ -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.
|
package/guides/agents/viz.md
CHANGED
|
@@ -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
|