@lifeaitools/rdc-skills 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rdc",
3
- "version": "0.9.38",
3
+ "version": "0.11.0",
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",
@@ -30,5 +30,908 @@
30
30
  "terminal-config",
31
31
  "watch",
32
32
  "workitems"
33
- ]
33
+ ],
34
+ "skills_meta_schema": {
35
+ "$comment": "Schema for entries in skills_meta. Each skill object has the same shape.",
36
+ "name": "string — skill slug (matches directory name under skills/)",
37
+ "slash": "string — slash-command form, e.g. 'rdc:build'",
38
+ "category": "planning | build | deploy | release | reporting | tooling | infra | dev-loop",
39
+ "usage": "string — single-line invocation example",
40
+ "args": {
41
+ "positional": "array of { name, required, description, accepts }",
42
+ "flags": "array of { name, type, default, description }"
43
+ },
44
+ "requires": "array of capabilities — subset of: supabase, clauth, codeflow, neo4j, github, coolify, pm2, npm, git, codeflow-http, agent-dispatch, work-items-rpc",
45
+ "produces": "array of side effects — subset of: work_items, git_commits, supabase_writes, git_pushes, deploys, npm_publishes, .rdc/plans/, .rdc/reports/, prototype_registry, akg_ingests",
46
+ "default_model": "opus | sonnet | haiku | inherit",
47
+ "triggers": "array of natural-language phrases that should suggest this skill",
48
+ "follows": "array of skill names that typically run before this one",
49
+ "leads_to": "array of skill names that typically run after this one",
50
+ "sandbox_aware": "bool — true if skill honors RDC_TEST=1 short-circuit",
51
+ "output_contract": "string — relative path to the skill's output contract (usually guides/output-contract.md)",
52
+ "enabled_default": "bool — installer default; user can override in settings.json",
53
+ "codeflow_required": "bool — true if the skill MUST consult CodeFlow before acting on the codebase"
54
+ },
55
+ "skills_meta": {
56
+ "build": {
57
+ "name": "build",
58
+ "slash": "rdc:build",
59
+ "category": "build",
60
+ "usage": "rdc:build <epic-id>",
61
+ "args": {
62
+ "positional": [
63
+ {
64
+ "name": "epic-id",
65
+ "required": true,
66
+ "description": "UUID of a work_items epic with todo children",
67
+ "accepts": "uuid"
68
+ }
69
+ ],
70
+ "flags": [
71
+ {
72
+ "name": "--no-review",
73
+ "type": "bool",
74
+ "default": false,
75
+ "description": "Skip the mandatory per-wave code-review gate (NOT recommended)"
76
+ }
77
+ ]
78
+ },
79
+ "requires": [
80
+ "supabase",
81
+ "clauth",
82
+ "codeflow",
83
+ "agent-dispatch",
84
+ "work-items-rpc",
85
+ "git"
86
+ ],
87
+ "produces": [
88
+ "git_commits",
89
+ "work_items",
90
+ "supabase_writes",
91
+ "git_pushes"
92
+ ],
93
+ "default_model": "opus",
94
+ "triggers": [
95
+ "build the epic",
96
+ "execute the plan",
97
+ "dispatch agents",
98
+ "run rdc build"
99
+ ],
100
+ "follows": [
101
+ "plan",
102
+ "handoff"
103
+ ],
104
+ "leads_to": [
105
+ "review",
106
+ "report"
107
+ ],
108
+ "sandbox_aware": true,
109
+ "output_contract": "guides/output-contract.md",
110
+ "enabled_default": true,
111
+ "codeflow_required": true
112
+ },
113
+ "co-develop": {
114
+ "name": "co-develop",
115
+ "slash": "rdc:co-develop",
116
+ "category": "dev-loop",
117
+ "usage": "rdc:co-develop <ask|reply|inbox|start|resume|status>",
118
+ "args": {
119
+ "positional": [
120
+ {
121
+ "name": "subcommand",
122
+ "required": true,
123
+ "description": "Action verb",
124
+ "accepts": "ask | reply | inbox | start | resume | status"
125
+ }
126
+ ],
127
+ "flags": [
128
+ {
129
+ "name": "--wait",
130
+ "type": "bool",
131
+ "default": false,
132
+ "description": "Block until peer responds (default for `ask`)"
133
+ }
134
+ ]
135
+ },
136
+ "requires": [
137
+ "clauth"
138
+ ],
139
+ "produces": [],
140
+ "default_model": "inherit",
141
+ "triggers": [
142
+ "ask codex",
143
+ "send to codex",
144
+ "claude codex co-development",
145
+ "peer-aware delegation"
146
+ ],
147
+ "follows": [],
148
+ "leads_to": [],
149
+ "sandbox_aware": true,
150
+ "output_contract": "guides/output-contract.md",
151
+ "enabled_default": true,
152
+ "codeflow_required": false
153
+ },
154
+ "collab": {
155
+ "name": "collab",
156
+ "slash": "rdc:collab",
157
+ "category": "dev-loop",
158
+ "usage": "rdc:collab --session <session_id>",
159
+ "args": {
160
+ "positional": [],
161
+ "flags": [
162
+ {
163
+ "name": "--session",
164
+ "type": "string",
165
+ "default": null,
166
+ "description": "claude.ai session id to relay with",
167
+ "required": true
168
+ }
169
+ ]
170
+ },
171
+ "requires": [
172
+ "clauth",
173
+ "git"
174
+ ],
175
+ "produces": [
176
+ "git_commits",
177
+ "git_pushes"
178
+ ],
179
+ "default_model": "inherit",
180
+ "triggers": [
181
+ "collab with claude ai",
182
+ "relay session",
183
+ "bidirectional session"
184
+ ],
185
+ "follows": [],
186
+ "leads_to": [],
187
+ "sandbox_aware": true,
188
+ "output_contract": "guides/output-contract.md",
189
+ "enabled_default": true,
190
+ "codeflow_required": true
191
+ },
192
+ "deploy": {
193
+ "name": "deploy",
194
+ "slash": "rdc:deploy",
195
+ "category": "deploy",
196
+ "usage": "rdc:deploy <slug> [new|diagnose|audit] [--fix]",
197
+ "args": {
198
+ "positional": [
199
+ {
200
+ "name": "slug",
201
+ "required": true,
202
+ "description": "app_deployments.app_slug or pm2_name",
203
+ "accepts": "string"
204
+ },
205
+ {
206
+ "name": "action",
207
+ "required": false,
208
+ "description": "Operation kind",
209
+ "accepts": "new | diagnose | audit | (omit for default deploy)"
210
+ }
211
+ ],
212
+ "flags": [
213
+ {
214
+ "name": "--fix",
215
+ "type": "bool",
216
+ "default": false,
217
+ "description": "Apply remediation during diagnose/audit"
218
+ }
219
+ ]
220
+ },
221
+ "requires": [
222
+ "clauth",
223
+ "coolify",
224
+ "pm2",
225
+ "supabase",
226
+ "codeflow"
227
+ ],
228
+ "produces": [
229
+ "deploys",
230
+ "supabase_writes"
231
+ ],
232
+ "default_model": "opus",
233
+ "triggers": [
234
+ "deploy to dev",
235
+ "deploy to coolify",
236
+ "audit watch paths",
237
+ "fix deploy"
238
+ ],
239
+ "follows": [
240
+ "build",
241
+ "review"
242
+ ],
243
+ "leads_to": [
244
+ "release"
245
+ ],
246
+ "sandbox_aware": true,
247
+ "output_contract": "guides/output-contract.md",
248
+ "enabled_default": true,
249
+ "codeflow_required": true
250
+ },
251
+ "design": {
252
+ "name": "design",
253
+ "slash": "rdc:design",
254
+ "category": "build",
255
+ "usage": "rdc:design <topic>",
256
+ "args": {
257
+ "positional": [
258
+ {
259
+ "name": "topic",
260
+ "required": true,
261
+ "description": "Design subject — palette, token system, Studio surface",
262
+ "accepts": "string"
263
+ }
264
+ ],
265
+ "flags": []
266
+ },
267
+ "requires": [
268
+ "supabase",
269
+ "clauth",
270
+ "codeflow",
271
+ "git"
272
+ ],
273
+ "produces": [
274
+ "git_commits",
275
+ "supabase_writes"
276
+ ],
277
+ "default_model": "opus",
278
+ "triggers": [
279
+ "design palette",
280
+ "studio design",
281
+ "token-aware ui",
282
+ "rampant color work"
283
+ ],
284
+ "follows": [],
285
+ "leads_to": [
286
+ "build"
287
+ ],
288
+ "sandbox_aware": true,
289
+ "output_contract": "guides/output-contract.md",
290
+ "enabled_default": true,
291
+ "codeflow_required": true
292
+ },
293
+ "fixit": {
294
+ "name": "fixit",
295
+ "slash": "rdc:fixit",
296
+ "category": "dev-loop",
297
+ "usage": "rdc:fixit <description>",
298
+ "args": {
299
+ "positional": [
300
+ {
301
+ "name": "description",
302
+ "required": true,
303
+ "description": "Short prose description of the fix",
304
+ "accepts": "string"
305
+ }
306
+ ],
307
+ "flags": []
308
+ },
309
+ "requires": [
310
+ "supabase",
311
+ "clauth",
312
+ "codeflow",
313
+ "agent-dispatch",
314
+ "work-items-rpc",
315
+ "git"
316
+ ],
317
+ "produces": [
318
+ "git_commits",
319
+ "work_items",
320
+ "supabase_writes",
321
+ "git_pushes"
322
+ ],
323
+ "default_model": "opus",
324
+ "triggers": [
325
+ "quick fix",
326
+ "small fix",
327
+ "hotfix",
328
+ "typo fix",
329
+ "less than 5 files"
330
+ ],
331
+ "follows": [],
332
+ "leads_to": [],
333
+ "sandbox_aware": true,
334
+ "output_contract": "guides/output-contract.md",
335
+ "enabled_default": true,
336
+ "codeflow_required": true,
337
+ "constraint": "Files touched MUST be < 5 AND time MUST be < 30 min. Otherwise use rdc:plan."
338
+ },
339
+ "fs-mcp": {
340
+ "name": "fs-mcp",
341
+ "slash": "rdc:fs-mcp",
342
+ "category": "tooling",
343
+ "usage": "rdc:fs-mcp <task>",
344
+ "args": {
345
+ "positional": [
346
+ {
347
+ "name": "task",
348
+ "required": true,
349
+ "description": "Free-text task referencing fs_read/fs_write/fs_import_git_files",
350
+ "accepts": "string"
351
+ }
352
+ ],
353
+ "flags": []
354
+ },
355
+ "requires": [
356
+ "clauth"
357
+ ],
358
+ "produces": [],
359
+ "default_model": "inherit",
360
+ "triggers": [
361
+ "file system mcp",
362
+ "fs_read",
363
+ "fs_write",
364
+ "fs_import_git_files",
365
+ "claude.ai filesystem"
366
+ ],
367
+ "follows": [],
368
+ "leads_to": [],
369
+ "sandbox_aware": false,
370
+ "output_contract": "guides/output-contract.md",
371
+ "enabled_default": true,
372
+ "codeflow_required": false
373
+ },
374
+ "handoff": {
375
+ "name": "handoff",
376
+ "slash": "rdc:handoff",
377
+ "category": "planning",
378
+ "usage": "rdc:handoff [--from-prototype <id>]",
379
+ "args": {
380
+ "positional": [],
381
+ "flags": [
382
+ {
383
+ "name": "--from-prototype",
384
+ "type": "string",
385
+ "default": null,
386
+ "description": "prototype_registry id to convert into a plan"
387
+ }
388
+ ]
389
+ },
390
+ "requires": [
391
+ "supabase",
392
+ "clauth",
393
+ "codeflow",
394
+ "work-items-rpc",
395
+ "git"
396
+ ],
397
+ "produces": [
398
+ "work_items",
399
+ "supabase_writes",
400
+ "git_commits",
401
+ ".rdc/plans/",
402
+ "prototype_registry"
403
+ ],
404
+ "default_model": "opus",
405
+ "triggers": [
406
+ "handoff to build",
407
+ "convert prototype to plan",
408
+ "finalize plan"
409
+ ],
410
+ "follows": [
411
+ "plan",
412
+ "prototype"
413
+ ],
414
+ "leads_to": [
415
+ "build"
416
+ ],
417
+ "sandbox_aware": true,
418
+ "output_contract": "guides/output-contract.md",
419
+ "enabled_default": true,
420
+ "codeflow_required": true
421
+ },
422
+ "help": {
423
+ "name": "help",
424
+ "slash": "rdc:help",
425
+ "category": "reporting",
426
+ "usage": "rdc:help",
427
+ "args": {
428
+ "positional": [],
429
+ "flags": []
430
+ },
431
+ "requires": [],
432
+ "produces": [],
433
+ "default_model": "haiku",
434
+ "triggers": [
435
+ "rdc help",
436
+ "what rdc skills exist",
437
+ "list skills"
438
+ ],
439
+ "follows": [],
440
+ "leads_to": [],
441
+ "sandbox_aware": false,
442
+ "output_contract": "guides/output-contract.md",
443
+ "enabled_default": true,
444
+ "codeflow_required": false
445
+ },
446
+ "overnight": {
447
+ "name": "overnight",
448
+ "slash": "rdc:overnight",
449
+ "category": "build",
450
+ "usage": "rdc:overnight [epic-id|label=<label>]",
451
+ "args": {
452
+ "positional": [
453
+ {
454
+ "name": "scope",
455
+ "required": false,
456
+ "description": "Specific epic UUID or label=<labelname> to drain",
457
+ "accepts": "uuid | label=string"
458
+ }
459
+ ],
460
+ "flags": []
461
+ },
462
+ "requires": [
463
+ "supabase",
464
+ "clauth",
465
+ "codeflow",
466
+ "agent-dispatch",
467
+ "work-items-rpc",
468
+ "git"
469
+ ],
470
+ "produces": [
471
+ "git_commits",
472
+ "work_items",
473
+ "supabase_writes",
474
+ "git_pushes",
475
+ ".rdc/reports/"
476
+ ],
477
+ "default_model": "opus",
478
+ "triggers": [
479
+ "unattended build",
480
+ "overnight run",
481
+ "drain queue",
482
+ "let claude run"
483
+ ],
484
+ "follows": [],
485
+ "leads_to": [],
486
+ "sandbox_aware": true,
487
+ "output_contract": "guides/output-contract.md",
488
+ "enabled_default": true,
489
+ "codeflow_required": true
490
+ },
491
+ "plan": {
492
+ "name": "plan",
493
+ "slash": "rdc:plan",
494
+ "category": "planning",
495
+ "usage": "rdc:plan <topic>",
496
+ "args": {
497
+ "positional": [
498
+ {
499
+ "name": "topic",
500
+ "required": true,
501
+ "description": "What you want planned",
502
+ "accepts": "string"
503
+ }
504
+ ],
505
+ "flags": []
506
+ },
507
+ "requires": [
508
+ "supabase",
509
+ "clauth",
510
+ "codeflow",
511
+ "work-items-rpc"
512
+ ],
513
+ "produces": [
514
+ "work_items",
515
+ "supabase_writes",
516
+ ".rdc/plans/"
517
+ ],
518
+ "default_model": "opus",
519
+ "triggers": [
520
+ "plan an epic",
521
+ "break down work",
522
+ "architecture decision",
523
+ "design decisions"
524
+ ],
525
+ "follows": [
526
+ "preplan"
527
+ ],
528
+ "leads_to": [
529
+ "handoff",
530
+ "build"
531
+ ],
532
+ "sandbox_aware": true,
533
+ "output_contract": "guides/output-contract.md",
534
+ "enabled_default": true,
535
+ "codeflow_required": true
536
+ },
537
+ "preplan": {
538
+ "name": "preplan",
539
+ "slash": "rdc:preplan",
540
+ "category": "planning",
541
+ "usage": "rdc:preplan <topic>",
542
+ "args": {
543
+ "positional": [
544
+ {
545
+ "name": "topic",
546
+ "required": true,
547
+ "description": "What you want researched",
548
+ "accepts": "string"
549
+ }
550
+ ],
551
+ "flags": []
552
+ },
553
+ "requires": [
554
+ "codeflow"
555
+ ],
556
+ "produces": [],
557
+ "default_model": "opus",
558
+ "triggers": [
559
+ "research before planning",
560
+ "preplan",
561
+ "research unknowns",
562
+ "what should we use"
563
+ ],
564
+ "follows": [],
565
+ "leads_to": [
566
+ "plan"
567
+ ],
568
+ "sandbox_aware": true,
569
+ "output_contract": "guides/output-contract.md",
570
+ "enabled_default": true,
571
+ "codeflow_required": true
572
+ },
573
+ "prototype": {
574
+ "name": "prototype",
575
+ "slash": "rdc:prototype",
576
+ "category": "build",
577
+ "usage": "rdc:prototype <description>",
578
+ "args": {
579
+ "positional": [
580
+ {
581
+ "name": "description",
582
+ "required": true,
583
+ "description": "What to mock up",
584
+ "accepts": "string"
585
+ }
586
+ ],
587
+ "flags": []
588
+ },
589
+ "requires": [
590
+ "supabase",
591
+ "clauth",
592
+ "codeflow"
593
+ ],
594
+ "produces": [
595
+ "supabase_writes",
596
+ "prototype_registry"
597
+ ],
598
+ "default_model": "opus",
599
+ "triggers": [
600
+ "mock it up",
601
+ "prototype this",
602
+ "show me what it looks like",
603
+ "jsx mockup"
604
+ ],
605
+ "follows": [],
606
+ "leads_to": [
607
+ "handoff",
608
+ "plan"
609
+ ],
610
+ "sandbox_aware": true,
611
+ "output_contract": "guides/output-contract.md",
612
+ "enabled_default": true,
613
+ "codeflow_required": true
614
+ },
615
+ "release": {
616
+ "name": "release",
617
+ "slash": "rdc:release",
618
+ "category": "release",
619
+ "usage": "rdc:release <repo> [version|--patch|--minor|--major|--dry-run]",
620
+ "args": {
621
+ "positional": [
622
+ {
623
+ "name": "repo",
624
+ "required": true,
625
+ "description": "package slug or repo name",
626
+ "accepts": "string"
627
+ },
628
+ {
629
+ "name": "version",
630
+ "required": false,
631
+ "description": "Explicit semver",
632
+ "accepts": "semver"
633
+ }
634
+ ],
635
+ "flags": [
636
+ {
637
+ "name": "--patch",
638
+ "type": "bool",
639
+ "default": false,
640
+ "description": "Bump patch"
641
+ },
642
+ {
643
+ "name": "--minor",
644
+ "type": "bool",
645
+ "default": false,
646
+ "description": "Bump minor"
647
+ },
648
+ {
649
+ "name": "--major",
650
+ "type": "bool",
651
+ "default": false,
652
+ "description": "Bump major"
653
+ },
654
+ {
655
+ "name": "--dry-run",
656
+ "type": "bool",
657
+ "default": false,
658
+ "description": "Show actions without executing"
659
+ }
660
+ ]
661
+ },
662
+ "requires": [
663
+ "clauth",
664
+ "git",
665
+ "npm",
666
+ "coolify"
667
+ ],
668
+ "produces": [
669
+ "git_commits",
670
+ "git_pushes",
671
+ "npm_publishes",
672
+ "deploys"
673
+ ],
674
+ "default_model": "opus",
675
+ "triggers": [
676
+ "promote to production",
677
+ "release the package",
678
+ "push to main",
679
+ "bump version and ship"
680
+ ],
681
+ "follows": [
682
+ "deploy",
683
+ "review"
684
+ ],
685
+ "leads_to": [
686
+ "report"
687
+ ],
688
+ "sandbox_aware": true,
689
+ "output_contract": "guides/output-contract.md",
690
+ "enabled_default": true,
691
+ "codeflow_required": false,
692
+ "production_gate": "Promotion to main/production requires explicit user go-ahead. Dev deploys do not."
693
+ },
694
+ "report": {
695
+ "name": "report",
696
+ "slash": "rdc:report",
697
+ "category": "reporting",
698
+ "usage": "rdc:report",
699
+ "args": {
700
+ "positional": [],
701
+ "flags": []
702
+ },
703
+ "requires": [
704
+ "supabase",
705
+ "clauth",
706
+ "codeflow"
707
+ ],
708
+ "produces": [
709
+ ".rdc/reports/"
710
+ ],
711
+ "default_model": "opus",
712
+ "triggers": [
713
+ "session report",
714
+ "nightly report",
715
+ "summarize work done"
716
+ ],
717
+ "follows": [
718
+ "build",
719
+ "review",
720
+ "deploy",
721
+ "release"
722
+ ],
723
+ "leads_to": [],
724
+ "sandbox_aware": true,
725
+ "output_contract": "guides/output-contract.md",
726
+ "enabled_default": true,
727
+ "codeflow_required": true
728
+ },
729
+ "review": {
730
+ "name": "review",
731
+ "slash": "rdc:review",
732
+ "category": "build",
733
+ "usage": "rdc:review [--unattended]",
734
+ "args": {
735
+ "positional": [],
736
+ "flags": [
737
+ {
738
+ "name": "--unattended",
739
+ "type": "bool",
740
+ "default": false,
741
+ "description": "Auto-fix what is fixable; escalate the rest"
742
+ }
743
+ ]
744
+ },
745
+ "requires": [
746
+ "supabase",
747
+ "clauth",
748
+ "codeflow",
749
+ "agent-dispatch",
750
+ "git"
751
+ ],
752
+ "produces": [
753
+ "git_commits",
754
+ "supabase_writes"
755
+ ],
756
+ "default_model": "opus",
757
+ "triggers": [
758
+ "code review",
759
+ "post-build review",
760
+ "audit the work",
761
+ "tsc check"
762
+ ],
763
+ "follows": [
764
+ "build",
765
+ "fixit"
766
+ ],
767
+ "leads_to": [
768
+ "deploy",
769
+ "release",
770
+ "report"
771
+ ],
772
+ "sandbox_aware": true,
773
+ "output_contract": "guides/output-contract.md",
774
+ "enabled_default": true,
775
+ "codeflow_required": true
776
+ },
777
+ "self-test": {
778
+ "name": "self-test",
779
+ "slash": "rdc:self-test",
780
+ "category": "infra",
781
+ "usage": "rdc:self-test [--strict]",
782
+ "args": {
783
+ "positional": [],
784
+ "flags": [
785
+ {
786
+ "name": "--strict",
787
+ "type": "bool",
788
+ "default": false,
789
+ "description": "Fail on any warning"
790
+ }
791
+ ]
792
+ },
793
+ "requires": [
794
+ "clauth"
795
+ ],
796
+ "produces": [],
797
+ "default_model": "opus",
798
+ "triggers": [
799
+ "self test rdc skills",
800
+ "validate plugin",
801
+ "skill manifest consistency"
802
+ ],
803
+ "follows": [],
804
+ "leads_to": [],
805
+ "sandbox_aware": false,
806
+ "output_contract": "guides/output-contract.md",
807
+ "enabled_default": true,
808
+ "codeflow_required": false
809
+ },
810
+ "status": {
811
+ "name": "status",
812
+ "slash": "rdc:status",
813
+ "category": "reporting",
814
+ "usage": "rdc:status",
815
+ "args": {
816
+ "positional": [],
817
+ "flags": []
818
+ },
819
+ "requires": [
820
+ "supabase",
821
+ "clauth"
822
+ ],
823
+ "produces": [],
824
+ "default_model": "haiku",
825
+ "triggers": [
826
+ "rdc status",
827
+ "what is open",
828
+ "session snapshot",
829
+ "kanban"
830
+ ],
831
+ "follows": [],
832
+ "leads_to": [],
833
+ "sandbox_aware": false,
834
+ "output_contract": "guides/output-contract.md",
835
+ "enabled_default": true,
836
+ "codeflow_required": false
837
+ },
838
+ "terminal-config": {
839
+ "name": "terminal-config",
840
+ "slash": "rdc:terminal-config",
841
+ "category": "infra",
842
+ "usage": "rdc:terminal-config <task>",
843
+ "args": {
844
+ "positional": [
845
+ {
846
+ "name": "task",
847
+ "required": true,
848
+ "description": "Free-text terminal-config task",
849
+ "accepts": "string"
850
+ }
851
+ ],
852
+ "flags": []
853
+ },
854
+ "requires": [
855
+ "git"
856
+ ],
857
+ "produces": [
858
+ "git_commits"
859
+ ],
860
+ "default_model": "opus",
861
+ "triggers": [
862
+ "windows terminal config",
863
+ "shell profile",
864
+ "agent startup order"
865
+ ],
866
+ "follows": [],
867
+ "leads_to": [],
868
+ "sandbox_aware": false,
869
+ "output_contract": "guides/output-contract.md",
870
+ "enabled_default": true,
871
+ "codeflow_required": false
872
+ },
873
+ "watch": {
874
+ "name": "watch",
875
+ "slash": "rdc:watch",
876
+ "category": "reporting",
877
+ "usage": "rdc:watch",
878
+ "args": {
879
+ "positional": [],
880
+ "flags": []
881
+ },
882
+ "requires": [],
883
+ "produces": [],
884
+ "default_model": "haiku",
885
+ "triggers": [
886
+ "watch session",
887
+ "live viewer",
888
+ "watch claude work"
889
+ ],
890
+ "follows": [],
891
+ "leads_to": [],
892
+ "sandbox_aware": false,
893
+ "output_contract": "guides/output-contract.md",
894
+ "enabled_default": true,
895
+ "codeflow_required": false
896
+ },
897
+ "workitems": {
898
+ "name": "workitems",
899
+ "slash": "rdc:workitems",
900
+ "category": "tooling",
901
+ "usage": "rdc:workitems [add|done|status|list|query]",
902
+ "args": {
903
+ "positional": [
904
+ {
905
+ "name": "subcommand",
906
+ "required": false,
907
+ "description": "CRUD verb",
908
+ "accepts": "add | done | status | list | query"
909
+ }
910
+ ],
911
+ "flags": []
912
+ },
913
+ "requires": [
914
+ "supabase",
915
+ "clauth",
916
+ "work-items-rpc"
917
+ ],
918
+ "produces": [
919
+ "work_items",
920
+ "supabase_writes"
921
+ ],
922
+ "default_model": "haiku",
923
+ "triggers": [
924
+ "add work item",
925
+ "close work item",
926
+ "list epics",
927
+ "query by label"
928
+ ],
929
+ "follows": [],
930
+ "leads_to": [],
931
+ "sandbox_aware": true,
932
+ "output_contract": "guides/output-contract.md",
933
+ "enabled_default": true,
934
+ "codeflow_required": false
935
+ }
936
+ }
34
937
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifeaitools/rdc-skills",
3
- "version": "0.10.0",
3
+ "version": "0.12.0",
4
4
  "description": "RDC typed-agent dispatch skill suite for Claude Code - plan, build, review, overnight builds",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -194,11 +194,28 @@ Read the task title and description, then:
