@lifeaitools/rdc-skills 0.24.6 → 0.24.8

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 (51) hide show
  1. package/.claude-plugin/plugin.json +20 -5
  2. package/.github/workflows/self-test.yml +34 -34
  3. package/MANIFEST.md +23 -0
  4. package/README.md +37 -0
  5. package/commands/build.md +181 -181
  6. package/commands/collab.md +180 -180
  7. package/commands/deploy.md +148 -148
  8. package/commands/fixit.md +105 -105
  9. package/commands/handoff.md +173 -173
  10. package/commands/overnight.md +218 -218
  11. package/commands/plan.md +158 -158
  12. package/commands/preplan.md +131 -131
  13. package/commands/prototype.md +145 -145
  14. package/commands/report.md +99 -99
  15. package/commands/review.md +120 -120
  16. package/commands/status.md +86 -86
  17. package/commands/workitems.md +127 -127
  18. package/git-sha.json +1 -1
  19. package/guides/agent-bootstrap.md +195 -195
  20. package/guides/agents/backend.md +102 -102
  21. package/guides/agents/content.md +94 -94
  22. package/guides/agents/cs2.md +56 -56
  23. package/guides/agents/data.md +86 -86
  24. package/guides/agents/design.md +77 -77
  25. package/guides/agents/frontend.md +91 -91
  26. package/guides/agents/infrastructure.md +81 -81
  27. package/guides/agents/setup.md +272 -272
  28. package/guides/agents/verify.md +119 -119
  29. package/guides/agents/viz.md +106 -106
  30. package/hooks/task-completed-gate.js +25 -3
  31. package/package.json +1 -1
  32. package/scripts/self-test.mjs +1458 -1458
  33. package/skills/build/SKILL.md +554 -554
  34. package/skills/channel-formatter/SKILL.md +174 -9
  35. package/skills/collab/SKILL.md +239 -239
  36. package/skills/deploy/SKILL.md +541 -541
  37. package/skills/design/SKILL.md +205 -205
  38. package/skills/fixit/SKILL.md +165 -165
  39. package/skills/handoff/SKILL.md +200 -200
  40. package/skills/overnight/SKILL.md +251 -251
  41. package/skills/plan/SKILL.md +314 -314
  42. package/skills/preplan/SKILL.md +90 -90
  43. package/skills/prototype/SKILL.md +150 -150
  44. package/skills/release/SKILL.md +140 -140
  45. package/skills/report/SKILL.md +100 -100
  46. package/skills/review/SKILL.md +152 -152
  47. package/skills/self-test/SKILL.md +123 -123
  48. package/skills/status/SKILL.md +99 -99
  49. package/skills/watch/SKILL.md +90 -90
  50. package/skills/workitems/SKILL.md +151 -151
  51. package/tests/harness-gates.test.mjs +30 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rdc",
3
- "version": "0.24.1",
3
+ "version": "0.24.8",
4
4
  "description": "RDC typed-agent dispatch skill suite for Claude Code — plan, build, review, overnight unattended builds with work-item tracking and TDD enforcement.",
