@lifeaitools/rdc-skills 0.25.1 → 0.25.2
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-plugin/plugin.json +1560 -1560
- package/.github/workflows/self-test.yml +34 -34
- package/CHANGELOG.md +322 -322
- package/MANIFEST.md +224 -224
- package/README.md +379 -379
- package/commands/build.md +181 -181
- package/commands/collab.md +180 -180
- package/commands/deploy.md +148 -148
- package/commands/fixit.md +150 -150
- package/commands/handoff.md +173 -173
- 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/report.md +99 -99
- package/commands/review.md +120 -120
- package/commands/status.md +86 -86
- package/commands/workitems.md +127 -127
- package/git-sha.json +1 -1
- package/guides/agent-bootstrap.md +195 -195
- package/guides/agents/backend.md +102 -102
- package/guides/agents/content.md +94 -94
- package/guides/agents/cs2.md +56 -56
- package/guides/agents/data.md +86 -86
- package/guides/agents/design.md +77 -77
- package/guides/agents/frontend.md +91 -91
- package/guides/agents/infrastructure.md +81 -81
- package/guides/agents/setup.md +272 -272
- package/guides/agents/verify.md +119 -119
- package/guides/agents/viz.md +106 -106
- package/package.json +57 -57
- package/scripts/install-rdc-skills.js +1401 -1401
- package/scripts/self-test.mjs +1460 -1460
- package/scripts/validate-publish-manifests.js +502 -502
- package/skills/build/SKILL.md +559 -559
- package/skills/channel-formatter/SKILL.md +538 -538
- package/skills/collab/SKILL.md +239 -239
- package/skills/convert/SKILL.md +167 -167
- package/skills/deploy/SKILL.md +541 -541
- package/skills/design/SKILL.md +205 -205
- package/skills/env/SKILL.md +141 -141
- package/skills/fixit/SKILL.md +203 -203
- package/skills/handoff/SKILL.md +236 -236
- package/skills/onramp/SKILL.md +1459 -1459
- 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/regen-media/SKILL.md +94 -94
- package/skills/release/SKILL.md +140 -140
- package/skills/report/SKILL.md +100 -100
- package/skills/review/SKILL.md +151 -151
- package/skills/self-test/SKILL.md +108 -108
- package/skills/status/SKILL.md +99 -99
- package/skills/tests/MATRIX.md +55 -55
- package/skills/tests/onramp.test.json +87 -87
- package/skills/tests/rdc-regen-media.test.json +29 -29
- package/skills/watch/SKILL.md +84 -84
- package/skills/workitems/SKILL.md +151 -151
|
@@ -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)*
|
|
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
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
|
|
92
|
+
- Write tests FIRST — red → implement → green
|
|
@@ -1,81 +1,81 @@
|
|
|
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 — Coolify deploys, DNS writes, CF cache purges, container restarts, and `git push` are all skipped. Registry SELECTs, health checks, and git reads run normally.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
# rdc:infra — Infrastructure Agent
|
|
11
|
-
|
|
12
|
-
## Mandatory First Step
|
|
13
|
-
|
|
14
|
-
Read the guide before ANY operations:
|
|
15
|
-
```
|
|
16
|
-
{PROJECT_ROOT}/.rdc/guides/infrastructure.md
|
|
17
|
-
(fallback: {PROJECT_ROOT}/.rdc/guides/infrastructure.md)
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Rule 1: Never Work Around Broken Infrastructure
|
|
21
|
-
|
|
22
|
-
When a service is unavailable, STOP and report:
|
|
23
|
-
```
|
|
24
|
-
BLOCKED: [service] is not responding.
|
|
25
|
-
Fix: [reconnect MCP / restart credential daemon]
|
|
26
|
-
I cannot proceed until this is resolved.
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Deployment Registry — Check BEFORE Any Deploy
|
|
30
|
-
|
|
31
|
-
```sql
|
|
32
|
-
SELECT get_deployment('<slug>');
|
|
33
|
-
SELECT slug, display_name, domain, build_type, status FROM deployment_registry ORDER BY slug;
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
**NEVER guess deployment UUIDs, domains, or build commands.**
|
|
37
|
-
|
|
38
|
-
## Watch Paths — Must Set on Every Monorepo App
|
|
39
|
-
|
|
40
|
-
| App Type | Watch Paths |
|
|
41
|
-
|----------|-------------|
|
|
42
|
-
| Monorepo app | `apps/<n>/**` and `packages/**` |
|
|
43
|
-
| Static monorepo | `sites/<n>/**` |
|
|
44
|
-
|
|
45
|
-
Without watch_paths, every push rebuilds all apps.
|
|
46
|
-
|
|
47
|
-
## Build Types
|
|
48
|
-
|
|
49
|
-
| Type | Pack | Install | Build |
|
|
50
|
-
|------|------|---------|-------|
|
|
51
|
-
| Monorepo | nixpacks | `pnpm install --frozen-lockfile` | `pnpm turbo run build --filter=<filter>` |
|
|
52
|
-
| Static | static | — | — |
|
|
53
|
-
|
|
54
|
-
## New App — Checklist
|
|
55
|
-
|
|
56
|
-
1. Look up deployment registry for existing entry
|
|
57
|
-
2. Check for Coolify UUID (if exists)
|
|
58
|
-
3. Set watch_paths per app type *(skip if `$RDC_TEST=1` — echo `[RDC_TEST] skipping Coolify config write`)*
|
|
59
|
-
4. Deploy and verify health *(skip if `$RDC_TEST=1` — echo `[RDC_TEST] skipping Coolify deploy`)*
|
|
60
|
-
5. Update deployment_registry in database
|
|
61
|
-
|
|
62
|
-
## Environment Tiers
|
|
63
|
-
|
|
64
|
-
| Tier | Rules |
|
|
65
|
-
|------|-------|
|
|
66
|
-
| development | Free to experiment, no confirmation needed |
|
|
67
|
-
| staging | Confirm before deploying |
|
|
68
|
-
| production | ALWAYS confirm before deploy, ALWAYS verify after |
|
|
69
|
-
|
|
70
|
-
## Git Workflow
|
|
71
|
-
|
|
72
|
-
- Branch: development branch — NEVER touch production
|
|
73
|
-
- Before push: `git fetch origin`
|
|
74
|
-
- Never force-push
|
|
75
|
-
|
|
76
|
-
## Safety Rules
|
|
77
|
-
|
|
78
|
-
- MCP connectors first, credential daemon second
|
|
79
|
-
- Never print credential keys to stdout
|
|
80
|
-
- If daemon is down: report BLOCKED, do not work around it
|
|
81
|
-
- Push after every logical block *(skip if `$RDC_TEST=1` — echo `[RDC_TEST] skipping git push` instead)*
|
|
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 — Coolify deploys, DNS writes, CF cache purges, container restarts, and `git push` are all skipped. Registry SELECTs, health checks, and git reads run normally.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# rdc:infra — Infrastructure Agent
|
|
11
|
+
|
|
12
|
+
## Mandatory First Step
|
|
13
|
+
|
|
14
|
+
Read the guide before ANY operations:
|
|
15
|
+
```
|
|
16
|
+
{PROJECT_ROOT}/.rdc/guides/infrastructure.md
|
|
17
|
+
(fallback: {PROJECT_ROOT}/.rdc/guides/infrastructure.md)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Rule 1: Never Work Around Broken Infrastructure
|
|
21
|
+
|
|
22
|
+
When a service is unavailable, STOP and report:
|
|
23
|
+
```
|
|
24
|
+
BLOCKED: [service] is not responding.
|
|
25
|
+
Fix: [reconnect MCP / restart credential daemon]
|
|
26
|
+
I cannot proceed until this is resolved.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Deployment Registry — Check BEFORE Any Deploy
|
|
30
|
+
|
|
31
|
+
```sql
|
|
32
|
+
SELECT get_deployment('<slug>');
|
|
33
|
+
SELECT slug, display_name, domain, build_type, status FROM deployment_registry ORDER BY slug;
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**NEVER guess deployment UUIDs, domains, or build commands.**
|
|
37
|
+
|
|
38
|
+
## Watch Paths — Must Set on Every Monorepo App
|
|
39
|
+
|
|
40
|
+
| App Type | Watch Paths |
|
|
41
|
+
|----------|-------------|
|
|
42
|
+
| Monorepo app | `apps/<n>/**` and `packages/**` |
|
|
43
|
+
| Static monorepo | `sites/<n>/**` |
|
|
44
|
+
|
|
45
|
+
Without watch_paths, every push rebuilds all apps.
|
|
46
|
+
|
|
47
|
+
## Build Types
|
|
48
|
+
|
|
49
|
+
| Type | Pack | Install | Build |
|
|
50
|
+
|------|------|---------|-------|
|
|
51
|
+
| Monorepo | nixpacks | `pnpm install --frozen-lockfile` | `pnpm turbo run build --filter=<filter>` |
|
|
52
|
+
| Static | static | — | — |
|
|
53
|
+
|
|
54
|
+
## New App — Checklist
|
|
55
|
+
|
|
56
|
+
1. Look up deployment registry for existing entry
|
|
57
|
+
2. Check for Coolify UUID (if exists)
|
|
58
|
+
3. Set watch_paths per app type *(skip if `$RDC_TEST=1` — echo `[RDC_TEST] skipping Coolify config write`)*
|
|
59
|
+
4. Deploy and verify health *(skip if `$RDC_TEST=1` — echo `[RDC_TEST] skipping Coolify deploy`)*
|
|
60
|
+
5. Update deployment_registry in database
|
|
61
|
+
|
|
62
|
+
## Environment Tiers
|
|
63
|
+
|
|
64
|
+
| Tier | Rules |
|
|
65
|
+
|------|-------|
|
|
66
|
+
| development | Free to experiment, no confirmation needed |
|
|
67
|
+
| staging | Confirm before deploying |
|
|
68
|
+
| production | ALWAYS confirm before deploy, ALWAYS verify after |
|
|
69
|
+
|
|
70
|
+
## Git Workflow
|
|
71
|
+
|
|
72
|
+
- Branch: development branch — NEVER touch production
|
|
73
|
+
- Before push: `git fetch origin`
|
|
74
|
+
- Never force-push
|
|
75
|
+
|
|
76
|
+
## Safety Rules
|
|
77
|
+
|
|
78
|
+
- MCP connectors first, credential daemon second
|
|
79
|
+
- Never print credential keys to stdout
|
|
80
|
+
- If daemon is down: report BLOCKED, do not work around it
|
|
81
|
+
- Push after every logical block *(skip if `$RDC_TEST=1` — echo `[RDC_TEST] skipping git push` instead)*
|