194
194
  ### ⛔ Agent Dispatch Non-Negotiable Defaults
195
195
  Every `Agent()` call MUST include these parameters — no exceptions:
196
196
  ```
197
- model: "sonnet"
197
+ model: <chosen per the routing table below>
198
198
  max_turns: 70
199
199
  isolation: "worktree"
200
200
  ```
201
- Agents run Sonnet 4.6 — capable for implementation work, budget-safe for parallel dispatch. The supervisor session model does NOT cascade to agents; you must set it explicitly.
201
+
202
+ **Agent model routing — pick per task, not per wave.** The supervisor session model does NOT cascade to agents; you must set `model` explicitly on every dispatch.
203
+
204
+ | Task character | Model | When to pick it |
205
+ |---|---|---|
206
+ | Updates, edits, mechanical refactors, small fixes, content tweaks, config patches, doc/copy edits, straightforward API wiring | `claude-sonnet-4-6` | Default for `frontend.md`/`content.md`/`infrastructure.md` work whose checklist is mostly "change X to Y" or "wire up endpoint Z". Budget-safe for parallel dispatch. |
207
+ | Harder coding tasks — non-trivial algorithm, migration with backfill, schema reshape, multi-file refactor with subtle invariants, performance-sensitive code, anything where correctness is the bar | `claude-opus-4-6` | Default for `backend.md`/`data.md` work and any `frontend.md` task that involves state machines, race conditions, or cross-package contracts. |
208
+ | Design or innovative thought — new component design, brand/UX work, CS 2.0 paradigm work (HAIL/Quad Pixel/AEMG/Virtue), grammar evolution, architecture-first design, anything where the *shape* of the solution is the deliverable rather than the implementation | `claude-opus-4-8` | Default for `design.md`/`cs2.md` work. Also use for `backend.md`/`data.md` tasks tagged with `architecture` or `design-decision` in work item labels. |
209
+
210
+ **How to choose when the task straddles categories:**
211
+ - If the task's checklist contains the word "design", "decide", "propose", "evaluate alternatives", "novel", or any CS 2.0 primitive → **Opus 4.8**.
212
+ - If the task touches `packages/cs2*`, `packages/hail`, `packages/quad-pixel`, `packages/virtue-engine`, `packages/aemg`, `packages/planetary-ontology`, or `packages/being-state-processor` → **Opus 4.8** (CS 2.0 paradigm requires innovative thought, not transcription).
213
+ - If the task is a Supabase migration that drops/renames/reshapes anything, or a refactor across ≥5 files → **Opus 4.6**.
214
+ - Otherwise → **Sonnet 4.6**.
215
+
216
+ **State the choice in the wave plan.** Before dispatching a wave, the supervisor must log one line per agent in the form `[wave-N agent-K] role=<role> task=<id> model=<chosen> reason=<one phrase>`. This keeps routing decisions reviewable in the transcript and lets `rdc:report` summarize the fleet mix.
217
+
218
+ **Cost guardrail.** If a single wave would dispatch more than 3 Opus 4.8 agents in parallel, downshift the lowest-priority Opus-4.8 tasks to Opus 4.6 unless their work items are tagged `priority=urgent`. Opus 4.8 fast-mode is cheap individually but still ~5× a Sonnet agent at scale.
202
219
  Without `max_turns: 70`, agents hit the default turn cap mid-task and stop.