5
5
  "author": {
6
6
  "name": "LIFEAI",
@@ -34,19 +34,19 @@
34
34
  "name": "channel-formatter",
35
35
  "slash": "rdc:channel-formatter",
36
36
  "category": "tooling",
37
- "usage": "rdc:channel-formatter <channel> [content]",
37
+ "usage": "rdc:channel-formatter <channel|pack> [content]",
38
38
  "args": {
39
39
  "positional": [
40
40
  {
41
41
  "name": "channel",
42
42
  "required": false,
43
- "description": "Target channel: linkedin | twitter | slack | email-ext | email-int | pitch-deck | word | pdf-report | web. Inferred from the request if omitted.",
43
+ "description": "Target channel or pack: linkedin | twitter | twitter-thread | slack | email-ext | email-int | pitch-deck | word | pdf-report | web | strict-format | social-pack | campaign-pack | exec-pack | launch-pack. Inferred from the request if omitted.",
44
44
  "accepts": "string"
45
45
  },
46
46
  {
47
47
  "name": "content",
48
48
  "required": false,
49
- "description": "Text/content to format. If omitted, formats content from the surrounding conversation.",
49
+ "description": "Text/content to format or repurpose. If omitted, formats or repurposes content from the surrounding conversation.",
50
50
  "accepts": "string"
51
51
  }
52
52
  ],
@@ -57,6 +57,16 @@
57
57
  "default_model": "inherit",
58
58
  "triggers": [
59
59
  "format this for linkedin",
60
+ "turn this article into a linkedin post",
61
+ "repurpose this article",
62
+ "make a content pack",
63
+ "make a social pack",
64
+ "make a campaign pack",
65
+ "turn this into a twitter thread",
66
+ "make posts from this",
67
+ "write launch posts",
68
+ "format this for social",
69
+ "extract posts from this report",
60
70
  "write a tweet",
61
71
  "social media post",
62
72
  "draft an email",
@@ -65,7 +75,12 @@
65
75
  "reformat this for"
66
76
  ],
67
77
  "follows": [],
68
- "leads_to": [],
78
+ "leads_to": [
79
+ "convert",
80
+ "brochure",
81
+ "rdc-brochurify",
82
+ "lifeai-brochure-author"
83
+ ],
69
84
  "sandbox_aware": true,
70
85
  "output_contract": "guides/output-contract.md",
71
86
  "enabled_default": true,
@@ -1,29 +1,29 @@
1
- name: self-test
2
-
3
- on:
4
- push:
5
- branches: ['**']
6
- tags: ['v*']
7
- pull_request:
8
-
9
- jobs:
10
- tier1:
11
- name: Tier 1 static lint
12
- runs-on: ubuntu-latest
13
- steps:
14
- - name: Checkout
15
- uses: actions/checkout@v4
16
-
17
- - name: Setup Node 20
18
- uses: actions/setup-node@v4
19
- with:
20
- node-version: '20'
21
-
22
- - name: Run rdc:self-test --strict (Tier 1)
23
- # Tier 2 requires headless claude + clauth daemon — not available in standard CI.
24
- # Tier 1 catches the backtick-drift + frontmatter class of bugs.
25
- run: node scripts/self-test.mjs --strict
26
-
1
+ name: self-test
2
+
3
+ on:
4
+ push:
5
+ branches: ['**']
6
+ tags: ['v*']
7
+ pull_request:
8
+
9
+ jobs:
10
+ tier1:
11
+ name: Tier 1 static lint
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v4
16
+
17
+ - name: Setup Node 20
18
+ uses: actions/setup-node@v4
19
+ with:
20
+ node-version: '20'
21
+
22
+ - name: Run rdc:self-test --strict (Tier 1)
23
+ # Tier 2 requires headless claude + clauth daemon — not available in standard CI.
24
+ # Tier 1 catches the backtick-drift + frontmatter class of bugs.
25
+ run: node scripts/self-test.mjs --strict
26
+
27
27
  tier2-gate:
28
28
  name: Tier 2 behavioral (tag releases only)
29
29
  runs-on: ubuntu-latest
@@ -32,14 +32,14 @@ jobs:
32
32
  env:
33
33
  ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
34
34
  steps:
35
- - name: Checkout
36
- uses: actions/checkout@v4
37
-
38
- - name: Setup Node 20
39
- uses: actions/setup-node@v4
40
- with:
41
- node-version: '20'
42
-
35
+ - name: Checkout
36
+ uses: actions/checkout@v4
37
+
38
+ - name: Setup Node 20
39
+ uses: actions/setup-node@v4
40
+ with:
41
+ node-version: '20'
42
+
43
43
  - name: Install claude CLI
44
44
  if: env.ANTHROPIC_API_KEY != ''
45
45
  run: npm install -g @anthropic-ai/claude-code
package/MANIFEST.md CHANGED
@@ -110,6 +110,9 @@ All skills have been converted from project-specific to generic/portable:
110
110
 
111
111
  ### Utility (1)
112
112
  - rdc:collab — bidirectional claude.ai ↔ Claude Code relay via file transport
113
+ - rdc:channel-formatter — channel-native formatting and content repurposing,
114
+ including article-to-post, social-pack, campaign-pack, exec-pack, and
115
+ launch-pack outputs
113
116
 
114
117
  ### Bridge (3)
115
118
  - rdc:handoff — planning → work items
@@ -132,6 +135,26 @@ All skills have been converted from project-specific to generic/portable:
132
135
  - Interactive: `/rdc:build <epic-id>`
133
136
  - Unattended: `/rdc:overnight`
134
137
  - Quality: `/rdc:review --unattended`
138
+ - Content repurposing: `/rdc:channel-formatter social-pack article.md`
139
+
140
+ ## Channel Formatter Content Packs
141
+
142
+ `rdc:channel-formatter` can strictly format copy for one channel or repurpose a
143
+ long source into a channel-native output set.
144
+
145
+ Examples:
146
+
147
+ ```bash
148
+ rdc:channel-formatter linkedin article.md
149
+ rdc:channel-formatter twitter-thread article.md
150
+ rdc:channel-formatter social-pack article.md
151
+ rdc:channel-formatter campaign-pack report.md
152
+ ```
153
+
154
+ Use `rdc:convert` for actual Office/Markdown file conversion, `rdc:brochure`
155
+ for HTML/folder/URL PDF rendering, and `rdc:brochurify` for Brochurify
156
+ orchestration. Channel formatter writes and repurposes text; it does not produce
157
+ binary Word or PDF artifacts.
135
158
 
136
159
  ## Key Differences from Source
137
160
 
package/README.md CHANGED
@@ -98,6 +98,7 @@ Located in `guides/agents/` — plain markdown playbooks spawned as sub-agents:
98
98
 
99
99
  ### Utility Skills
100
100
  - rdc:collab
101
+ - rdc:channel-formatter — channel-native formatting and content repurposing for LinkedIn, Twitter/X, Slack/Teams, email, decks, Word/PDF structure, web copy, and content packs
101
102
 
102
103
  ### Design Skills
103
104
  - rdc:design — RDC/Studio design, tokens, palettes, themes, and Rampa CLI-assisted color systems
@@ -105,6 +106,42 @@ Located in `guides/agents/` — plain markdown playbooks spawned as sub-agents:
105
106
  ### Reference
106
107
  - rdc:help
107
108
 
109
+ ## Channel Formatting and Content Packs
110
+
111
+ `rdc:channel-formatter` handles both strict channel formatting and content
112
+ repurposing. It can take a long article, memo, report, transcript, or rough
113
+ draft and turn it into a single channel-native output or a coordinated pack.
114
+
115
+ Examples:
116
+
117
+ ```bash
118
+ rdc:channel-formatter linkedin article.md
119
+ rdc:channel-formatter twitter-thread article.md
120
+ rdc:channel-formatter social-pack article.md
121
+ rdc:channel-formatter campaign-pack report.md
122
+ rdc:channel-formatter strict-format "preserve this wording for LinkedIn"
123
+ ```
124
+
125
+ Pack modes:
126
+
127
+ - `social-pack` — LinkedIn thought-leadership post, short LinkedIn variant,
128
+ Twitter/X single post, Twitter/X thread, and Slack/Teams internal share.
129
+ - `campaign-pack` — social pack plus external email intro, web excerpt, meta
130
+ title/description, and CTA variants.
131
+ - `exec-pack` — internal email summary, Slack/Teams update, executive summary,
132
+ talking points, and a decision/ask line when supported by the source.
133
+ - `launch-pack` — launch posts and blurbs for LinkedIn, Twitter/X, Slack/Teams,
134
+ external email, and web hero copy.
135
+
136
+ Boundaries:
137
+
138
+ - Actual `.docx`, `.pptx`, `.ppt`, or Markdown file conversion uses
139
+ `rdc:convert`.
140
+ - HTML/folder/zip/URL to PDF rendering uses `rdc:brochure`.
141
+ - Brochurify jobs use `rdc:brochurify`.
142
+ - Brochure JSX authored with `@lifeai/brochure-kit` uses
143
+ `lifeai-brochure-author`.
144
+
108
145
  ## Key Features
109
146
 
110
147
  ### TDD Enforcement (Built In)
package/commands/build.md CHANGED
@@ -1,183 +1,183 @@
1
- ---
2
- name: rdc:build
3
- description: >-
4
- Usage `rdc:build <epic-id|topic> [--unattended]` — dispatch typed agents from an epic, commit, push, update work items. The build engine. Use after rdc:plan or when the project lead says "build it".
5
- ---
6
-
7
- > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
8
- > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
9
- > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
10
-
11
- > **Sandbox contract:** This skill honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
12
-
13
-
14
- # rdc:build — Typed Agent Dispatch Engine
15
-
16
- ## When to Use
17
- - Plan is approved and ready to execute
18
- - Project lead says "build it", "go", "execute", "do not stop"
19
- - An epic exists with child tasks ready for implementation
20
- - Called by `rdc:overnight` as part of the automated build loop
21
-
22
- ## Arguments
23
- - `rdc:build <epic-id>` — build from a specific Supabase epic
24
- - `rdc:build <topic>` — find the epic by label/title match
25
- - `rdc:build` (no args) — show open epics and ask which to build (interactive only)
26
- - `rdc:build <epic-id> --unattended` — silent mode for overnight builds
27
-
28
- ## Agent Types & Guide Files
29
-
30
- Every dispatched agent MUST read two files before starting — in this order:
31
- 1. `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` — credentials, git rules, completion report format
32
- (fallback: `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` if `.rdc/` does not exist)
33
- 2. `{PROJECT_ROOT}/.rdc/guides/<type>.md` — role-specific guide
34
- (fallback: `{PROJECT_ROOT}/.rdc/guides/<type>.md`)
35
-
36
- Include both lines in every agent prompt:
37
- ```
38
- "Read {PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md first (fallback: .rdc/guides/agent-bootstrap.md), then {PROJECT_ROOT}/.rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md) before starting."
39
- ```
40
-
41
- | Agent Type | Guide File | When to dispatch |
42
- |-----------|-----------|-----------------|
43
- | `frontend` | `.rdc/guides/frontend.md` | React components, pages, UI, Tailwind, animation |
44
- | `backend` | `.rdc/guides/backend.md` | API routes, server components, database queries, auth |
45
- | `data` | `.rdc/guides/data.md` | Migrations, schema changes, RPC functions |
46
- | `design` | `.rdc/guides/design.md` | Visual design, brand palettes, OG images, token work |
47
- | `infra` | `.rdc/guides/infrastructure.md` | CI/CD, deployment, DNS, SSL |
48
- | `content` | `.rdc/guides/content.md` | Marketing copy, messaging, tone |
49
- | `cs2` | `.rdc/guides/cs2.md` | CS 2.0 paradigm work (generic) |
50
- | `hail` | `.rdc/guides/cs2.md` + `packages/hail/CLAUDE.md` | Grammar, DSL compiler, evolution |
51
- | `pal` | `.rdc/guides/cs2.md` + `packages/pal/CLAUDE.md` | Sessions, moment windows, graph memory |
52
- | `bpmn` | `.rdc/guides/cs2.md` + `docs/systems/<domain>/flowable-bpmn-architecture.md` | BPMN flows, governance |
53
- | `virtue` | `.rdc/guides/cs2.md` + `packages/virtue-engine/CLAUDE.md` | Virtue weights, coherence, certification |
54
- | `viz` | `.rdc/guides/frontend.md` + `.rdc/guides/design.md` | Custom viz components, charts, diagrams |
55
-
56
- ### How to classify a task → agent type
57
-
58
- Read the task title and description, then:
59
- - Mentions React, component, page, UI, Tailwind → `frontend`
60
- - Mentions API route, server, database query, auth → `backend`
61
- - Mentions migration, schema, table, RPC → `data`
62
- - Mentions brand, palette, typography, OG image → `design`
63
- - Mentions deploy, infrastructure, CI, DNS → `infra`
64
- - Mentions copy, messaging, email template → `content`
65
- - Mentions grammar, DSL, compiler → `hail`
66
- - Mentions session, moment, memory graph → `pal`
67
- - Mentions BPMN, flow, governance → `bpmn`
68
- - Mentions virtue, coherence, certification → `virtue`
69
- - Mentions visualization, chart, diagram, SVG → `viz`
70
- - Multiple types? Dispatch multiple agents, each with its guide.
71
-
72
- ## Procedure
73
-
74
- 1. **Load the epic:**
75
- ```sql
76
- SELECT get_work_items_by_epic('<epic-id>', 'todo');
77
- ```
78
- - Interactive (no args): show open epics, ask which to build
79
- - Unattended (no tasks found): escalate via advisor tool
80
-
81
- 2. **CHECK FOR EXISTING WORK (mandatory — never skip):**
82
- ```sql
83
- -- Check if prototypes exist from earlier sessions
84
- SELECT name, component, source_path, status, notes
85
- FROM prototype_registry
86
- WHERE status IN ('prototype', 'converting')
87
- ORDER BY created_at DESC;
88
-
89
- -- Check for design decisions on this topic
90
- SELECT topic, context_type, summary, source
91
- FROM design_context
92
- WHERE topic ILIKE '%<epic-topic>%'
93
- ORDER BY created_at DESC;
94
- ```
95
- **If a prototype exists: ADAPT IT. Do not build from scratch.**
96
- Tell the agent: "Read <source_path> first and convert it to the production contract."
97
-
98
- **If design decisions exist: follow them.** Include the summary in the agent prompt.
99
-
100
- 3. **Load the plan** (if exists): check `.rdc/plans/` for matching topic (fallback: `.rdc/plans/`).
101
-
102
- 4. **Read CLAUDE.md files** for all affected packages.
103
-
104
- 5. **Classify each task** → assign agent type from the table above.
105
-
106
- 6. **Group tasks into waves** — parallelize tasks with no file overlap:
107
- - Wave 1: independent tasks (different packages/files)
108
- - Wave 2: tasks that depend on Wave 1 outputs
109
- - Wave 3: integration tasks
110
-
111
- 7. **For each wave — dispatch typed agents in parallel:**
112
- - Set work item to `in_progress` before dispatching
113
- - Each agent prompt MUST include:
114
- - `"Read {PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md first (fallback: .rdc/guides/agent-bootstrap.md), then {PROJECT_ROOT}/.rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md) before starting."`
115
- - Specific files to create/modify
116
- - Exact deliverables and commit message
117
- - `"NEVER run pnpm build/test. NEVER modify files outside your scope."`
118
- - Use `run_in_background: true` for parallel execution
119
- - NEVER let agents overlap on the same files
120
-
121
- 8. **Post-wave test gate (mandatory):**
122
- After all agents in a wave complete, before marking tasks done:
123
- ```bash
124
- # For each package modified in this wave:
125
- cd packages/<name> && npx vitest run 2>&1 | tail -20
126
- ```
127
- - All tests must pass before proceeding to next wave
128
- - If tests fail: fix before marking the wave done
129
- - NEVER use `pnpm build` or `pnpm turbo test` — vitest only per package
130
- - New code must have tests: if a modified package shows 0 new test files, flag it
131
-
132
- 9. **As agents complete:**
133
- - Verify commit landed on the development branch
134
- - Push to origin *(skip if `$RDC_TEST=1` — echo `[RDC_TEST] skipping git push` instead)*
1
+ ---
2
+ name: rdc:build
3
+ description: >-
4
+ Usage `rdc:build <epic-id|topic> [--unattended]` — dispatch typed agents from an epic, commit, push, update work items. The build engine. Use after rdc:plan or when the project lead says "build it".
5
+ ---
6
+
7
+ > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
8
+ > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
9
+ > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
10
+
11
+ > **Sandbox contract:** This skill honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
12
+
13
+
14
+ # rdc:build — Typed Agent Dispatch Engine
15
+
16
+ ## When to Use
17
+ - Plan is approved and ready to execute
18
+ - Project lead says "build it", "go", "execute", "do not stop"
19
+ - An epic exists with child tasks ready for implementation
20
+ - Called by `rdc:overnight` as part of the automated build loop
21
+
22
+ ## Arguments
23
+ - `rdc:build <epic-id>` — build from a specific Supabase epic
24
+ - `rdc:build <topic>` — find the epic by label/title match
25
+ - `rdc:build` (no args) — show open epics and ask which to build (interactive only)
26
+ - `rdc:build <epic-id> --unattended` — silent mode for overnight builds
27
+
28
+ ## Agent Types & Guide Files
29
+
30
+ Every dispatched agent MUST read two files before starting — in this order:
31
+ 1. `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` — credentials, git rules, completion report format
32
+ (fallback: `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` if `.rdc/` does not exist)
33
+ 2. `{PROJECT_ROOT}/.rdc/guides/<type>.md` — role-specific guide
34
+ (fallback: `{PROJECT_ROOT}/.rdc/guides/<type>.md`)
35
+
36
+ Include both lines in every agent prompt:
37
+ ```
38
+ "Read {PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md first (fallback: .rdc/guides/agent-bootstrap.md), then {PROJECT_ROOT}/.rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md) before starting."
39
+ ```
40
+
41
+ | Agent Type | Guide File | When to dispatch |
42
+ |-----------|-----------|-----------------|
43
+ | `frontend` | `.rdc/guides/frontend.md` | React components, pages, UI, Tailwind, animation |
44
+ | `backend` | `.rdc/guides/backend.md` | API routes, server components, database queries, auth |
45
+ | `data` | `.rdc/guides/data.md` | Migrations, schema changes, RPC functions |
46
+ | `design` | `.rdc/guides/design.md` | Visual design, brand palettes, OG images, token work |
47
+ | `infra` | `.rdc/guides/infrastructure.md` | CI/CD, deployment, DNS, SSL |
48
+ | `content` | `.rdc/guides/content.md` | Marketing copy, messaging, tone |
49
+ | `cs2` | `.rdc/guides/cs2.md` | CS 2.0 paradigm work (generic) |
50
+ | `hail` | `.rdc/guides/cs2.md` + `packages/hail/CLAUDE.md` | Grammar, DSL compiler, evolution |
51
+ | `pal` | `.rdc/guides/cs2.md` + `packages/pal/CLAUDE.md` | Sessions, moment windows, graph memory |
52
+ | `bpmn` | `.rdc/guides/cs2.md` + `docs/systems/<domain>/flowable-bpmn-architecture.md` | BPMN flows, governance |
53
+ | `virtue` | `.rdc/guides/cs2.md` + `packages/virtue-engine/CLAUDE.md` | Virtue weights, coherence, certification |
54
+ | `viz` | `.rdc/guides/frontend.md` + `.rdc/guides/design.md` | Custom viz components, charts, diagrams |
55
+
56
+ ### How to classify a task → agent type
57
+
58
+ Read the task title and description, then:
59
+ - Mentions React, component, page, UI, Tailwind → `frontend`
60
+ - Mentions API route, server, database query, auth → `backend`
61
+ - Mentions migration, schema, table, RPC → `data`
62
+ - Mentions brand, palette, typography, OG image → `design`
63
+ - Mentions deploy, infrastructure, CI, DNS → `infra`
64
+ - Mentions copy, messaging, email template → `content`
65
+ - Mentions grammar, DSL, compiler → `hail`
66
+ - Mentions session, moment, memory graph → `pal`
67
+ - Mentions BPMN, flow, governance → `bpmn`
68
+ - Mentions virtue, coherence, certification → `virtue`
69
+ - Mentions visualization, chart, diagram, SVG → `viz`
70
+ - Multiple types? Dispatch multiple agents, each with its guide.
71
+
72
+ ## Procedure
73
+
74
+ 1. **Load the epic:**
75
+ ```sql
76
+ SELECT get_work_items_by_epic('<epic-id>', 'todo');
77
+ ```
78
+ - Interactive (no args): show open epics, ask which to build
79
+ - Unattended (no tasks found): escalate via advisor tool
80
+
81
+ 2. **CHECK FOR EXISTING WORK (mandatory — never skip):**
82
+ ```sql
83
+ -- Check if prototypes exist from earlier sessions
84
+ SELECT name, component, source_path, status, notes
85
+ FROM prototype_registry
86
+ WHERE status IN ('prototype', 'converting')
87
+ ORDER BY created_at DESC;
88
+
89
+ -- Check for design decisions on this topic
90
+ SELECT topic, context_type, summary, source
91
+ FROM design_context
92
+ WHERE topic ILIKE '%<epic-topic>%'
93
+ ORDER BY created_at DESC;
94
+ ```
95
+ **If a prototype exists: ADAPT IT. Do not build from scratch.**
96
+ Tell the agent: "Read <source_path> first and convert it to the production contract."
97
+
98
+ **If design decisions exist: follow them.** Include the summary in the agent prompt.
99
+
100
+ 3. **Load the plan** (if exists): check `.rdc/plans/` for matching topic (fallback: `.rdc/plans/`).
101
+
102
+ 4. **Read CLAUDE.md files** for all affected packages.
103
+
104
+ 5. **Classify each task** → assign agent type from the table above.
105
+
106
+ 6. **Group tasks into waves** — parallelize tasks with no file overlap:
107
+ - Wave 1: independent tasks (different packages/files)
108
+ - Wave 2: tasks that depend on Wave 1 outputs
109
+ - Wave 3: integration tasks
110
+
111
+ 7. **For each wave — dispatch typed agents in parallel:**
112
+ - Set work item to `in_progress` before dispatching
113
+ - Each agent prompt MUST include:
114
+ - `"Read {PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md first (fallback: .rdc/guides/agent-bootstrap.md), then {PROJECT_ROOT}/.rdc/guides/<type>.md (fallback: .rdc/guides/<type>.md) before starting."`
115
+ - Specific files to create/modify
116
+ - Exact deliverables and commit message
117
+ - `"NEVER run pnpm build/test. NEVER modify files outside your scope."`
118
+ - Use `run_in_background: true` for parallel execution
119
+ - NEVER let agents overlap on the same files
120
+
121
+ 8. **Post-wave test gate (mandatory):**
122
+ After all agents in a wave complete, before marking tasks done:
123
+ ```bash
124
+ # For each package modified in this wave:
125
+ cd packages/<name> && npx vitest run 2>&1 | tail -20
126
+ ```
127
+ - All tests must pass before proceeding to next wave
128
+ - If tests fail: fix before marking the wave done
129
+ - NEVER use `pnpm build` or `pnpm turbo test` — vitest only per package
130
+ - New code must have tests: if a modified package shows 0 new test files, flag it
131
+
132
+ 9. **As agents complete:**
133
+ - Verify commit landed on the development branch
134
+ - Push to origin *(skip if `$RDC_TEST=1` — echo `[RDC_TEST] skipping git push` instead)*
135
135
  - Ensure the agent submitted `implementation_report.codeflow_post`, then set the work item to `review`; the validator closes `done`
136
- - Continue to next wave
137
-
138
- **If an agent fails:**
139
- - Interactive: diagnose before retrying
140
- - Unattended: retry once; on second failure escalate via advisor
141
- ```
142
- BUILD_STATUS: { wave, tasks_done, tasks_failed, commits, escalated: true }
143
- ```
144
-
136
+ - Continue to next wave
137
+
138
+ **If an agent fails:**
139
+ - Interactive: diagnose before retrying
140
+ - Unattended: retry once; on second failure escalate via advisor
141
+ ```
142
+ BUILD_STATUS: { wave, tasks_done, tasks_failed, commits, escalated: true }
143
+ ```
144
+
145
145
  10. **Final verification gate (mandatory — before marking work or epic done):**
146
- Dispatch the verify agent (see `guides/agents/verify.md`) across every package/app touched in this build.
147
- The Iron Law: **NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
148
- - Run `npx vitest run --dir <pkg>` fresh for each touched package
149
- - Run `npx tsc --noEmit --project <pkg>/tsconfig.json` for each
150
- - Read the full output — zero failures, zero type errors
151
- - If any step fails: fix and re-run the entire gate. Do not skip.
152
- - NEVER `pnpm build` / `pnpm test` / `pnpm -r` (crashes machine)
153
-
154
- 11. **After verification passes:**
155
- - Push all commits:
156
- ```bash
157
- if [ "$RDC_TEST" != "1" ]; then
158
- git push origin {development-branch}
159
- else
160
- echo "[RDC_TEST] skipping git push origin {development-branch}"
161
- fi
162
- ```
163
- - Update epic version: `bump_epic_version()`
164
- - Report summary with verification evidence quoted
165
-
166
- ## Agent TDD Requirements
167
-
168
- When dispatching agents, include in every prompt:
169
- ```
170
- TDD REQUIREMENT: Write tests FIRST for new functions/modules.
171
- Run: npx vitest run packages/<name> to verify red → implement → verify green.
172
- NEVER run pnpm build or pnpm turbo. Use npx vitest run only.
173
- ```
174
-
175
- ## Rules
176
- - Branch: development branch only (auto-commit, no confirmation needed)
177
- - NEVER let two agents edit the same file
178
- - NEVER run `pnpm build` (crashes system) — code only
179
- - Every agent reads its guide file — no exceptions
180
- - Update Supabase work items IN REAL TIME — not batch at end
181
- - Push after each wave, not just at the end
182
- - Unattended: NEVER pause — continue automatically
183
- - Unattended: max 2 retries per task before escalating to advisor
146
+ Dispatch the verify agent (see `guides/agents/verify.md`) across every package/app touched in this build.
147
+ The Iron Law: **NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE.**
148
+ - Run `npx vitest run --dir <pkg>` fresh for each touched package
149
+ - Run `npx tsc --noEmit --project <pkg>/tsconfig.json` for each
150
+ - Read the full output — zero failures, zero type errors
151
+ - If any step fails: fix and re-run the entire gate. Do not skip.
152
+ - NEVER `pnpm build` / `pnpm test` / `pnpm -r` (crashes machine)
153
+
154
+ 11. **After verification passes:**
155
+ - Push all commits:
156
+ ```bash
157
+ if [ "$RDC_TEST" != "1" ]; then
158
+ git push origin {development-branch}
159
+ else
160
+ echo "[RDC_TEST] skipping git push origin {development-branch}"
161
+ fi
162
+ ```
163
+ - Update epic version: `bump_epic_version()`
164
+ - Report summary with verification evidence quoted
165
+
166
+ ## Agent TDD Requirements
167
+
168
+ When dispatching agents, include in every prompt:
169
+ ```
170
+ TDD REQUIREMENT: Write tests FIRST for new functions/modules.
171
+ Run: npx vitest run packages/<name> to verify red → implement → verify green.
172
+ NEVER run pnpm build or pnpm turbo. Use npx vitest run only.
173
+ ```
174
+
175
+ ## Rules
176
+ - Branch: development branch only (auto-commit, no confirmation needed)
177
+ - NEVER let two agents edit the same file
178
+ - NEVER run `pnpm build` (crashes system) — code only
179
+ - Every agent reads its guide file — no exceptions
180
+ - Update Supabase work items IN REAL TIME — not batch at end
181
+ - Push after each wave, not just at the end
182
+ - Unattended: NEVER pause — continue automatically
183
+ - Unattended: max 2 retries per task before escalating to advisor