@lifeaitools/rdc-skills 0.9.26 → 0.9.27

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifeaitools/rdc-skills",
3
- "version": "0.9.26",
3
+ "version": "0.9.27",
4
4
  "description": "RDC typed-agent dispatch skill suite for Claude Code — plan, build, review, overnight builds",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -7,13 +7,14 @@
7
7
  * node scripts/install-rdc-skills.js --skip-hooks ← skip hook wiring
8
8
  * node scripts/install-rdc-skills.js --claude-home <path> ← custom CLI home
9
9
  * node scripts/install-rdc-skills.js --codex-root <path> ← also install to .agents/skills/user/
10
+ * node scripts/install-rdc-skills.js --codex-skill-dir <path> ← also install to a Codex skill dir
10
11
  * node scripts/install-rdc-skills.js --migrate <path> ← migrate docs/ → .rdc/
11
12
  *
12
13
  * What it does:
13
14
  * 1. git pull (latest commands + guides)
14
15
  * 2. CLI plugin — registers in ~/.claude/plugins/ + settings.json
15
16
  * 3. Cowork — registers in Desktop cowork_plugins/ + cowork_settings.json
16
- * 3.5 Codex — copies skills to <project>/.agents/skills/user/rdc-<name>/
17
+ * 3.5 Codex — copies skills to detected Codex skill dirs
17
18
  * 4. Hook files — copies hooks/*.js → ~/.claude/hooks/
18
19
  * 5. Hook wiring — wires hooks into ~/.claude/settings.json
19
20
  * 6. Zip — builds dist/rdc-skills-plugin.zip for claude.ai / distribution
@@ -46,6 +47,10 @@ const codexRoot = codexIdx >= 0
46
47
  const sibling = path.resolve(repoRoot, '..', 'regen-root');
47
48
  return fs.existsSync(path.join(sibling, '.agents')) ? sibling : null;
48
49
  })();
50
+ const codexSkillDirIdx = args.indexOf('--codex-skill-dir');
51
+ const explicitCodexSkillDir = codexSkillDirIdx >= 0
52
+ ? path.resolve(args[codexSkillDirIdx + 1])
53
+ : null;
49
54
  const hooksSrc = path.join(repoRoot, 'hooks');
50
55
  const hooksDst = path.join(claudeHome, 'hooks');
51
56
  const settingsPath = path.join(claudeHome, 'settings.json');
@@ -352,9 +357,37 @@ function registerCowork(version, gitSha) {
352
357
  return bases.length;
353
358
  }
354
359
 
355
- // ── Codex registration (→ <project>/.agents/skills/user/rdc-*/) ─────────────
356
- function registerCodex(codexProjectRoot) {
357
- const targetDir = path.join(codexProjectRoot, '.agents', 'skills', 'user');
360
+ // ── Codex registration (→ Codex skill dirs/rdc-*/) ───────────────────────────
361
+ function addCodexTarget(targets, label, targetDir) {
362
+ if (!targetDir) return;
363
+ const resolved = path.resolve(targetDir);
364
+ if (targets.some(t => t.targetDir.toLowerCase() === resolved.toLowerCase())) return;
365
+ targets.push({ label, targetDir: resolved });
366
+ }
367
+
368
+ function findCodexTargets() {
369
+ const targets = [];
370
+ if (codexRoot) {
371
+ addCodexTarget(targets, 'project .agents', path.join(codexRoot, '.agents', 'skills', 'user'));
372
+ }
373
+ if (explicitCodexSkillDir) {
374
+ addCodexTarget(targets, 'explicit', explicitCodexSkillDir);
375
+ }
376
+
377
+ const codexHomeSkills = path.join(os.homedir(), '.codex', 'skills');
378
+ if (fs.existsSync(codexHomeSkills)) {
379
+ addCodexTarget(targets, 'global .codex', codexHomeSkills);
380
+ }
381
+
382
+ const globalAgentSkills = path.join(os.homedir(), '.agents', 'skills');
383
+ if (fs.existsSync(globalAgentSkills)) {
384
+ addCodexTarget(targets, 'global .agents', globalAgentSkills);
385
+ }
386
+
387
+ return targets;
388
+ }
389
+
390
+ function registerCodexTarget(targetDir) {
358
391
  fs.mkdirSync(targetDir, { recursive: true });
359
392
 
360
393
  // Clean: remove dirs that are rdc skills — by prefix OR by frontmatter name
@@ -630,13 +663,19 @@ async function main() {
630
663
  }
631
664
 
632
665
  // 2.5. Codex registration
633
- if (codexRoot) {
634
- const { removed, copied } = registerCodex(codexRoot);
635
- const codexTarget = path.join(codexRoot, '.agents', 'skills', 'user');
636
- ok(`[2.5] Codex — ${copied} skill(s) installed, ${removed} stale removed`);
637
- info(` target : ${codexTarget}`);
666
+ const codexTargets = findCodexTargets();
667
+ if (codexTargets.length > 0) {
668
+ let copiedTotal = 0;
669
+ let removedTotal = 0;
670
+ for (const target of codexTargets) {
671
+ const { removed, copied } = registerCodexTarget(target.targetDir);
672
+ copiedTotal += copied;
673
+ removedTotal += removed;
674
+ info(` ${target.label.padEnd(15)}: ${target.targetDir} (${copied} installed, ${removed} stale removed)`);
675
+ }
676
+ ok(`[2.5] Codex — ${copiedTotal} skill install(s), ${removedTotal} stale removed across ${codexTargets.length} target(s)`);
638
677
  } else {
639
- info('[2.5] Codex — skipped (no .agents/ found; use --codex-root <path>)');
678
+ info('[2.5] Codex — skipped (no Codex skill dirs found; use --codex-root or --codex-skill-dir)');
640
679
  }
641
680
 
642
681
  // 2.7. Symlinks in regen-root/.claude/skills/ (FS MCP + claude.ai access)
@@ -1,7 +1,6 @@
1
1
  ---
2
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".
3
+ description: "You have a planned epic with tasks ready to execute. Dispatches parallel typed agents, each commits atomically to develop, closes work items, and runs the validator gate. Call after rdc:plan or when told "build it"."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:collab
3
- description: >-
4
- Usage `rdc:collab --session <id>` — bidirectional relay with claude.ai. Read inbox, do work, write outbox, loop. Dave watches terminal and can interject.
3
+ description: "Bidirectional relay with a claude.ai session — read inbox, do work, write outbox, loop. Use when coordinating with a parallel claude.ai conversation."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:deploy
3
- description: >-
4
- Coolify ops. Usage `rdc:deploy <slug> [build-id]` or `rdc:deploy new <slug>` or `rdc:deploy diagnose <slug>` or `rdc:deploy audit [--fix]` — type checklists, DNS decision tree, mandatory post-deploy gate. Checklist-only output.
3
+ description: "Deploy an app to Coolify (production) or PM2 (staging), add a new Coolify app, diagnose a failed deploy, or audit watch paths. Handles DNS, health checks, and post-deploy verification."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:design
3
- description: >-
4
- Usage `rdc:design <command|brief>` — RDC-owned design skill for Studio, Palette Library, token-aware UI work, and Rampa CLI-assisted color systems.
3
+ description: "RDC-owned design work for Studio, Palette Library, and token-aware UI systems. Use for Rampant color work or design-system-first builds owned by the design cell. Not for general UI polish — use impeccable for that."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:fixit
3
- description: >-
4
- Usage `rdc:fixit <description>` — sanctioned bypass for quick fixes under 5 files / 30 min. Creates minimal work item, makes fix, commits, closes. The ONLY alternative to rdc:build. For typos, config patches, hotfixes, dep bumps.
3
+ description: "Quick fix under 5 files / 30 min that does not warrant a full plan→build cycle. Creates a minimal work item, makes the change, commits, closes. The only sanctioned bypass of rdc:build."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:handoff
3
- description: >-
4
- Usage `rdc:handoff <topic>` — structured handoff from planning session to CLI agents. Produces plan doc in .rdc/plans/, work items in DB, prototype registry entry if applicable. Use when plan/prototype is finalized and ready for implementation.
3
+ description: "Convert a finalized plan or prototype into CLI-ready artifacts: writes .rdc/plans/, creates Supabase work items with DoD checklists, registers prototype if present. Bridge between planning session and rdc:build."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:help
3
- description: >-
4
- Usage `rdc:help` or `rdc` — selection menu of all rdc:* skills with their full argument syntax. Use when unsure which command to invoke or what args it takes.
3
+ description: "Show all rdc:* skills with full argument syntax. Call when unsure which skill to use or what args it takes."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:overnight
3
- description: >-
4
- Usage `rdc:overnight [epic-id|label=X]` — unattended overnight supervisor, chains preplan → plan → build → review → report across all high-priority epics in --unattended mode. Use for "run overnight", "build while I sleep".
3
+ description: "Unattended end-to-end: drain the entire work queue autonomously (preplan → plan → build → review → report). Use when leaving Claude to run unsupervised for an extended session."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:plan
3
- description: >-
4
- Usage `rdc:plan <topic> [--unattended]` — architecture doc with design decisions, tradeoffs, work packages. Creates Supabase epics/tasks. Use after rdc:preplan or when given clear architectural direction.
3
+ description: "No epic exists and you need architecture + task breakdown. Produces design decisions, tradeoffs, and Supabase epics/tasks with DoD checklists that feed rdc:build. Use after rdc:preplan or when given clear architectural direction."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:preplan
3
- description: >-
4
- Usage `rdc:preplan <topic> [--unattended]` — research best practices, analyze codebase, compare approaches, surface unknowns before committing to a plan. Produces a research doc. No decisions, no code.
3
+ description: "Before committing to an architecture, research unknowns first. Codebase scan + web search, no code written, no work items created. Output feeds rdc:plan. Use for "how should we approach X" questions."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:prototype
3
- description: >-
4
- Usage `rdc:prototype <description>` — build JSX/TSX prototype for review before CLI handoff. Saves to docs/source/, registers in prototype_registry. Use for "mock this up", "show me what it looks like". Reference material only, not production.
3
+ description: "Build a JSX/TSX mockup for visual review before implementation. Saves to docs/source/, registers in prototype_registry. Use when told "mock this up" or "show me what it looks like". Not production code."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:release
3
- description: >-
4
- Atomic release for ANY LIFEAI repo. Usage `rdc:release <repo> [version]` — one skill, all repos. Known repos: clauth, rdc-skills, regen-root, regen-media, gws. Also promotes individual deployed apps from staging to production: `rdc:release promote <slug>`. Handles npm publish, monorepo develop→main promotion, per-app Coolify gate checks, and MCP server restarts. No user handoff.
3
+ description: "Promote develop→main and deploy to production for any LIFEAI repo (clauth, rdc-skills, regen-root, etc.), or promote a staged app with rdc:release promote <slug>. Requires dev verification first."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:report
3
- description: >-
4
- Usage `rdc:report [--unattended]` — nightly markdown report, writes to .rdc/reports/YYYY-MM-DD.md. Covers completed/open work items, per-project progress, infra status, git stats, test counts.
3
+ description: "Write the nightly session summary to .rdc/reports/YYYY-MM-DD.md covering completed work, open items, per-project progress, and infra status. Call at session end."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:review
3
- description: >-
4
- Usage `rdc:review [--unattended]` — tests, typecheck, stale docs, export conflicts across modified packages. Fixes issues found. Use after a build session or before merging to main.
3
+ description: "Post-build quality gate: tsc, tests, stale docs, export conflicts across modified packages. Fixes what it can automatically, escalates the rest. Call after rdc:build and before merging to main."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:self-test
3
- description: >-
4
- Usage `rdc:self-test [--strict] [--skill <name>] [--json] [--fix] [--tier2] [--parallel <n>] [--quick]` — validates every rdc-*.md skill: frontmatter, Usage marker, name↔filename match, referenced guides/rules/hooks exist, output contract banner, plugin manifest, duplicate-name + collision checks. Tier 1 static lint; Tier 2 behavioral runs via headless claude in isolated worktrees + Supabase branch. Run before every release.
3
+ description: "Validate all rdc:* skills, plugin manifest, and tooling consistency. Use after editing skills, upgrading the plugin, or when a skill behaves unexpectedly."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:status
3
- description: >-
4
- Usage `rdc:status` — open epics, work items by project, Coolify health, blockers, next recommended action. Read-only situational awareness.
3
+ description: "Read-only snapshot of open epics, work items, Coolify health, blockers, and next recommended action. Safe to call anytime. Start here when disoriented or resuming a session."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:watch
3
- description: >-
4
- Usage `rdc:watch` — initialize a session log and open a browser viewer that tails Claude activity live. Zero infra, pure filesystem + static HTML.
3
+ description: "Open a live browser viewer tailing this session's activity. Zero infrastructure — pure filesystem + static HTML."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: rdc:workitems
3
- description: >-
4
- Usage `rdc:workitems <action> [args]` — create, update, query work items via Supabase RPCs. Actions: add, update, done, list, epics. Use for "add to backlog", "mark done", "show open epics", any work item CRUD.
3
+ description: "Manual work item CRUD outside the normal build flow: add to backlog, mark done, update status, list open epics, query by label."
5
4
  ---
6
5
 
7
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`