203
220
  `isolation: "worktree"` gives each agent its own git worktree and branch — eliminates push race conditions and index lock contention when multiple agents commit in parallel. The supervisor merges worktree branches after each wave (Step 9).
204
221
 
@@ -382,5 +399,5 @@ NEVER run pnpm build or pnpm turbo. Use npx vitest run only.
382
399
  - Push after each wave, not just at the end
383
400
  - Unattended: NEVER pause — continue automatically
384
401
  - Unattended: max 2 retries per task before escalating to advisor
385
- - Every Agent() dispatch: `model: "sonnet"` + `max_turns: 70` + `isolation: "worktree"` — non-negotiable (Sonnet agents, Opus supervisor). Exception: validator agent in Step 10 omits isolation.
402
+ - Every Agent() dispatch: `model: <routed>` + `max_turns: 70` + `isolation: "worktree"` — non-negotiable. Model is chosen per task per the routing table in Step 7: Sonnet 4.6 for updates/edits, Opus 4.6 for harder coding, Opus 4.8 for design/innovative thought (CS 2.0, brand/UX, architecture). Supervisor logs `model=<chosen> reason=<phrase>` per agent. Exception: validator agent in Step 10 omits isolation; validator model stays `claude-sonnet-4-6` (verification, not generation).
386
403
  - Finding an existing file is NOT task completion — verify it satisfies the spec
