@lifeaitools/rdc-skills 0.35.23 → 0.35.25
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 +1 -1
- package/.github/workflows/self-test.yml +34 -34
- package/MANIFEST.md +224 -224
- package/RELEASE.md +53 -11
- package/deploy/install-systemd.sh +29 -6
- package/deploy/systemd/rdc-skills-mcp-update.service +15 -0
- package/deploy/systemd/rdc-skills-mcp-update.timer +9 -0
- package/deploy/update-from-tag.sh +382 -0
- 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/guides/orchestration-epic.md +17 -17
- package/guides/output-contract.md +8 -0
- package/guides/work-contract.md +194 -0
- package/package.json +3 -2
- package/scripts/lib/guide-content-rules.mjs +49 -0
- package/scripts/self-test.mjs +1439 -1459
- package/scripts/test-guide-validator.mjs +25 -24
- package/skills/behavior-audit/agents/openai.yaml +4 -4
- package/skills/build/SKILL.md +81 -29
- package/skills/fixit/SKILL.md +16 -0
- package/skills/open/SKILL.md +35 -5
- package/skills/overnight/SKILL.md +3 -1
- package/skills/plan/SKILL.md +21 -23
- package/skills/tests/onramp.test.json +101 -101
- package/skills/tests/rdc-env.test.json +12 -12
- package/skills/tests/rdc-new-model.test.json +12 -12
- package/skills/tests/rdc-refactor.test.json +29 -29
- package/skills/tests/rdc-regen-media.test.json +29 -29
- package/tests/deploy-updater.test.mjs +608 -0
- package/.rdc/evidence/orchestrator-rework-strikes/a9fad8b4716ee35e5f5d0047.json +0 -1
- package/.rdc/last_seen.json +0 -8
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rdc",
|
|
3
|
-
"version": "0.35.
|
|
3
|
+
"version": "0.35.25",
|
|
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",
|
|
@@ -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
|
@@ -1,224 +1,224 @@
|
|
|
1
|
-
# RDC Skills Library — Manifest
|
|
2
|
-
|
|
3
|
-
**Created:** 2026-04-13
|
|
4
|
-
**Last updated:** 2026-05-01
|
|
5
|
-
**Source:** Regen Root project `.claude/skills/user/`
|
|
6
|
-
**Files:** 31 skill files, 10 agent guides, command mirrors, and support scripts
|
|
7
|
-
**Size:** ~480K
|
|
8
|
-
|
|
9
|
-
## Generic Conversion Summary
|
|
10
|
-
|
|
11
|
-
All skills have been converted from project-specific to generic/portable:
|
|
12
|
-
|
|
13
|
-
### Path Replacements
|
|
14
|
-
- `C:/Dev/regen-root/` → `{PROJECT_ROOT}/`
|
|
15
|
-
- Hardcoded app names (rdc-marketing-engine, brand-studio, prt, etc.) → generic examples
|
|
16
|
-
- Specific Supabase project IDs → generic table references
|
|
17
|
-
- Developer-specific paths → variables
|
|
18
|
-
|
|
19
|
-
### TDD Enhancements
|
|
20
|
-
- Added mandatory post-wave test gate to rdc:build
|
|
21
|
-
- Updated rdc:review with test coverage delta reporting
|
|
22
|
-
- Added test-first requirement to all agent skills
|
|
23
|
-
- TDD enforcement: red → implement → green cycle
|
|
24
|
-
|
|
25
|
-
### Preserved Elements
|
|
26
|
-
- All logic and procedures (100%)
|
|
27
|
-
- All safety rules
|
|
28
|
-
- All RPC patterns
|
|
29
|
-
- Branch strategy (development → production)
|
|
30
|
-
- Work item lifecycle
|
|
31
|
-
- Escalation protocols
|
|
32
|
-
- Unattended mode patterns
|
|
33
|
-
- Status block format
|
|
34
|
-
|
|
35
|
-
## Files Created
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
/c/Dev/rdc-skills/
|
|
39
|
-
├── README.md
|
|
40
|
-
├── MANIFEST.md (this file)
|
|
41
|
-
└── skills/
|
|
42
|
-
├── build/SKILL.md [+TDD enforcement, +verify gate]
|
|
43
|
-
├── plan/SKILL.md
|
|
44
|
-
├── preplan/SKILL.md
|
|
45
|
-
├── review/SKILL.md [+test coverage delta, +verify gate]
|
|
46
|
-
├── overnight/SKILL.md
|
|
47
|
-
├── fixit/SKILL.md
|
|
48
|
-
├── status/SKILL.md
|
|
49
|
-
├── report/SKILL.md
|
|
50
|
-
├── co-develop/SKILL.md [peer-aware Claude/Codex co-development]
|
|
51
|
-
├── collab/SKILL.md [claude.ai ↔ Claude Code relay]
|
|
52
|
-
├── handoff/SKILL.md
|
|
53
|
-
├── prototype/SKILL.md
|
|
54
|
-
├── workitems/SKILL.md
|
|
55
|
-
├── design/SKILL.md [RDC/Studio design, Palette Library, Rampa CLI]
|
|
56
|
-
├── help/SKILL.md
|
|
57
|
-
├── regen-media/SKILL.md [primary image generation + Regen Media upload]
|
|
58
|
-
├── deploy/SKILL.md [Coolify deployment ops]
|
|
59
|
-
├── release/SKILL.md [atomic version release]
|
|
60
|
-
├── self-test/SKILL.md [static lint + tier2 smoke tests]
|
|
61
|
-
└── watch/SKILL.md [session log + browser viewer]
|
|
62
|
-
└── guides/agents/ (agent-only playbooks — dispatched by rdc:build, not user-invocable)
|
|
63
|
-
├── frontend.md
|
|
64
|
-
├── backend.md
|
|
65
|
-
├── cs2.md
|
|
66
|
-
├── data.md
|
|
67
|
-
├── design.md
|
|
68
|
-
├── infrastructure.md
|
|
69
|
-
├── content.md
|
|
70
|
-
├── viz.md
|
|
71
|
-
├── setup.md
|
|
72
|
-
└── verify.md
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**Note (v0.7.9):** Skills migrated from flat `rdc-<name>.md` files to `<name>/SKILL.md` subdirectories. Plugin namespace is `rdc`, so composed skill names are `rdc:<name>` — matching the frontmatter. This eliminates the duplicate `rdc:rdc-*` registration that occurred when directories were named `rdc-<name>/`.
|
|
76
|
-
|
|
77
|
-
## Skill Categories
|
|
78
|
-
|
|
79
|
-
### Orchestration (8)
|
|
80
|
-
- rdc:build — dispatch typed agents in waves
|
|
81
|
-
- rdc:plan — architecture + epic/tasks
|
|
82
|
-
- rdc:preplan — research before planning
|
|
83
|
-
- rdc:review — quality gate
|
|
84
|
-
- rdc:overnight — unattended build supervisor
|
|
85
|
-
- rdc:fixit — quick-fix bypass
|
|
86
|
-
- rdc:status — project dashboard
|
|
87
|
-
- rdc:report — nightly report
|
|
88
|
-
|
|
89
|
-
### DevOps (3)
|
|
90
|
-
- rdc:deploy — Coolify deployment ops (deploy, new, diagnose, audit)
|
|
91
|
-
- rdc:release — atomic version release with git tag + changelog
|
|
92
|
-
- rdc:watch — session log + browser viewer for Claude activity
|
|
93
|
-
|
|
94
|
-
### Quality (1)
|
|
95
|
-
- rdc:self-test — static lint (tier1) + smoke tests (tier2)
|
|
96
|
-
|
|
97
|
-
### Collaboration (1)
|
|
98
|
-
- rdc:co-develop — peer-aware Claude/Codex co-development over clauth
|
|
99
|
-
|
|
100
|
-
### Agent Guides (10, in `guides/agents/`) — [agent-only — dispatched by rdc:build, not user-invocable]
|
|
101
|
-
- frontend — React, UI, Tailwind
|
|
102
|
-
- backend — API, database, auth
|
|
103
|
-
- data — migrations, schema
|
|
104
|
-
- design — brand, tokens
|
|
105
|
-
- infrastructure — deployment, CI/CD
|
|
106
|
-
- content — copy, messaging
|
|
107
|
-
- cs2 — paradigm-level work
|
|
108
|
-
- viz — visualizations
|
|
109
|
-
- setup — project scan + .rdc/config.json generation
|
|
110
|
-
- verify — evidence-before-claims verification gate
|
|
111
|
-
|
|
112
|
-
### Utility (1)
|
|
113
|
-
- rdc:collab — bidirectional claude.ai ↔ Claude Code relay via file transport
|
|
114
|
-
- rdc:channel-formatter — channel-native formatting and content repurposing,
|
|
115
|
-
including article-to-post, social-pack, campaign-pack, exec-pack, and
|
|
116
|
-
launch-pack outputs
|
|
117
|
-
- rdc:regen-media — primary image generation and Regen Media upload workflow,
|
|
118
|
-
defaulting to local keyless Codex `gpt-image-2` via built-in `image_gen`
|
|
119
|
-
|
|
120
|
-
### Bridge (3)
|
|
121
|
-
- rdc:handoff — planning → work items
|
|
122
|
-
- rdc:prototype — JSX prototypes
|
|
123
|
-
- rdc:workitems — work item CRUD
|
|
124
|
-
|
|
125
|
-
### Design (1)
|
|
126
|
-
- rdc:design — Studio-aware design workflow with token, Palette Library, and Rampa CLI context
|
|
127
|
-
|
|
128
|
-
### Reference (1)
|
|
129
|
-
- rdc:help — skill index
|
|
130
|
-
|
|
131
|
-
## Usage Instructions
|
|
132
|
-
|
|
133
|
-
1. **Clone or reference** the `/c/Dev/rdc-skills/` directory
|
|
134
|
-
2. **Update path variables** in all skills for your project
|
|
135
|
-
3. **Create project guides** (agent-bootstrap.md, frontend.md, etc.)
|
|
136
|
-
4. **Set up database** (work_items RPC, prototype_registry, design_context)
|
|
137
|
-
5. **Invoke skills** via your agent framework
|
|
138
|
-
- Interactive: `/rdc:build <epic-id>`
|
|
139
|
-
- Unattended: `/rdc:overnight`
|
|
140
|
-
- Quality: `/rdc:review --unattended`
|
|
141
|
-
- Content repurposing: `/rdc:channel-formatter social-pack article.md`
|
|
142
|
-
|
|
143
|
-
## Channel Formatter Content Packs
|
|
144
|
-
|
|
145
|
-
`rdc:channel-formatter` can strictly format copy for one channel or repurpose a
|
|
146
|
-
long source into a channel-native output set.
|
|
147
|
-
|
|
148
|
-
Examples:
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
rdc:channel-formatter linkedin article.md
|
|
152
|
-
rdc:channel-formatter twitter-thread article.md
|
|
153
|
-
rdc:channel-formatter social-pack article.md
|
|
154
|
-
rdc:channel-formatter campaign-pack report.md
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
Use `rdc:convert` for actual Office/Markdown file conversion, `rdc:brochure`
|
|
158
|
-
for HTML/folder/URL PDF rendering, and `rdc:brochurify` for Brochurify
|
|
159
|
-
orchestration. Channel formatter writes and repurposes text; it does not produce
|
|
160
|
-
binary Word or PDF artifacts.
|
|
161
|
-
|
|
162
|
-
## Key Differences from Source
|
|
163
|
-
|
|
164
|
-
### Added: TDD Enforcement
|
|
165
|
-
|
|
166
|
-
**rdc:build (Step 8):**
|
|
167
|
-
```bash
|
|
168
|
-
# Post-wave test gate (mandatory)
|
|
169
|
-
cd packages/<name> && npx vitest run 2>&1 | tail -20
|
|
170
|
-
```
|
|
171
|
-
All tests must pass before next wave.
|
|
172
|
-
|
|
173
|
-
**All agent skills:**
|
|
174
|
-
```
|
|
175
|
-
TDD REQUIREMENT: Write tests FIRST for new functions/modules.
|
|
176
|
-
Run: npx vitest run packages/<name>
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
**rdc:review (Step 3):**
|
|
180
|
-
```bash
|
|
181
|
-
# Check test coverage delta
|
|
182
|
-
git diff origin/main...HEAD -- packages/*/src/ | grep -c "^+"
|
|
183
|
-
git diff origin/main...HEAD -- packages/*/test* | grep -c "^+"
|
|
184
|
-
```
|
|
185
|
-
Flags any package with implementation added but 0 new tests.
|
|
186
|
-
|
|
187
|
-
**rdc:review report format:**
|
|
188
|
-
```
|
|
189
|
-
| Package | Tests | Pass/Fail | New Tests Added | Issues |
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
### Preserved: All Logic
|
|
193
|
-
|
|
194
|
-
- Work item RPC patterns (never raw SQL)
|
|
195
|
-
- Agent type classification
|
|
196
|
-
- Wave-based parallelization
|
|
197
|
-
- Escalation protocols
|
|
198
|
-
- Unattended mode patterns
|
|
199
|
-
- Status block formatting
|
|
200
|
-
- Safety rules (100%)
|
|
201
|
-
- Branch strategy
|
|
202
|
-
|
|
203
|
-
## Deployment
|
|
204
|
-
|
|
205
|
-
These skills are ready to use in any project that has:
|
|
206
|
-
|
|
207
|
-
1. A monorepo with `packages/`, `apps/`, or `sites/` structure
|
|
208
|
-
2. A database (Supabase, PostgreSQL, etc.) with work_items RPC functions
|
|
209
|
-
3. Capability to run agents (Claude Code, subagents, or CLI)
|
|
210
|
-
4. Git-based version control with at least 2 branches (dev + prod)
|
|
211
|
-
5. A credential management system (clauth daemon or equivalent)
|
|
212
|
-
|
|
213
|
-
## Questions?
|
|
214
|
-
|
|
215
|
-
- **Specific project integration:** Refer to your project's infrastructure documentation
|
|
216
|
-
- **Skill logic:** All skills are pure logic extracted from Regen Root; no project-specific magic
|
|
217
|
-
- **TDD requirements:** Built into every skill; red → implement → green is mandatory
|
|
218
|
-
- **Database schema:** You define; skills use generic `work_items` table and RPC patterns
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
**Manifest created:** 2026-04-13
|
|
223
|
-
**Source project:** Regen Root (github.com/LIFEAI/regen-root)
|
|
224
|
-
**Genericization:** Complete — all hardcoded references removed, all logic preserved
|
|
1
|
+
# RDC Skills Library — Manifest
|
|
2
|
+
|
|
3
|
+
**Created:** 2026-04-13
|
|
4
|
+
**Last updated:** 2026-05-01
|
|
5
|
+
**Source:** Regen Root project `.claude/skills/user/`
|
|
6
|
+
**Files:** 31 skill files, 10 agent guides, command mirrors, and support scripts
|
|
7
|
+
**Size:** ~480K
|
|
8
|
+
|
|
9
|
+
## Generic Conversion Summary
|
|
10
|
+
|
|
11
|
+
All skills have been converted from project-specific to generic/portable:
|
|
12
|
+
|
|
13
|
+
### Path Replacements
|
|
14
|
+
- `C:/Dev/regen-root/` → `{PROJECT_ROOT}/`
|
|
15
|
+
- Hardcoded app names (rdc-marketing-engine, brand-studio, prt, etc.) → generic examples
|
|
16
|
+
- Specific Supabase project IDs → generic table references
|
|
17
|
+
- Developer-specific paths → variables
|
|
18
|
+
|
|
19
|
+
### TDD Enhancements
|
|
20
|
+
- Added mandatory post-wave test gate to rdc:build
|
|
21
|
+
- Updated rdc:review with test coverage delta reporting
|
|
22
|
+
- Added test-first requirement to all agent skills
|
|
23
|
+
- TDD enforcement: red → implement → green cycle
|
|
24
|
+
|
|
25
|
+
### Preserved Elements
|
|
26
|
+
- All logic and procedures (100%)
|
|
27
|
+
- All safety rules
|
|
28
|
+
- All RPC patterns
|
|
29
|
+
- Branch strategy (development → production)
|
|
30
|
+
- Work item lifecycle
|
|
31
|
+
- Escalation protocols
|
|
32
|
+
- Unattended mode patterns
|
|
33
|
+
- Status block format
|
|
34
|
+
|
|
35
|
+
## Files Created
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
/c/Dev/rdc-skills/
|
|
39
|
+
├── README.md
|
|
40
|
+
├── MANIFEST.md (this file)
|
|
41
|
+
└── skills/
|
|
42
|
+
├── build/SKILL.md [+TDD enforcement, +verify gate]
|
|
43
|
+
├── plan/SKILL.md
|
|
44
|
+
├── preplan/SKILL.md
|
|
45
|
+
├── review/SKILL.md [+test coverage delta, +verify gate]
|
|
46
|
+
├── overnight/SKILL.md
|
|
47
|
+
├── fixit/SKILL.md
|
|
48
|
+
├── status/SKILL.md
|
|
49
|
+
├── report/SKILL.md
|
|
50
|
+
├── co-develop/SKILL.md [peer-aware Claude/Codex co-development]
|
|
51
|
+
├── collab/SKILL.md [claude.ai ↔ Claude Code relay]
|
|
52
|
+
├── handoff/SKILL.md
|
|
53
|
+
├── prototype/SKILL.md
|
|
54
|
+
├── workitems/SKILL.md
|
|
55
|
+
├── design/SKILL.md [RDC/Studio design, Palette Library, Rampa CLI]
|
|
56
|
+
├── help/SKILL.md
|
|
57
|
+
├── regen-media/SKILL.md [primary image generation + Regen Media upload]
|
|
58
|
+
├── deploy/SKILL.md [Coolify deployment ops]
|
|
59
|
+
├── release/SKILL.md [atomic version release]
|
|
60
|
+
├── self-test/SKILL.md [static lint + tier2 smoke tests]
|
|
61
|
+
└── watch/SKILL.md [session log + browser viewer]
|
|
62
|
+
└── guides/agents/ (agent-only playbooks — dispatched by rdc:build, not user-invocable)
|
|
63
|
+
├── frontend.md
|
|
64
|
+
├── backend.md
|
|
65
|
+
├── cs2.md
|
|
66
|
+
├── data.md
|
|
67
|
+
├── design.md
|
|
68
|
+
├── infrastructure.md
|
|
69
|
+
├── content.md
|
|
70
|
+
├── viz.md
|
|
71
|
+
├── setup.md
|
|
72
|
+
└── verify.md
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Note (v0.7.9):** Skills migrated from flat `rdc-<name>.md` files to `<name>/SKILL.md` subdirectories. Plugin namespace is `rdc`, so composed skill names are `rdc:<name>` — matching the frontmatter. This eliminates the duplicate `rdc:rdc-*` registration that occurred when directories were named `rdc-<name>/`.
|
|
76
|
+
|
|
77
|
+
## Skill Categories
|
|
78
|
+
|
|
79
|
+
### Orchestration (8)
|
|
80
|
+
- rdc:build — dispatch typed agents in waves
|
|
81
|
+
- rdc:plan — architecture + epic/tasks
|
|
82
|
+
- rdc:preplan — research before planning
|
|
83
|
+
- rdc:review — quality gate
|
|
84
|
+
- rdc:overnight — unattended build supervisor
|
|
85
|
+
- rdc:fixit — quick-fix bypass
|
|
86
|
+
- rdc:status — project dashboard
|
|
87
|
+
- rdc:report — nightly report
|
|
88
|
+
|
|
89
|
+
### DevOps (3)
|
|
90
|
+
- rdc:deploy — Coolify deployment ops (deploy, new, diagnose, audit)
|
|
91
|
+
- rdc:release — atomic version release with git tag + changelog
|
|
92
|
+
- rdc:watch — session log + browser viewer for Claude activity
|
|
93
|
+
|
|
94
|
+
### Quality (1)
|
|
95
|
+
- rdc:self-test — static lint (tier1) + smoke tests (tier2)
|
|
96
|
+
|
|
97
|
+
### Collaboration (1)
|
|
98
|
+
- rdc:co-develop — peer-aware Claude/Codex co-development over clauth
|
|
99
|
+
|
|
100
|
+
### Agent Guides (10, in `guides/agents/`) — [agent-only — dispatched by rdc:build, not user-invocable]
|
|
101
|
+
- frontend — React, UI, Tailwind
|
|
102
|
+
- backend — API, database, auth
|
|
103
|
+
- data — migrations, schema
|
|
104
|
+
- design — brand, tokens
|
|
105
|
+
- infrastructure — deployment, CI/CD
|
|
106
|
+
- content — copy, messaging
|
|
107
|
+
- cs2 — paradigm-level work
|
|
108
|
+
- viz — visualizations
|
|
109
|
+
- setup — project scan + .rdc/config.json generation
|
|
110
|
+
- verify — evidence-before-claims verification gate
|
|
111
|
+
|
|
112
|
+
### Utility (1)
|
|
113
|
+
- rdc:collab — bidirectional claude.ai ↔ Claude Code relay via file transport
|
|
114
|
+
- rdc:channel-formatter — channel-native formatting and content repurposing,
|
|
115
|
+
including article-to-post, social-pack, campaign-pack, exec-pack, and
|
|
116
|
+
launch-pack outputs
|
|
117
|
+
- rdc:regen-media — primary image generation and Regen Media upload workflow,
|
|
118
|
+
defaulting to local keyless Codex `gpt-image-2` via built-in `image_gen`
|
|
119
|
+
|
|
120
|
+
### Bridge (3)
|
|
121
|
+
- rdc:handoff — planning → work items
|
|
122
|
+
- rdc:prototype — JSX prototypes
|
|
123
|
+
- rdc:workitems — work item CRUD
|
|
124
|
+
|
|
125
|
+
### Design (1)
|
|
126
|
+
- rdc:design — Studio-aware design workflow with token, Palette Library, and Rampa CLI context
|
|
127
|
+
|
|
128
|
+
### Reference (1)
|
|
129
|
+
- rdc:help — skill index
|
|
130
|
+
|
|
131
|
+
## Usage Instructions
|
|
132
|
+
|
|
133
|
+
1. **Clone or reference** the `/c/Dev/rdc-skills/` directory
|
|
134
|
+
2. **Update path variables** in all skills for your project
|
|
135
|
+
3. **Create project guides** (agent-bootstrap.md, frontend.md, etc.)
|
|
136
|
+
4. **Set up database** (work_items RPC, prototype_registry, design_context)
|
|
137
|
+
5. **Invoke skills** via your agent framework
|
|
138
|
+
- Interactive: `/rdc:build <epic-id>`
|
|
139
|
+
- Unattended: `/rdc:overnight`
|
|
140
|
+
- Quality: `/rdc:review --unattended`
|
|
141
|
+
- Content repurposing: `/rdc:channel-formatter social-pack article.md`
|
|
142
|
+
|
|
143
|
+
## Channel Formatter Content Packs
|
|
144
|
+
|
|
145
|
+
`rdc:channel-formatter` can strictly format copy for one channel or repurpose a
|
|
146
|
+
long source into a channel-native output set.
|
|
147
|
+
|
|
148
|
+
Examples:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
rdc:channel-formatter linkedin article.md
|
|
152
|
+
rdc:channel-formatter twitter-thread article.md
|
|
153
|
+
rdc:channel-formatter social-pack article.md
|
|
154
|
+
rdc:channel-formatter campaign-pack report.md
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Use `rdc:convert` for actual Office/Markdown file conversion, `rdc:brochure`
|
|
158
|
+
for HTML/folder/URL PDF rendering, and `rdc:brochurify` for Brochurify
|
|
159
|
+
orchestration. Channel formatter writes and repurposes text; it does not produce
|
|
160
|
+
binary Word or PDF artifacts.
|
|
161
|
+
|
|
162
|
+
## Key Differences from Source
|
|
163
|
+
|
|
164
|
+
### Added: TDD Enforcement
|
|
165
|
+
|
|
166
|
+
**rdc:build (Step 8):**
|
|
167
|
+
```bash
|
|
168
|
+
# Post-wave test gate (mandatory)
|
|
169
|
+
cd packages/<name> && npx vitest run 2>&1 | tail -20
|
|
170
|
+
```
|
|
171
|
+
All tests must pass before next wave.
|
|
172
|
+
|
|
173
|
+
**All agent skills:**
|
|
174
|
+
```
|
|
175
|
+
TDD REQUIREMENT: Write tests FIRST for new functions/modules.
|
|
176
|
+
Run: npx vitest run packages/<name>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**rdc:review (Step 3):**
|
|
180
|
+
```bash
|
|
181
|
+
# Check test coverage delta
|
|
182
|
+
git diff origin/main...HEAD -- packages/*/src/ | grep -c "^+"
|
|
183
|
+
git diff origin/main...HEAD -- packages/*/test* | grep -c "^+"
|
|
184
|
+
```
|
|
185
|
+
Flags any package with implementation added but 0 new tests.
|
|
186
|
+
|
|
187
|
+
**rdc:review report format:**
|
|
188
|
+
```
|
|
189
|
+
| Package | Tests | Pass/Fail | New Tests Added | Issues |
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Preserved: All Logic
|
|
193
|
+
|
|
194
|
+
- Work item RPC patterns (never raw SQL)
|
|
195
|
+
- Agent type classification
|
|
196
|
+
- Wave-based parallelization
|
|
197
|
+
- Escalation protocols
|
|
198
|
+
- Unattended mode patterns
|
|
199
|
+
- Status block formatting
|
|
200
|
+
- Safety rules (100%)
|
|
201
|
+
- Branch strategy
|
|
202
|
+
|
|
203
|
+
## Deployment
|
|
204
|
+
|
|
205
|
+
These skills are ready to use in any project that has:
|
|
206
|
+
|
|
207
|
+
1. A monorepo with `packages/`, `apps/`, or `sites/` structure
|
|
208
|
+
2. A database (Supabase, PostgreSQL, etc.) with work_items RPC functions
|
|
209
|
+
3. Capability to run agents (Claude Code, subagents, or CLI)
|
|
210
|
+
4. Git-based version control with at least 2 branches (dev + prod)
|
|
211
|
+
5. A credential management system (clauth daemon or equivalent)
|
|
212
|
+
|
|
213
|
+
## Questions?
|
|
214
|
+
|
|
215
|
+
- **Specific project integration:** Refer to your project's infrastructure documentation
|
|
216
|
+
- **Skill logic:** All skills are pure logic extracted from Regen Root; no project-specific magic
|
|
217
|
+
- **TDD requirements:** Built into every skill; red → implement → green is mandatory
|
|
218
|
+
- **Database schema:** You define; skills use generic `work_items` table and RPC patterns
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
**Manifest created:** 2026-04-13
|
|
223
|
+
**Source project:** Regen Root (github.com/LIFEAI/regen-root)
|
|
224
|
+
**Genericization:** Complete — all hardcoded references removed, all logic preserved
|
package/RELEASE.md
CHANGED
|
@@ -69,21 +69,63 @@ The public `/health` version must equal the released npm version and its skill
|
|
|
69
69
|
count must match the packaged catalog. The local installer never restarts or
|
|
70
70
|
deploys that endpoint.
|
|
71
71
|
|
|
72
|
-
The Vultr host checks out this repository at `/srv/regen/rdc-skills`
|
|
73
|
-
straight from
|
|
74
|
-
from `bin/rdc-skills-mcp.mjs`'s runtime
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
72
|
+
The Vultr host checks out this repository at `/srv/regen/rdc-skills` and runs the
|
|
73
|
+
server straight from that checkout, with production dependencies installed there
|
|
74
|
+
by `npm ci`. `/health`'s `git_sha` comes from `bin/rdc-skills-mcp.mjs`'s runtime
|
|
75
|
+
`git rev-parse HEAD`, resolved once when the process starts — NOT a stamped
|
|
76
|
+
`git-sha.json` (that file is `.gitignore`d on purpose — it's a pack-time-only
|
|
77
|
+
artifact for npm-installed copies; the updater deletes one if it appears in the
|
|
78
|
+
checkout). `version`, by contrast, is re-read from `package.json` on every
|
|
79
|
+
request, so **only `git_sha` proves the process restarted onto a release.**
|
|
80
|
+
|
|
81
|
+
**The host follows release tags by itself.** `rdc-skills-mcp-update.timer` runs
|
|
82
|
+
the updater ([`deploy/update-from-tag.sh`](deploy/update-from-tag.sh), installed
|
|
83
|
+
at `/usr/local/libexec/rdc-skills/` so no rollback can delete it) every five
|
|
84
|
+
minutes. The service is only ever restarted onto a **release**: the newest plain
|
|
85
|
+
`vX.Y.Z` tag merged into `master`, or the last release the updater proved serving.
|
|
86
|
+
Untagged commits, pre-releases and tags off `master` are never served — a checkout
|
|
87
|
+
pulled ahead to untagged `master` is moved back to the tag. The updater reinstalls
|
|
88
|
+
dependencies and unit files only when they differ from the last install, restarts
|
|
89
|
+
the MCP, and succeeds only when `/health` reports the release's version **and**
|
|
90
|
+
commit. "Current" is decided by `/health`, never by where `HEAD` is — a run that was
|
|
91
|
+
interrupted converges on the next tick.
|
|
92
|
+
|
|
93
|
+
A release only moves forward: a tag that is not a descendant of the proved release
|
|
94
|
+
(a higher number put on an older commit) is held off, so rolling back means tagging
|
|
95
|
+
a new, higher release. A release that restarts but never answers is recorded as
|
|
96
|
+
failed in `/var/lib/rdc-skills-update/failed`, the proved release is served again,
|
|
97
|
+
and the failed one is not retried until a newer tag exists. An install or restart
|
|
98
|
+
error says nothing about the release: the proved release is served again and the
|
|
99
|
+
new one is retried next run. A registry that cannot be reached is not counted
|
|
100
|
+
unless it stays unreachable for that release for a whole day; any other install or
|
|
101
|
+
restart error, the third time against the same release, marks it failed. To retry a release marked failed without tagging again, delete its line
|
|
102
|
+
from that file on the host. A host with no history adopts the commit it is already
|
|
103
|
+
serving (if that commit is on `master`) as the proved release before touching
|
|
104
|
+
anything, so the first move has somewhere to go back to. Tracked changes on the
|
|
105
|
+
host, or a commit made on the host, are refused and the service is left as it is.
|
|
106
|
+
So pushing the tag is the whole public MCP deploy — expect it live within about
|
|
107
|
+
five minutes:
|
|
79
108
|
|
|
80
109
|
```bash
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
110
|
+
tag=v$(node -p "require('./package.json').version")
|
|
111
|
+
curl -fsS https://rdc-skills.regendevcorp.com/health # git_sha == the line below
|
|
112
|
+
git rev-list -n 1 "$tag"
|
|
113
|
+
# on the host: journalctl -u rdc-skills-mcp-update.service -n 20
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
`install-systemd.sh` is the one-time host bootstrap. It installs the units and the
|
|
117
|
+
updater, runs the updater once (which restarts the MCP onto the checked-out release
|
|
118
|
+
and proves it), then enables the timer:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
cd /srv/regen/rdc-skills
|
|
122
|
+
git fetch --tags origin && git merge --ff-only v<X.Y.Z>
|
|
123
|
+
sudo ./deploy/install-systemd.sh
|
|
85
124
|
```
|
|
86
125
|
|
|
126
|
+
Before the timer existed the checkout moved only when someone logged in and
|
|
127
|
+
pulled, and the public catalog sat on 0.35.18 through six releases.
|
|
128
|
+
|
|
87
129
|
Port `3110` is reserved for this public MCP ingress. Application fleet manifests
|
|
88
130
|
must not claim it.
|
|
89
131
|
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
# One-time host bootstrap for the public MCP. From then on the timer keeps the
|
|
3
|
+
# checkout on the newest release tag (deploy/update-from-tag.sh).
|
|
4
|
+
#
|
|
5
|
+
# cd /srv/regen/rdc-skills
|
|
6
|
+
# git fetch --tags origin && git merge --ff-only v<X.Y.Z>
|
|
7
|
+
# sudo ./deploy/install-systemd.sh
|
|
2
8
|
set -euo pipefail
|
|
3
9
|
|
|
4
10
|
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
5
|
-
|
|
6
|
-
|
|
11
|
+
unit_dir="/etc/systemd/system"
|
|
12
|
+
libexec_dir="/usr/local/libexec/rdc-skills"
|
|
7
13
|
|
|
8
14
|
if [[ "$repo_root" != "/srv/regen/rdc-skills" ]]; then
|
|
9
15
|
echo "rdc-skills must be checked out at /srv/regen/rdc-skills" >&2
|
|
@@ -14,9 +20,26 @@ cd "$repo_root"
|
|
|
14
20
|
# The MCP imports declared runtime dependencies (including express). A Git
|
|
15
21
|
# checkout alone cannot satisfy those imports after a clean host or dependency
|
|
16
22
|
# cleanup, so install the committed production graph before the unit is enabled.
|
|
17
|
-
|
|
23
|
+
# No install scripts: nothing the server imports needs one, and this runs as root.
|
|
24
|
+
npm ci --omit=dev --no-audit --no-fund --ignore-scripts
|
|
18
25
|
|
|
19
|
-
install -m 0644
|
|
26
|
+
install -m 0644 deploy/systemd/rdc-skills-mcp.service "$unit_dir/rdc-skills-mcp.service"
|
|
27
|
+
install -m 0644 deploy/systemd/rdc-skills-mcp-update.service "$unit_dir/rdc-skills-mcp-update.service"
|
|
28
|
+
install -m 0644 deploy/systemd/rdc-skills-mcp-update.timer "$unit_dir/rdc-skills-mcp-update.timer"
|
|
29
|
+
install -D -m 0755 deploy/update-from-tag.sh "$libexec_dir/update-from-tag.sh"
|
|
20
30
|
systemctl daemon-reload
|
|
21
|
-
systemctl enable
|
|
22
|
-
|
|
31
|
+
systemctl enable rdc-skills-mcp.service
|
|
32
|
+
|
|
33
|
+
# `enable --now` does not restart a process that is already running, so an
|
|
34
|
+
# existing host would keep serving the old commit. The updater restarts into the
|
|
35
|
+
# checked-out release and succeeds only when /health proves it; if that release
|
|
36
|
+
# does not come up it returns to the commit that was serving. The timer is
|
|
37
|
+
# enabled either way — the updater's own state decides what the next run does —
|
|
38
|
+
# and the installer exits with the first run's status.
|
|
39
|
+
first_run=0
|
|
40
|
+
systemctl start rdc-skills-mcp-update.service || first_run=$?
|
|
41
|
+
systemctl enable --now rdc-skills-mcp-update.timer
|
|
42
|
+
systemctl --no-pager --full status rdc-skills-mcp.service || true
|
|
43
|
+
systemctl --no-pager list-timers rdc-skills-mcp-update.timer
|
|
44
|
+
journalctl -u rdc-skills-mcp-update.service -n 20 --no-pager || true
|
|
45
|
+
exit "$first_run"
|