@@ -1,104 +1,99 @@
1
1
  ---
2
2
  name: rdc:help
3
- description: "Usage `rdc:help` — Show all rdc:* skills with full argument syntax. Call when unsure which skill to use or what args it takes."
3
+ description: "Usage `rdc:help` — Show all rdc:* skills with usage, requirements, and codeflow status. Reads `.claude-plugin/plugin.json` skills_meta (single source of truth). Call when unsure which skill to use or what args it takes."
4
4
  ---
5
5
 
6
6
  > **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
7
7
  > Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
8
- > One checklist upfront, updated in place, shown again at end with a 1-line verdict.
9
8
 
10
- # rdc:help — Command Reference
9
+ # rdc:help — Command Reference (manifest-driven)
11
10
 
12
- > **⚠️ HARD OUTPUT RULE:** Your ENTIRE response MUST be the block below, copied verbatim.
13
- > No preamble. No follow-up question. No summary. No "what would you like to do?".
14
- > Do NOT add any text before or after the block. Emit it exactly as written. This is non-negotiable.
11
+ > **⚠️ HARD OUTPUT RULE:** Read the plugin manifest, render the table, exit.
12
+ > No preamble. No follow-up question. No summary.
15
13
 
16
- ## When to Use
14
+ ## Procedure
17
15
 
18
- - The project lead asks what RDC commands exist
19
- - The active task is unclear and needs command selection
20
- - A user needs syntax for planning, build, review, deployment, design, or release workflows
16
+ 1. Resolve the plugin manifest path. Try in order, take the first that exists:
17
+ - `{PLUGIN_ROOT}/.claude-plugin/plugin.json` ← preferred when running from the published plugin
18
+ - `C:/Dev/rdc-skills/.claude-plugin/plugin.json` source-checkout fallback
19
+ - `~/.claude/plugins/cache/rdc-skills/rdc-skills/latest/.claude-plugin/plugin.json` ← installed cache
20
+ 2. Read it. Parse JSON. Read `skills_meta`.
21
+ 3. Group entries by `category` in this order: `planning, build, deploy, release, dev-loop, reporting, tooling, infra`.
22
+ 4. For each entry render one row: `{slash} — {usage} — needs: {requires.join(',')} — cf: {codeflow_required ? 'yes' : 'no'}`.
23
+ 5. Print a Decision Tree at the end that maps natural-language phrases to skills, derived from each entry's `triggers[]`.
24
+ 6. Hard rules section at the bottom (see below — verbatim).
21
25
 
22
- ## Arguments
26
+ ## Required output format
23
27
 
24
- - `rdc:help` — print the full command reference menu
25
- - `rdc` — alias; same as `rdc:help`
26
-
27
- ## Workflow — the RDC loop
28
-
29
- | Command | Usage |
30
- |---|---|
31
- | `rdc:preplan` | `rdc:preplan <topic> [--unattended]` — research, no code |
32
- | `rdc:plan` | `rdc:plan <topic> [--unattended]` — architecture + epic/tasks |
33
- | `rdc:build` | `rdc:build <epic-id\|topic> [--unattended]` — dispatch agents, commit, close items |
34
- | `rdc:review` | `rdc:review [--unattended]` — typecheck, tests, fix, commit |
35
- | `rdc:report` | `rdc:report [--unattended]` — write `.rdc/reports/YYYY-MM-DD.md` |
36
- | `rdc:overnight` | `rdc:overnight [epic-id\|label=X]` — chain preplan→plan→build→review→report |
37
- | `rdc:status` | `rdc:status` — read-only dashboard |
38
- | `rdc:fixit` | `rdc:fixit <description>` — bypass the loop, <5 files / <30 min |
39
-
40
- ## Ops
41
-
42
- | Command | Usage |
43
- |---|---|
44
- | `rdc:deploy` | `rdc:deploy <slug> [build-id]` · `rdc:deploy new <slug>` · `rdc:deploy diagnose <slug>` · `rdc:deploy audit [--fix]` |
45
- | `rdc:release` | `rdc:release <repo> [version]` · `rdc:release <repo> --patch\|--minor\|--major` · `rdc:release <repo> --dry-run` |
46
-
47
- ## Planning ↔ CLI bridge
48
-
49
- | Command | Usage |
50
- |---|---|
51
- | `rdc:handoff` | `rdc:handoff <topic>` — finalize plan → work items for CLI |
52
- | `rdc:prototype` | `rdc:prototype <description>` — JSX mock for review |
53
- | `rdc:workitems` | `rdc:workitems <add\|update\|done\|list\|epics> [args]` |
54
- | `rdc:collab` | `rdc:collab --session <id>` — claude.ai bidirectional relay |
55
- | `rdc:co-develop` | `rdc:co-develop <start\|resume\|send\|poll\|status\|stop>` — Claude/Codex peer-aware co-development |
56
- | `rdc:design` | `rdc:design <command\|brief>` — RDC/Studio design, tokens, palettes, themes, Rampa CLI |
57
-
58
- ## Agent guides (dispatched by rdc:build, not user-invocable)
59
-
60
- These live under `guides/agents/` — they are role playbooks the build skill spawns as sub-agents. You do NOT invoke them directly.
61
-
62
- - `guides/agents/frontend.md` — [agent-only — dispatched by rdc:build, not user-invocable]
63
- - `guides/agents/backend.md` — [agent-only — dispatched by rdc:build, not user-invocable]
64
- - `guides/agents/data.md` — [agent-only — dispatched by rdc:build, not user-invocable]
65
- - `guides/agents/design.md` — [agent-only — dispatched by rdc:build, not user-invocable]
66
- - `guides/agents/infrastructure.md` — [agent-only — dispatched by rdc:build, not user-invocable]
67
- - `guides/agents/content.md` — [agent-only — dispatched by rdc:build, not user-invocable]
68
- - `guides/agents/cs2.md` — [agent-only — dispatched by rdc:build, not user-invocable]
69
- - `guides/agents/viz.md` — [agent-only — dispatched by rdc:build, not user-invocable]
70
- - `guides/agents/setup.md` — [agent-only — dispatched by rdc:build, not user-invocable]
71
- - `guides/agents/verify.md` — [agent-only — dispatched by rdc:build, not user-invocable]
72
-
73
- Each agent reads `.rdc/guides/agent-bootstrap.md` first, then its role guide.
74
-
75
- ## Decision tree
76
-
77
- ```
78
- Project lead says → invoke
79
- ─────────────────────────────────────────────────
80
- "research this" / "how do others do" → rdc:preplan <topic>
81
- "plan this out" / "architect" → rdc:plan <topic>
82
- "build it" / "go" / "execute" → rdc:build <topic>
83
- "run overnight" / "while I sleep" → rdc:overnight
84
- "quick fix" / "hotfix" / "typo" → rdc:fixit <desc>
85
- "review" / "is it clean" → rdc:review
86
- "report" / "summarize" → rdc:report
87
- "status" / "where are we" → rdc:status
88
- "deploy" / "ship" → rdc:deploy <slug>
89
- "release" / "publish" → rdc:release <repo>
90
- "hand this off" / "give to agents" → rdc:handoff
91
- "show me what it looks like" → rdc:prototype
92
- "add to backlog" / "create a ticket" → rdc:workitems
93
- "work together" / "partner review" → rdc:co-develop start <name>
94
- "design/tokens/palette/theme" → rdc:design <command>
95
- "what commands" / "what skills" → rdc:help
96
28
  ```
97
-
98
- ## Hard rules (apply everywhere)
99
-
100
- - NEVER `pnpm build` — crashes the machine. Typecheck with `npx tsc --noEmit`.
29
+ RDC SKILLS — manifest: .claude-plugin/plugin.json @ v{version}
30
+
31
+ ## planning
32
+ /rdc:preplan <topic> needs: codeflow cf: yes
33
+ /rdc:plan <topic> needs: supabase,clauth,codeflow,work-items-rpc cf: yes
34
+ /rdc:handoff [--from-prototype <id>] needs: supabase,clauth,codeflow,work-items-rpc,git cf: yes
35
+
36
+ ## build
37
+ /rdc:build <epic-id> needs: supabase,clauth,codeflow,agent-dispatch,work-items-rpc,git cf: yes
38
+ /rdc:design <topic> needs: supabase,clauth,codeflow,git cf: yes
39
+ /rdc:prototype <desc> needs: supabase,clauth,codeflow cf: yes
40
+ /rdc:overnight [scope] needs: supabase,clauth,codeflow,agent-dispatch,work-items-rpc,git cf: yes
41
+ /rdc:review [--unattended] needs: supabase,clauth,codeflow,agent-dispatch,git cf: yes
42
+
43
+ ## deploy
44
+ /rdc:deploy <slug> [new|diagnose|audit] [--fix] needs: clauth,coolify,pm2,supabase,codeflow cf: yes
45
+
46
+ ## release
47
+ /rdc:release <repo> [version|--patch|--minor|--major|--dry-run] needs: clauth,git,npm,coolify cf: no
48
+ ⚠ Production promotion requires explicit user go-ahead.
49
+
50
+ ## dev-loop
51
+ /rdc:fixit <description> needs: supabase,clauth,codeflow,agent-dispatch,work-items-rpc,git cf: yes
52
+ constraint: < 5 files AND < 30 min — otherwise use /rdc:plan
53
+ /rdc:collab --session <id> needs: clauth,git cf: yes
54
+ /rdc:co-develop <ask|reply|inbox|start|resume|status> needs: clauth cf: no
55
+
56
+ ## reporting
57
+ /rdc:status needs: supabase,clauth cf: no
58
+ /rdc:report needs: supabase,clauth,codeflow cf: yes
59
+ /rdc:watch needs: (none) cf: no
60
+ /rdc:help needs: (none) cf: no
61
+
62
+ ## tooling
63
+ /rdc:workitems [add|done|status|list|query] needs: supabase,clauth,work-items-rpc cf: no
64
+ /rdc:fs-mcp <task> needs: clauth cf: no
65
+
66
+ ## infra
67
+ /rdc:self-test [--strict] needs: clauth cf: no
68
+ /rdc:terminal-config <task> needs: git cf: no
69
+
70
+ ## Decision tree (derived from skills_meta[].triggers)
71
+
72
+ "research before planning" / "what should we use" → /rdc:preplan
73
+ "plan this" / "architecture" / "epic breakdown" → /rdc:plan
74
+ "build the epic" / "execute the plan" / "go" → /rdc:build
75
+ "let claude run" / "overnight" / "drain queue" → /rdc:overnight
76
+ "quick fix" / "typo" / "<5 files" → /rdc:fixit
77
+ "code review" / "audit" / "tsc check" → /rdc:review
78
+ "session report" / "summarize" → /rdc:report
79
+ "where are we" / "snapshot" → /rdc:status
80
+ "deploy to dev" / "audit watch paths" → /rdc:deploy
81
+ "promote" / "push to prod" / "ship" → /rdc:release
82
+ "convert prototype" / "finalize plan" → /rdc:handoff
83
+ "mock it up" / "show me" → /rdc:prototype
84
+ "add work item" / "list epics" → /rdc:workitems
85
+ "ask codex" / "peer-aware" → /rdc:co-develop
86
+ "claude.ai relay" / "collab session" → /rdc:collab
87
+ "palette" / "studio design" / "tokens" → /rdc:design
88
+
89
+ ## Hard rules
90
+
91
+ - `cf: yes` skills MUST consult CodeFlow before acting. Hooks fail-closed on unreachable CodeFlow for these.
92
+ - NEVER `pnpm build` at monorepo level — single scoped builds only.
101
93
  - NEVER commit to `main` without explicit approval. Default branch is `develop`.
102
94
  - NEVER overlap agents on the same files.
103
95
  - ALWAYS update work items in real time via RPCs (see `.claude/rules/work-items-rpc.md`).
104
- - ALWAYS credentials via clauth daemon: `curl -s http://127.0.0.1:52437/v/<service>` (returns plain text).
96
+ - ALWAYS credentials via clauth daemon: `curl -s http://127.0.0.1:52437/v/<service>` (plain text).
97
+ ```
98
+
99
+ > If the manifest file is unreachable, fall back to the static table above (the manifest values it was generated from). Tell the user the fallback was used so they know to investigate.