@proletariat/cli 0.3.70 → 0.3.72

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 (91) hide show
  1. package/dist/commands/action/create.d.ts +6 -2
  2. package/dist/commands/action/create.js +107 -40
  3. package/dist/commands/action/create.js.map +1 -1
  4. package/dist/commands/action/list.d.ts +1 -1
  5. package/dist/commands/action/list.js +12 -10
  6. package/dist/commands/action/list.js.map +1 -1
  7. package/dist/commands/action/run.js +2 -2
  8. package/dist/commands/action/run.js.map +1 -1
  9. package/dist/commands/action/show.js +24 -4
  10. package/dist/commands/action/show.js.map +1 -1
  11. package/dist/commands/action/update.d.ts +6 -2
  12. package/dist/commands/action/update.js +130 -52
  13. package/dist/commands/action/update.js.map +1 -1
  14. package/dist/commands/work/ready.js +4 -2
  15. package/dist/commands/work/ready.js.map +1 -1
  16. package/dist/commands/work/spawn.js +2 -2
  17. package/dist/commands/work/spawn.js.map +1 -1
  18. package/dist/commands/work/start.js +67 -23
  19. package/dist/commands/work/start.js.map +1 -1
  20. package/dist/commands/workflow/setup.d.ts +24 -0
  21. package/dist/commands/workflow/setup.js +346 -0
  22. package/dist/commands/workflow/setup.js.map +1 -0
  23. package/dist/commands/workflow-rule/create.d.ts +19 -0
  24. package/dist/commands/workflow-rule/create.js +140 -0
  25. package/dist/commands/workflow-rule/create.js.map +1 -0
  26. package/dist/commands/workflow-rule/delete.d.ts +18 -0
  27. package/dist/commands/workflow-rule/delete.js +72 -0
  28. package/dist/commands/workflow-rule/delete.js.map +1 -0
  29. package/dist/commands/workflow-rule/index.d.ts +16 -0
  30. package/dist/commands/workflow-rule/index.js +83 -0
  31. package/dist/commands/workflow-rule/index.js.map +1 -0
  32. package/dist/commands/workflow-rule/list.d.ts +17 -0
  33. package/dist/commands/workflow-rule/list.js +72 -0
  34. package/dist/commands/workflow-rule/list.js.map +1 -0
  35. package/dist/commands/workflow-rule/update.d.ts +22 -0
  36. package/dist/commands/workflow-rule/update.js +84 -0
  37. package/dist/commands/workflow-rule/update.js.map +1 -0
  38. package/dist/hooks/init.js +2 -4
  39. package/dist/hooks/init.js.map +1 -1
  40. package/dist/lib/database/drizzle-schema.d.ts +269 -4
  41. package/dist/lib/database/drizzle-schema.js +22 -2
  42. package/dist/lib/database/drizzle-schema.js.map +1 -1
  43. package/dist/lib/database/migrations/0003_actions_redesign.d.ts +15 -0
  44. package/dist/lib/database/migrations/0003_actions_redesign.js +105 -0
  45. package/dist/lib/database/migrations/0003_actions_redesign.js.map +1 -0
  46. package/dist/lib/database/migrations/0004_workflow_rules.d.ts +2 -0
  47. package/dist/lib/database/migrations/0004_workflow_rules.js +25 -0
  48. package/dist/lib/database/migrations/0004_workflow_rules.js.map +1 -0
  49. package/dist/lib/database/migrations/index.js +4 -0
  50. package/dist/lib/database/migrations/index.js.map +1 -1
  51. package/dist/lib/events/events.d.ts +13 -1
  52. package/dist/lib/execution/storage.d.ts +7 -1
  53. package/dist/lib/execution/storage.js +14 -6
  54. package/dist/lib/execution/storage.js.map +1 -1
  55. package/dist/lib/pmo/schema.d.ts +3 -1
  56. package/dist/lib/pmo/schema.js +25 -3
  57. package/dist/lib/pmo/schema.js.map +1 -1
  58. package/dist/lib/pmo/storage/actions.d.ts +5 -3
  59. package/dist/lib/pmo/storage/actions.js +89 -23
  60. package/dist/lib/pmo/storage/actions.js.map +1 -1
  61. package/dist/lib/pmo/storage/base.d.ts +5 -0
  62. package/dist/lib/pmo/storage/base.js +203 -20
  63. package/dist/lib/pmo/storage/base.js.map +1 -1
  64. package/dist/lib/pmo/storage/index.d.ts +9 -2
  65. package/dist/lib/pmo/storage/index.js +28 -3
  66. package/dist/lib/pmo/storage/index.js.map +1 -1
  67. package/dist/lib/pmo/storage/types.d.ts +19 -2
  68. package/dist/lib/pmo/storage/workflow-rules.d.ts +35 -0
  69. package/dist/lib/pmo/storage/workflow-rules.js +183 -0
  70. package/dist/lib/pmo/storage/workflow-rules.js.map +1 -0
  71. package/dist/lib/pmo/sync-manager.js +6 -0
  72. package/dist/lib/pmo/sync-manager.js.map +1 -1
  73. package/dist/lib/pmo/types.d.ts +59 -4
  74. package/dist/lib/pmo/types.js.map +1 -1
  75. package/dist/lib/telemetry/analytics.d.ts +25 -6
  76. package/dist/lib/telemetry/analytics.js +124 -29
  77. package/dist/lib/telemetry/analytics.js.map +1 -1
  78. package/dist/lib/work-lifecycle/action-chaining.d.ts +61 -0
  79. package/dist/lib/work-lifecycle/action-chaining.js +211 -0
  80. package/dist/lib/work-lifecycle/action-chaining.js.map +1 -0
  81. package/dist/lib/work-lifecycle/index.d.ts +3 -0
  82. package/dist/lib/work-lifecycle/index.js +3 -0
  83. package/dist/lib/work-lifecycle/index.js.map +1 -1
  84. package/dist/lib/work-lifecycle/post-execution.d.ts +54 -0
  85. package/dist/lib/work-lifecycle/post-execution.js +68 -0
  86. package/dist/lib/work-lifecycle/post-execution.js.map +1 -0
  87. package/dist/lib/work-lifecycle/rule-evaluator.d.ts +38 -0
  88. package/dist/lib/work-lifecycle/rule-evaluator.js +102 -0
  89. package/dist/lib/work-lifecycle/rule-evaluator.js.map +1 -0
  90. package/oclif.manifest.json +1885 -1394
  91. package/package.json +1 -1
@@ -826,7 +826,7 @@
826
826
  "description": "Create a new work action",
827
827
  "examples": [
828
828
  "<%= config.bin %> <%= command.id %> \"Security Review\" --prompt \"Review for vulnerabilities...\"",
829
- "<%= config.bin %> <%= command.id %> \"Write Docs\" --prompt \"Document this feature...\" --suggested-for completed",
829
+ "<%= config.bin %> <%= command.id %> \"Write Docs\" --prompt \"Document this feature...\" --from-state \"Done\"",
830
830
  "<%= config.bin %> <%= command.id %> # Interactive mode"
831
831
  ],
832
832
  "flags": {
@@ -867,27 +867,65 @@
867
867
  "multiple": false,
868
868
  "type": "option"
869
869
  },
870
- "suggested-for": {
871
- "description": "Categories this action is suggested for (comma-separated)",
872
- "name": "suggested-for",
870
+ "from-state": {
871
+ "description": "State name this action is suggested for (empty = any state)",
872
+ "name": "from-state",
873
873
  "hasDynamicHelp": false,
874
874
  "multiple": false,
875
875
  "type": "option"
876
876
  },
877
- "move-to": {
878
- "description": "Category to move ticket to after action",
879
- "name": "move-to",
877
+ "to-state": {
878
+ "description": "State name to move ticket to after action completes",
879
+ "name": "to-state",
880
+ "hasDynamicHelp": false,
881
+ "multiple": false,
882
+ "type": "option"
883
+ },
884
+ "executor": {
885
+ "description": "Executor to use",
886
+ "name": "executor",
880
887
  "hasDynamicHelp": false,
881
888
  "multiple": false,
882
889
  "options": [
883
- "backlog",
884
- "unstarted",
885
- "started",
886
- "completed",
887
- "canceled"
890
+ "claude",
891
+ "codex",
892
+ "opencode",
893
+ "custom"
894
+ ],
895
+ "type": "option"
896
+ },
897
+ "environment": {
898
+ "description": "Execution environment",
899
+ "name": "environment",
900
+ "hasDynamicHelp": false,
901
+ "multiple": false,
902
+ "options": [
903
+ "devcontainer",
904
+ "docker",
905
+ "host",
906
+ "vm"
907
+ ],
908
+ "type": "option"
909
+ },
910
+ "permission-mode": {
911
+ "description": "Permission mode for the executor",
912
+ "name": "permission-mode",
913
+ "hasDynamicHelp": false,
914
+ "multiple": false,
915
+ "options": [
916
+ "full",
917
+ "readonly",
918
+ "bypassPermissions"
888
919
  ],
889
920
  "type": "option"
890
921
  },
922
+ "model": {
923
+ "description": "Model override (let executor pick default if not set)",
924
+ "name": "model",
925
+ "hasDynamicHelp": false,
926
+ "multiple": false,
927
+ "type": "option"
928
+ },
891
929
  "interactive": {
892
930
  "char": "i",
893
931
  "description": "Interactive mode - prompt for all fields",
@@ -1025,7 +1063,7 @@
1025
1063
  "<%= config.bin %> <%= command.id %>",
1026
1064
  "<%= config.bin %> <%= command.id %> --builtin",
1027
1065
  "<%= config.bin %> <%= command.id %> --custom",
1028
- "<%= config.bin %> <%= command.id %> --suggested-for started"
1066
+ "<%= config.bin %> <%= command.id %> --from-state \"In Progress\""
1029
1067
  ],
1030
1068
  "flags": {
1031
1069
  "project": {
@@ -1067,18 +1105,11 @@
1067
1105
  "allowNo": false,
1068
1106
  "type": "boolean"
1069
1107
  },
1070
- "suggested-for": {
1071
- "description": "Filter to actions suggested for a category",
1072
- "name": "suggested-for",
1108
+ "from-state": {
1109
+ "description": "Filter to actions matching a from_state (includes actions with null from_state)",
1110
+ "name": "from-state",
1073
1111
  "hasDynamicHelp": false,
1074
1112
  "multiple": false,
1075
- "options": [
1076
- "backlog",
1077
- "unstarted",
1078
- "started",
1079
- "completed",
1080
- "canceled"
1081
- ],
1082
1113
  "type": "option"
1083
1114
  }
1084
1115
  },
@@ -1260,6 +1291,7 @@
1260
1291
  "examples": [
1261
1292
  "<%= config.bin %> <%= command.id %> my-action --name \"New Name\"",
1262
1293
  "<%= config.bin %> <%= command.id %> my-action --prompt \"Updated prompt...\"",
1294
+ "<%= config.bin %> <%= command.id %> my-action --from-state \"In Progress\" --to-state \"Done\"",
1263
1295
  "<%= config.bin %> <%= command.id %> my-action # Interactive mode"
1264
1296
  ],
1265
1297
  "flags": {
@@ -1308,28 +1340,65 @@
1308
1340
  "multiple": false,
1309
1341
  "type": "option"
1310
1342
  },
1311
- "suggested-for": {
1312
- "description": "Categories this action is suggested for (comma-separated)",
1313
- "name": "suggested-for",
1343
+ "from-state": {
1344
+ "description": "State name this action is suggested for (empty = any state)",
1345
+ "name": "from-state",
1346
+ "hasDynamicHelp": false,
1347
+ "multiple": false,
1348
+ "type": "option"
1349
+ },
1350
+ "to-state": {
1351
+ "description": "State name to move ticket to after action completes (empty = no move)",
1352
+ "name": "to-state",
1353
+ "hasDynamicHelp": false,
1354
+ "multiple": false,
1355
+ "type": "option"
1356
+ },
1357
+ "executor": {
1358
+ "description": "Executor to use",
1359
+ "name": "executor",
1314
1360
  "hasDynamicHelp": false,
1315
1361
  "multiple": false,
1362
+ "options": [
1363
+ "claude",
1364
+ "codex",
1365
+ "opencode",
1366
+ "custom"
1367
+ ],
1316
1368
  "type": "option"
1317
1369
  },
1318
- "move-to": {
1319
- "description": "Category to move ticket to after action",
1320
- "name": "move-to",
1370
+ "environment": {
1371
+ "description": "Execution environment",
1372
+ "name": "environment",
1321
1373
  "hasDynamicHelp": false,
1322
1374
  "multiple": false,
1323
1375
  "options": [
1324
- "backlog",
1325
- "unstarted",
1326
- "started",
1327
- "completed",
1328
- "canceled",
1329
- ""
1376
+ "devcontainer",
1377
+ "docker",
1378
+ "host",
1379
+ "vm"
1380
+ ],
1381
+ "type": "option"
1382
+ },
1383
+ "permission-mode": {
1384
+ "description": "Permission mode for the executor",
1385
+ "name": "permission-mode",
1386
+ "hasDynamicHelp": false,
1387
+ "multiple": false,
1388
+ "options": [
1389
+ "full",
1390
+ "readonly",
1391
+ "bypassPermissions"
1330
1392
  ],
1331
1393
  "type": "option"
1332
1394
  },
1395
+ "model": {
1396
+ "description": "Model override (empty = let executor pick default)",
1397
+ "name": "model",
1398
+ "hasDynamicHelp": false,
1399
+ "multiple": false,
1400
+ "type": "option"
1401
+ },
1333
1402
  "interactive": {
1334
1403
  "char": "i",
1335
1404
  "description": "Interactive mode - prompt for all fields",
@@ -7127,139 +7196,6 @@
7127
7196
  "remove.js"
7128
7197
  ]
7129
7198
  },
7130
- "monday:connect": {
7131
- "aliases": [],
7132
- "args": {},
7133
- "description": "Connect PRLT to Monday.com and store workspace credentials",
7134
- "examples": [
7135
- "<%= config.bin %> <%= command.id %>",
7136
- "<%= config.bin %> <%= command.id %> --board 1234567890",
7137
- "<%= config.bin %> <%= command.id %> --check",
7138
- "<%= config.bin %> <%= command.id %> --disconnect"
7139
- ],
7140
- "flags": {
7141
- "project": {
7142
- "char": "P",
7143
- "description": "Project ID (uses first project if only one exists)",
7144
- "name": "project",
7145
- "hasDynamicHelp": false,
7146
- "multiple": false,
7147
- "type": "option"
7148
- },
7149
- "json": {
7150
- "description": "Output as JSON for AI agents/scripts",
7151
- "name": "json",
7152
- "allowNo": false,
7153
- "type": "boolean"
7154
- },
7155
- "machine": {
7156
- "char": "m",
7157
- "description": "Output as JSON for AI agents/scripts",
7158
- "name": "machine",
7159
- "allowNo": false,
7160
- "type": "boolean"
7161
- },
7162
- "board": {
7163
- "description": "Monday board ID to sync tickets to",
7164
- "name": "board",
7165
- "hasDynamicHelp": false,
7166
- "multiple": false,
7167
- "type": "option"
7168
- },
7169
- "check": {
7170
- "description": "Only check if Monday configuration is valid",
7171
- "name": "check",
7172
- "allowNo": false,
7173
- "type": "boolean"
7174
- },
7175
- "force": {
7176
- "description": "Force re-authentication even if already configured",
7177
- "name": "force",
7178
- "allowNo": false,
7179
- "type": "boolean"
7180
- },
7181
- "disconnect": {
7182
- "description": "Remove stored Monday credentials",
7183
- "name": "disconnect",
7184
- "allowNo": false,
7185
- "type": "boolean"
7186
- }
7187
- },
7188
- "hasDynamicHelp": false,
7189
- "hiddenAliases": [],
7190
- "id": "monday:connect",
7191
- "pluginAlias": "@proletariat/cli",
7192
- "pluginName": "@proletariat/cli",
7193
- "pluginType": "core",
7194
- "strict": true,
7195
- "isESM": true,
7196
- "relativePath": [
7197
- "dist",
7198
- "commands",
7199
- "monday",
7200
- "connect.js"
7201
- ]
7202
- },
7203
- "monday:sync": {
7204
- "aliases": [],
7205
- "args": {},
7206
- "description": "Sync PMO tickets to Monday.com board items",
7207
- "examples": [
7208
- "<%= config.bin %> <%= command.id %> # Sync project tickets to Monday board",
7209
- "<%= config.bin %> <%= command.id %> --ticket TKT-001 # Sync one ticket",
7210
- "<%= config.bin %> <%= command.id %> --dry-run # Preview sync operations"
7211
- ],
7212
- "flags": {
7213
- "project": {
7214
- "char": "P",
7215
- "description": "Project ID (uses first project if only one exists)",
7216
- "name": "project",
7217
- "hasDynamicHelp": false,
7218
- "multiple": false,
7219
- "type": "option"
7220
- },
7221
- "json": {
7222
- "description": "Output as JSON for AI agents/scripts",
7223
- "name": "json",
7224
- "allowNo": false,
7225
- "type": "boolean"
7226
- },
7227
- "machine": {
7228
- "char": "m",
7229
- "description": "Output as JSON for AI agents/scripts",
7230
- "name": "machine",
7231
- "allowNo": false,
7232
- "type": "boolean"
7233
- },
7234
- "ticket": {
7235
- "description": "PMO ticket ID to sync",
7236
- "name": "ticket",
7237
- "hasDynamicHelp": false,
7238
- "multiple": false,
7239
- "type": "option"
7240
- },
7241
- "dry-run": {
7242
- "description": "Preview what would be synced without writing to Monday",
7243
- "name": "dry-run",
7244
- "allowNo": false,
7245
- "type": "boolean"
7246
- }
7247
- },
7248
- "hasDynamicHelp": false,
7249
- "hiddenAliases": [],
7250
- "id": "monday:sync",
7251
- "pluginAlias": "@proletariat/cli",
7252
- "pluginName": "@proletariat/cli",
7253
- "pluginType": "core",
7254
- "strict": true,
7255
- "isESM": true,
7256
- "relativePath": [
7257
- "dist",
7258
- "commands",
7259
- "monday",
7260
- "sync.js"
7261
- ]
7262
- },
7263
7199
  "media:add": {
7264
7200
  "aliases": [],
7265
7201
  "args": {
@@ -7616,16 +7552,25 @@
7616
7552
  "show.js"
7617
7553
  ]
7618
7554
  },
7619
- "orchestrator:attach": {
7555
+ "monday:connect": {
7620
7556
  "aliases": [],
7621
7557
  "args": {},
7622
- "description": "Attach to the running orchestrator tmux session",
7558
+ "description": "Connect PRLT to Monday.com and store workspace credentials",
7623
7559
  "examples": [
7624
7560
  "<%= config.bin %> <%= command.id %>",
7625
- "<%= config.bin %> <%= command.id %> --new-tab",
7626
- "<%= config.bin %> <%= command.id %> --new-tab --terminal Ghostty"
7561
+ "<%= config.bin %> <%= command.id %> --board 1234567890",
7562
+ "<%= config.bin %> <%= command.id %> --check",
7563
+ "<%= config.bin %> <%= command.id %> --disconnect"
7627
7564
  ],
7628
7565
  "flags": {
7566
+ "project": {
7567
+ "char": "P",
7568
+ "description": "Project ID (uses first project if only one exists)",
7569
+ "name": "project",
7570
+ "hasDynamicHelp": false,
7571
+ "multiple": false,
7572
+ "type": "option"
7573
+ },
7629
7574
  "json": {
7630
7575
  "description": "Output as JSON for AI agents/scripts",
7631
7576
  "name": "json",
@@ -7639,31 +7584,155 @@
7639
7584
  "allowNo": false,
7640
7585
  "type": "boolean"
7641
7586
  },
7642
- "name": {
7643
- "char": "n",
7644
- "description": "Name of the orchestrator session to attach to (default: main)",
7645
- "name": "name",
7587
+ "board": {
7588
+ "description": "Monday board ID to sync tickets to",
7589
+ "name": "board",
7646
7590
  "hasDynamicHelp": false,
7647
7591
  "multiple": false,
7648
7592
  "type": "option"
7649
7593
  },
7650
- "new-tab": {
7651
- "description": "Open in a new terminal tab instead of attaching in the current terminal",
7652
- "name": "new-tab",
7594
+ "check": {
7595
+ "description": "Only check if Monday configuration is valid",
7596
+ "name": "check",
7653
7597
  "allowNo": false,
7654
7598
  "type": "boolean"
7655
7599
  },
7656
- "terminal": {
7657
- "char": "t",
7658
- "description": "Terminal app to use for new tab (iTerm, Terminal, Ghostty). Auto-detected if not specified.",
7659
- "name": "terminal",
7660
- "hasDynamicHelp": false,
7661
- "multiple": false,
7662
- "type": "option"
7600
+ "force": {
7601
+ "description": "Force re-authentication even if already configured",
7602
+ "name": "force",
7603
+ "allowNo": false,
7604
+ "type": "boolean"
7663
7605
  },
7664
- "current-terminal": {
7665
- "char": "c",
7666
- "description": "[deprecated] Attach in current terminal (this is now the default behavior)",
7606
+ "disconnect": {
7607
+ "description": "Remove stored Monday credentials",
7608
+ "name": "disconnect",
7609
+ "allowNo": false,
7610
+ "type": "boolean"
7611
+ }
7612
+ },
7613
+ "hasDynamicHelp": false,
7614
+ "hiddenAliases": [],
7615
+ "id": "monday:connect",
7616
+ "pluginAlias": "@proletariat/cli",
7617
+ "pluginName": "@proletariat/cli",
7618
+ "pluginType": "core",
7619
+ "strict": true,
7620
+ "isESM": true,
7621
+ "relativePath": [
7622
+ "dist",
7623
+ "commands",
7624
+ "monday",
7625
+ "connect.js"
7626
+ ]
7627
+ },
7628
+ "monday:sync": {
7629
+ "aliases": [],
7630
+ "args": {},
7631
+ "description": "Sync PMO tickets to Monday.com board items",
7632
+ "examples": [
7633
+ "<%= config.bin %> <%= command.id %> # Sync project tickets to Monday board",
7634
+ "<%= config.bin %> <%= command.id %> --ticket TKT-001 # Sync one ticket",
7635
+ "<%= config.bin %> <%= command.id %> --dry-run # Preview sync operations"
7636
+ ],
7637
+ "flags": {
7638
+ "project": {
7639
+ "char": "P",
7640
+ "description": "Project ID (uses first project if only one exists)",
7641
+ "name": "project",
7642
+ "hasDynamicHelp": false,
7643
+ "multiple": false,
7644
+ "type": "option"
7645
+ },
7646
+ "json": {
7647
+ "description": "Output as JSON for AI agents/scripts",
7648
+ "name": "json",
7649
+ "allowNo": false,
7650
+ "type": "boolean"
7651
+ },
7652
+ "machine": {
7653
+ "char": "m",
7654
+ "description": "Output as JSON for AI agents/scripts",
7655
+ "name": "machine",
7656
+ "allowNo": false,
7657
+ "type": "boolean"
7658
+ },
7659
+ "ticket": {
7660
+ "description": "PMO ticket ID to sync",
7661
+ "name": "ticket",
7662
+ "hasDynamicHelp": false,
7663
+ "multiple": false,
7664
+ "type": "option"
7665
+ },
7666
+ "dry-run": {
7667
+ "description": "Preview what would be synced without writing to Monday",
7668
+ "name": "dry-run",
7669
+ "allowNo": false,
7670
+ "type": "boolean"
7671
+ }
7672
+ },
7673
+ "hasDynamicHelp": false,
7674
+ "hiddenAliases": [],
7675
+ "id": "monday:sync",
7676
+ "pluginAlias": "@proletariat/cli",
7677
+ "pluginName": "@proletariat/cli",
7678
+ "pluginType": "core",
7679
+ "strict": true,
7680
+ "isESM": true,
7681
+ "relativePath": [
7682
+ "dist",
7683
+ "commands",
7684
+ "monday",
7685
+ "sync.js"
7686
+ ]
7687
+ },
7688
+ "orchestrator:attach": {
7689
+ "aliases": [],
7690
+ "args": {},
7691
+ "description": "Attach to the running orchestrator tmux session",
7692
+ "examples": [
7693
+ "<%= config.bin %> <%= command.id %>",
7694
+ "<%= config.bin %> <%= command.id %> --new-tab",
7695
+ "<%= config.bin %> <%= command.id %> --new-tab --terminal Ghostty"
7696
+ ],
7697
+ "flags": {
7698
+ "json": {
7699
+ "description": "Output as JSON for AI agents/scripts",
7700
+ "name": "json",
7701
+ "allowNo": false,
7702
+ "type": "boolean"
7703
+ },
7704
+ "machine": {
7705
+ "char": "m",
7706
+ "description": "Output as JSON for AI agents/scripts",
7707
+ "name": "machine",
7708
+ "allowNo": false,
7709
+ "type": "boolean"
7710
+ },
7711
+ "name": {
7712
+ "char": "n",
7713
+ "description": "Name of the orchestrator session to attach to (default: main)",
7714
+ "name": "name",
7715
+ "hasDynamicHelp": false,
7716
+ "multiple": false,
7717
+ "type": "option"
7718
+ },
7719
+ "new-tab": {
7720
+ "description": "Open in a new terminal tab instead of attaching in the current terminal",
7721
+ "name": "new-tab",
7722
+ "allowNo": false,
7723
+ "type": "boolean"
7724
+ },
7725
+ "terminal": {
7726
+ "char": "t",
7727
+ "description": "Terminal app to use for new tab (iTerm, Terminal, Ghostty). Auto-detected if not specified.",
7728
+ "name": "terminal",
7729
+ "hasDynamicHelp": false,
7730
+ "multiple": false,
7731
+ "type": "option"
7732
+ },
7733
+ "current-terminal": {
7734
+ "char": "c",
7735
+ "description": "[deprecated] Attach in current terminal (this is now the default behavior)",
7667
7736
  "hidden": true,
7668
7737
  "name": "current-terminal",
7669
7738
  "allowNo": false,
@@ -8461,20 +8530,20 @@
8461
8530
  "init.js"
8462
8531
  ]
8463
8532
  },
8464
- "priority:add": {
8533
+ "pr:checks": {
8465
8534
  "aliases": [],
8466
8535
  "args": {
8467
- "value": {
8468
- "description": "Priority value to add",
8469
- "name": "value",
8470
- "required": true
8536
+ "prNumber": {
8537
+ "description": "PR number (defaults to PR for current branch)",
8538
+ "name": "prNumber",
8539
+ "required": false
8471
8540
  }
8472
8541
  },
8473
- "description": "Add a priority value to the workspace scale",
8542
+ "description": "Show CI check status for a pull request",
8474
8543
  "examples": [
8475
- "<%= config.bin %> <%= command.id %> Critical",
8476
- "<%= config.bin %> <%= command.id %> \"Must Have\" --position 0",
8477
- "<%= config.bin %> <%= command.id %> P4 --after P3"
8544
+ "<%= config.bin %> <%= command.id %>",
8545
+ "<%= config.bin %> <%= command.id %> 123",
8546
+ "<%= config.bin %> <%= command.id %> --json"
8478
8547
  ],
8479
8548
  "flags": {
8480
8549
  "project": {
@@ -8497,28 +8566,11 @@
8497
8566
  "name": "machine",
8498
8567
  "allowNo": false,
8499
8568
  "type": "boolean"
8500
- },
8501
- "position": {
8502
- "description": "Position in the priority scale (0 = highest)",
8503
- "name": "position",
8504
- "hasDynamicHelp": false,
8505
- "multiple": false,
8506
- "type": "option"
8507
- },
8508
- "after": {
8509
- "description": "Insert after this priority value",
8510
- "exclusive": [
8511
- "position"
8512
- ],
8513
- "name": "after",
8514
- "hasDynamicHelp": false,
8515
- "multiple": false,
8516
- "type": "option"
8517
8569
  }
8518
8570
  },
8519
8571
  "hasDynamicHelp": false,
8520
8572
  "hiddenAliases": [],
8521
- "id": "priority:add",
8573
+ "id": "pr:checks",
8522
8574
  "pluginAlias": "@proletariat/cli",
8523
8575
  "pluginName": "@proletariat/cli",
8524
8576
  "pluginType": "core",
@@ -8527,17 +8579,25 @@
8527
8579
  "relativePath": [
8528
8580
  "dist",
8529
8581
  "commands",
8530
- "priority",
8531
- "add.js"
8582
+ "pr",
8583
+ "checks.js"
8532
8584
  ]
8533
8585
  },
8534
- "priority:list": {
8586
+ "pr:create": {
8535
8587
  "aliases": [],
8536
- "args": {},
8537
- "description": "List the workspace priority scale",
8588
+ "args": {
8589
+ "ticketId": {
8590
+ "description": "Ticket ID to link to PR - auto-detects from branch if not provided",
8591
+ "name": "ticketId",
8592
+ "required": false
8593
+ }
8594
+ },
8595
+ "description": "Create a GitHub pull request from the current branch",
8538
8596
  "examples": [
8539
8597
  "<%= config.bin %> <%= command.id %>",
8540
- "<%= config.bin %> <%= command.id %> --json"
8598
+ "<%= config.bin %> <%= command.id %> TKT-001",
8599
+ "<%= config.bin %> <%= command.id %> --draft",
8600
+ "<%= config.bin %> <%= command.id %> --base develop"
8541
8601
  ],
8542
8602
  "flags": {
8543
8603
  "project": {
@@ -8560,11 +8620,54 @@
8560
8620
  "name": "machine",
8561
8621
  "allowNo": false,
8562
8622
  "type": "boolean"
8623
+ },
8624
+ "base": {
8625
+ "char": "b",
8626
+ "description": "Base branch for the PR (defaults to main/master)",
8627
+ "name": "base",
8628
+ "hasDynamicHelp": false,
8629
+ "multiple": false,
8630
+ "type": "option"
8631
+ },
8632
+ "draft": {
8633
+ "char": "d",
8634
+ "description": "Create as draft PR",
8635
+ "name": "draft",
8636
+ "allowNo": false,
8637
+ "type": "boolean"
8638
+ },
8639
+ "no-link": {
8640
+ "description": "Skip linking PR to ticket",
8641
+ "name": "no-link",
8642
+ "allowNo": false,
8643
+ "type": "boolean"
8644
+ },
8645
+ "title": {
8646
+ "char": "t",
8647
+ "description": "PR title (auto-generated from ticket if not provided)",
8648
+ "name": "title",
8649
+ "hasDynamicHelp": false,
8650
+ "multiple": false,
8651
+ "type": "option"
8652
+ },
8653
+ "body": {
8654
+ "description": "PR body/description",
8655
+ "name": "body",
8656
+ "hasDynamicHelp": false,
8657
+ "multiple": false,
8658
+ "type": "option"
8659
+ },
8660
+ "ticket": {
8661
+ "description": "Ticket ID to link (alternative to positional arg)",
8662
+ "name": "ticket",
8663
+ "hasDynamicHelp": false,
8664
+ "multiple": false,
8665
+ "type": "option"
8563
8666
  }
8564
8667
  },
8565
8668
  "hasDynamicHelp": false,
8566
8669
  "hiddenAliases": [],
8567
- "id": "priority:list",
8670
+ "id": "pr:create",
8568
8671
  "pluginAlias": "@proletariat/cli",
8569
8672
  "pluginName": "@proletariat/cli",
8570
8673
  "pluginType": "core",
@@ -8573,23 +8676,16 @@
8573
8676
  "relativePath": [
8574
8677
  "dist",
8575
8678
  "commands",
8576
- "priority",
8577
- "list.js"
8679
+ "pr",
8680
+ "create.js"
8578
8681
  ]
8579
8682
  },
8580
- "priority:remove": {
8683
+ "pr": {
8581
8684
  "aliases": [],
8582
- "args": {
8583
- "value": {
8584
- "description": "Priority value to remove",
8585
- "name": "value",
8586
- "required": true
8587
- }
8588
- },
8589
- "description": "Remove a priority value from the workspace scale",
8685
+ "args": {},
8686
+ "description": "Interactive menu for pull request operations",
8590
8687
  "examples": [
8591
- "<%= config.bin %> <%= command.id %> P3",
8592
- "<%= config.bin %> <%= command.id %> Low"
8688
+ "<%= config.bin %> <%= command.id %>"
8593
8689
  ],
8594
8690
  "flags": {
8595
8691
  "project": {
@@ -8612,11 +8708,27 @@
8612
8708
  "name": "machine",
8613
8709
  "allowNo": false,
8614
8710
  "type": "boolean"
8615
- }
8616
- },
8617
- "hasDynamicHelp": false,
8618
- "hiddenAliases": [],
8619
- "id": "priority:remove",
8711
+ },
8712
+ "action": {
8713
+ "char": "a",
8714
+ "description": "Action to perform (list, create, merge, checks, link, status)",
8715
+ "name": "action",
8716
+ "hasDynamicHelp": false,
8717
+ "multiple": false,
8718
+ "options": [
8719
+ "list",
8720
+ "create",
8721
+ "merge",
8722
+ "checks",
8723
+ "link",
8724
+ "status"
8725
+ ],
8726
+ "type": "option"
8727
+ }
8728
+ },
8729
+ "hasDynamicHelp": false,
8730
+ "hiddenAliases": [],
8731
+ "id": "pr",
8620
8732
  "pluginAlias": "@proletariat/cli",
8621
8733
  "pluginName": "@proletariat/cli",
8622
8734
  "pluginType": "core",
@@ -8625,25 +8737,25 @@
8625
8737
  "relativePath": [
8626
8738
  "dist",
8627
8739
  "commands",
8628
- "priority",
8629
- "remove.js"
8740
+ "pr",
8741
+ "index.js"
8630
8742
  ]
8631
8743
  },
8632
- "priority:set": {
8744
+ "pr:link": {
8633
8745
  "aliases": [],
8634
8746
  "args": {
8635
- "priorities": {
8636
- "description": "Priority values from highest to lowest (space-separated)",
8637
- "name": "priorities",
8747
+ "ticketId": {
8748
+ "description": "Ticket ID to link PR to",
8749
+ "name": "ticketId",
8638
8750
  "required": false
8639
8751
  }
8640
8752
  },
8641
- "description": "Set the workspace priority scale (replaces all existing priorities)",
8753
+ "description": "Link an existing GitHub pull request to a ticket",
8642
8754
  "examples": [
8643
- "<%= config.bin %> <%= command.id %> P0 P1 P2 P3",
8644
- "<%= config.bin %> <%= command.id %> Critical High Medium Low",
8645
- "<%= config.bin %> <%= command.id %> Now Next Later",
8646
- "<%= config.bin %> <%= command.id %> \"Must Have\" \"Should Have\" \"Nice to Have\""
8755
+ "<%= config.bin %> <%= command.id %>",
8756
+ "<%= config.bin %> <%= command.id %> TKT-001",
8757
+ "<%= config.bin %> <%= command.id %> TKT-001 --pr 123",
8758
+ "<%= config.bin %> <%= command.id %> TKT-001 --url https://github.com/owner/repo/pull/123"
8647
8759
  ],
8648
8760
  "flags": {
8649
8761
  "project": {
@@ -8666,36 +8778,62 @@
8666
8778
  "name": "machine",
8667
8779
  "allowNo": false,
8668
8780
  "type": "boolean"
8781
+ },
8782
+ "pr": {
8783
+ "char": "p",
8784
+ "description": "PR number to link",
8785
+ "name": "pr",
8786
+ "hasDynamicHelp": false,
8787
+ "multiple": false,
8788
+ "type": "option"
8789
+ },
8790
+ "url": {
8791
+ "char": "u",
8792
+ "description": "PR URL to link",
8793
+ "name": "url",
8794
+ "hasDynamicHelp": false,
8795
+ "multiple": false,
8796
+ "type": "option"
8797
+ },
8798
+ "ticket": {
8799
+ "description": "Ticket ID to link (alternative to positional arg)",
8800
+ "name": "ticket",
8801
+ "hasDynamicHelp": false,
8802
+ "multiple": false,
8803
+ "type": "option"
8804
+ },
8805
+ "confirm": {
8806
+ "description": "Confirm overwriting existing PR link",
8807
+ "name": "confirm",
8808
+ "allowNo": false,
8809
+ "type": "boolean"
8669
8810
  }
8670
8811
  },
8671
8812
  "hasDynamicHelp": false,
8672
8813
  "hiddenAliases": [],
8673
- "id": "priority:set",
8814
+ "id": "pr:link",
8674
8815
  "pluginAlias": "@proletariat/cli",
8675
8816
  "pluginName": "@proletariat/cli",
8676
8817
  "pluginType": "core",
8677
- "strict": false,
8818
+ "strict": true,
8678
8819
  "isESM": true,
8679
8820
  "relativePath": [
8680
8821
  "dist",
8681
8822
  "commands",
8682
- "priority",
8683
- "set.js"
8823
+ "pr",
8824
+ "link.js"
8684
8825
  ]
8685
8826
  },
8686
- "project:archive": {
8827
+ "pr:list": {
8687
8828
  "aliases": [],
8688
- "args": {
8689
- "id": {
8690
- "description": "Project ID",
8691
- "name": "id",
8692
- "required": true
8693
- }
8694
- },
8695
- "description": "Archive a project (hide from default views)",
8829
+ "args": {},
8830
+ "description": "List pull requests linked to tickets in the workspace",
8696
8831
  "examples": [
8697
- "<%= config.bin %> <%= command.id %> old-project",
8698
- "<%= config.bin %> <%= command.id %> old-project --force"
8832
+ "<%= config.bin %> <%= command.id %>",
8833
+ "<%= config.bin %> <%= command.id %> --state open",
8834
+ "<%= config.bin %> <%= command.id %> --state draft",
8835
+ "<%= config.bin %> <%= command.id %> --format json",
8836
+ "<%= config.bin %> <%= command.id %> --machine"
8699
8837
  ],
8700
8838
  "flags": {
8701
8839
  "project": {
@@ -8719,17 +8857,47 @@
8719
8857
  "allowNo": false,
8720
8858
  "type": "boolean"
8721
8859
  },
8722
- "force": {
8860
+ "state": {
8861
+ "char": "s",
8862
+ "description": "Filter by PR state",
8863
+ "name": "state",
8864
+ "default": "open",
8865
+ "hasDynamicHelp": false,
8866
+ "multiple": false,
8867
+ "options": [
8868
+ "open",
8869
+ "draft",
8870
+ "all"
8871
+ ],
8872
+ "type": "option"
8873
+ },
8874
+ "format": {
8723
8875
  "char": "f",
8724
- "description": "Skip confirmation",
8725
- "name": "force",
8726
- "allowNo": false,
8727
- "type": "boolean"
8876
+ "description": "Output format",
8877
+ "name": "format",
8878
+ "default": "table",
8879
+ "hasDynamicHelp": false,
8880
+ "multiple": false,
8881
+ "options": [
8882
+ "table",
8883
+ "compact",
8884
+ "json"
8885
+ ],
8886
+ "type": "option"
8887
+ },
8888
+ "limit": {
8889
+ "char": "l",
8890
+ "description": "Maximum number of PRs to show",
8891
+ "name": "limit",
8892
+ "default": 50,
8893
+ "hasDynamicHelp": false,
8894
+ "multiple": false,
8895
+ "type": "option"
8728
8896
  }
8729
8897
  },
8730
8898
  "hasDynamicHelp": false,
8731
8899
  "hiddenAliases": [],
8732
- "id": "project:archive",
8900
+ "id": "pr:list",
8733
8901
  "pluginAlias": "@proletariat/cli",
8734
8902
  "pluginName": "@proletariat/cli",
8735
8903
  "pluginType": "core",
@@ -8738,25 +8906,25 @@
8738
8906
  "relativePath": [
8739
8907
  "dist",
8740
8908
  "commands",
8741
- "project",
8742
- "archive.js"
8909
+ "pr",
8910
+ "list.js"
8743
8911
  ]
8744
8912
  },
8745
- "project:create": {
8913
+ "pr:merge": {
8746
8914
  "aliases": [],
8747
8915
  "args": {
8748
- "name": {
8749
- "description": "Project name",
8750
- "name": "name",
8916
+ "prNumber": {
8917
+ "description": "PR number to merge",
8918
+ "name": "prNumber",
8751
8919
  "required": false
8752
8920
  }
8753
8921
  },
8754
- "description": "Create a new project in the PMO",
8922
+ "description": "Merge a GitHub pull request by number",
8755
8923
  "examples": [
8756
- "<%= config.bin %> <%= command.id %> \"My New Project\"",
8757
- "<%= config.bin %> <%= command.id %> --name \"Mobile App\" --description \"iOS and Android app\"",
8758
- "<%= config.bin %> <%= command.id %> -i # Interactive mode",
8759
- "<%= config.bin %> <%= command.id %> --name \"Test\" --dry-run --json # Validate without creating"
8924
+ "<%= config.bin %> <%= command.id %> 123",
8925
+ "<%= config.bin %> <%= command.id %> 123 --method squash",
8926
+ "<%= config.bin %> <%= command.id %> 123 --no-delete-branch",
8927
+ "<%= config.bin %> <%= command.id %> --json"
8760
8928
  ],
8761
8929
  "flags": {
8762
8930
  "project": {
@@ -8780,63 +8948,35 @@
8780
8948
  "allowNo": false,
8781
8949
  "type": "boolean"
8782
8950
  },
8783
- "name": {
8784
- "char": "n",
8785
- "description": "Project name [required for non-interactive]",
8786
- "name": "name",
8787
- "hasDynamicHelp": false,
8788
- "multiple": false,
8789
- "type": "option"
8790
- },
8791
- "id": {
8792
- "description": "Custom project ID (auto-generated from name if not provided)",
8793
- "name": "id",
8794
- "hasDynamicHelp": false,
8795
- "multiple": false,
8796
- "type": "option"
8797
- },
8798
- "description": {
8799
- "char": "d",
8800
- "description": "Project description",
8801
- "name": "description",
8802
- "hasDynamicHelp": false,
8803
- "multiple": false,
8804
- "type": "option"
8805
- },
8806
- "template": {
8807
- "char": "t",
8808
- "description": "Workflow template",
8809
- "name": "template",
8810
- "default": "kanban",
8951
+ "method": {
8952
+ "description": "Merge method",
8953
+ "name": "method",
8954
+ "default": "merge",
8811
8955
  "hasDynamicHelp": false,
8812
8956
  "multiple": false,
8813
8957
  "options": [
8814
- "default",
8815
- "kanban",
8816
- "linear",
8817
- "5-tool-founder",
8818
- "bug-smash",
8819
- "gtm"
8958
+ "merge",
8959
+ "squash",
8960
+ "rebase"
8820
8961
  ],
8821
8962
  "type": "option"
8822
8963
  },
8823
- "interactive": {
8824
- "char": "i",
8825
- "description": "Interactive mode",
8826
- "name": "interactive",
8827
- "allowNo": false,
8964
+ "delete-branch": {
8965
+ "description": "Delete branch after merging",
8966
+ "name": "delete-branch",
8967
+ "allowNo": true,
8828
8968
  "type": "boolean"
8829
8969
  },
8830
- "dry-run": {
8831
- "description": "Validate inputs without creating project (use with --json for structured output)",
8832
- "name": "dry-run",
8970
+ "admin": {
8971
+ "description": "Use admin privileges to bypass branch protections",
8972
+ "name": "admin",
8833
8973
  "allowNo": false,
8834
8974
  "type": "boolean"
8835
8975
  }
8836
8976
  },
8837
8977
  "hasDynamicHelp": false,
8838
8978
  "hiddenAliases": [],
8839
- "id": "project:create",
8979
+ "id": "pr:merge",
8840
8980
  "pluginAlias": "@proletariat/cli",
8841
8981
  "pluginName": "@proletariat/cli",
8842
8982
  "pluginType": "core",
@@ -8845,23 +8985,23 @@
8845
8985
  "relativePath": [
8846
8986
  "dist",
8847
8987
  "commands",
8848
- "project",
8849
- "create.js"
8988
+ "pr",
8989
+ "merge.js"
8850
8990
  ]
8851
8991
  },
8852
- "project:delete": {
8992
+ "pr:status": {
8853
8993
  "aliases": [],
8854
8994
  "args": {
8855
- "id": {
8856
- "description": "Project ID to delete - prompts with dropdown if not provided",
8857
- "name": "id",
8995
+ "ticketId": {
8996
+ "description": "Ticket ID to check PR status for",
8997
+ "name": "ticketId",
8858
8998
  "required": false
8859
8999
  }
8860
9000
  },
8861
- "description": "Delete a project from the PMO",
9001
+ "description": "View PR status for a ticket",
8862
9002
  "examples": [
8863
- "<%= config.bin %> <%= command.id %> my-project",
8864
- "<%= config.bin %> <%= command.id %> my-project --force"
9003
+ "<%= config.bin %> <%= command.id %>",
9004
+ "<%= config.bin %> <%= command.id %> TKT-001"
8865
9005
  ],
8866
9006
  "flags": {
8867
9007
  "project": {
@@ -8885,17 +9025,17 @@
8885
9025
  "allowNo": false,
8886
9026
  "type": "boolean"
8887
9027
  },
8888
- "force": {
8889
- "char": "f",
8890
- "description": "Skip confirmation prompt",
8891
- "name": "force",
8892
- "allowNo": false,
8893
- "type": "boolean"
9028
+ "ticket": {
9029
+ "description": "Ticket ID to check (alternative to positional arg)",
9030
+ "name": "ticket",
9031
+ "hasDynamicHelp": false,
9032
+ "multiple": false,
9033
+ "type": "option"
8894
9034
  }
8895
9035
  },
8896
9036
  "hasDynamicHelp": false,
8897
9037
  "hiddenAliases": [],
8898
- "id": "project:delete",
9038
+ "id": "pr:status",
8899
9039
  "pluginAlias": "@proletariat/cli",
8900
9040
  "pluginName": "@proletariat/cli",
8901
9041
  "pluginType": "core",
@@ -8904,16 +9044,24 @@
8904
9044
  "relativePath": [
8905
9045
  "dist",
8906
9046
  "commands",
8907
- "project",
8908
- "delete.js"
8909
- ]
9047
+ "pr",
9048
+ "status.js"
9049
+ ]
8910
9050
  },
8911
- "project": {
9051
+ "priority:add": {
8912
9052
  "aliases": [],
8913
- "args": {},
8914
- "description": "Interactive menu for project operations",
9053
+ "args": {
9054
+ "value": {
9055
+ "description": "Priority value to add",
9056
+ "name": "value",
9057
+ "required": true
9058
+ }
9059
+ },
9060
+ "description": "Add a priority value to the workspace scale",
8915
9061
  "examples": [
8916
- "<%= config.bin %> <%= command.id %>"
9062
+ "<%= config.bin %> <%= command.id %> Critical",
9063
+ "<%= config.bin %> <%= command.id %> \"Must Have\" --position 0",
9064
+ "<%= config.bin %> <%= command.id %> P4 --after P3"
8917
9065
  ],
8918
9066
  "flags": {
8919
9067
  "project": {
@@ -8936,11 +9084,28 @@
8936
9084
  "name": "machine",
8937
9085
  "allowNo": false,
8938
9086
  "type": "boolean"
9087
+ },
9088
+ "position": {
9089
+ "description": "Position in the priority scale (0 = highest)",
9090
+ "name": "position",
9091
+ "hasDynamicHelp": false,
9092
+ "multiple": false,
9093
+ "type": "option"
9094
+ },
9095
+ "after": {
9096
+ "description": "Insert after this priority value",
9097
+ "exclusive": [
9098
+ "position"
9099
+ ],
9100
+ "name": "after",
9101
+ "hasDynamicHelp": false,
9102
+ "multiple": false,
9103
+ "type": "option"
8939
9104
  }
8940
9105
  },
8941
9106
  "hasDynamicHelp": false,
8942
9107
  "hiddenAliases": [],
8943
- "id": "project",
9108
+ "id": "priority:add",
8944
9109
  "pluginAlias": "@proletariat/cli",
8945
9110
  "pluginName": "@proletariat/cli",
8946
9111
  "pluginType": "core",
@@ -8949,18 +9114,17 @@
8949
9114
  "relativePath": [
8950
9115
  "dist",
8951
9116
  "commands",
8952
- "project",
8953
- "index.js"
9117
+ "priority",
9118
+ "add.js"
8954
9119
  ]
8955
9120
  },
8956
- "project:list": {
9121
+ "priority:list": {
8957
9122
  "aliases": [],
8958
9123
  "args": {},
8959
- "description": "List all projects in the PMO",
9124
+ "description": "List the workspace priority scale",
8960
9125
  "examples": [
8961
9126
  "<%= config.bin %> <%= command.id %>",
8962
- "<%= config.bin %> <%= command.id %> --archived",
8963
- "<%= config.bin %> <%= command.id %> --all"
9127
+ "<%= config.bin %> <%= command.id %> --json"
8964
9128
  ],
8965
9129
  "flags": {
8966
9130
  "project": {
@@ -8983,24 +9147,63 @@
8983
9147
  "name": "machine",
8984
9148
  "allowNo": false,
8985
9149
  "type": "boolean"
9150
+ }
9151
+ },
9152
+ "hasDynamicHelp": false,
9153
+ "hiddenAliases": [],
9154
+ "id": "priority:list",
9155
+ "pluginAlias": "@proletariat/cli",
9156
+ "pluginName": "@proletariat/cli",
9157
+ "pluginType": "core",
9158
+ "strict": true,
9159
+ "isESM": true,
9160
+ "relativePath": [
9161
+ "dist",
9162
+ "commands",
9163
+ "priority",
9164
+ "list.js"
9165
+ ]
9166
+ },
9167
+ "priority:remove": {
9168
+ "aliases": [],
9169
+ "args": {
9170
+ "value": {
9171
+ "description": "Priority value to remove",
9172
+ "name": "value",
9173
+ "required": true
9174
+ }
9175
+ },
9176
+ "description": "Remove a priority value from the workspace scale",
9177
+ "examples": [
9178
+ "<%= config.bin %> <%= command.id %> P3",
9179
+ "<%= config.bin %> <%= command.id %> Low"
9180
+ ],
9181
+ "flags": {
9182
+ "project": {
9183
+ "char": "P",
9184
+ "description": "Project ID (uses first project if only one exists)",
9185
+ "name": "project",
9186
+ "hasDynamicHelp": false,
9187
+ "multiple": false,
9188
+ "type": "option"
8986
9189
  },
8987
- "archived": {
8988
- "char": "a",
8989
- "description": "Show only archived projects",
8990
- "name": "archived",
9190
+ "json": {
9191
+ "description": "Output as JSON for AI agents/scripts",
9192
+ "name": "json",
8991
9193
  "allowNo": false,
8992
9194
  "type": "boolean"
8993
9195
  },
8994
- "all": {
8995
- "description": "Show all projects (including archived)",
8996
- "name": "all",
9196
+ "machine": {
9197
+ "char": "m",
9198
+ "description": "Output as JSON for AI agents/scripts",
9199
+ "name": "machine",
8997
9200
  "allowNo": false,
8998
9201
  "type": "boolean"
8999
9202
  }
9000
9203
  },
9001
9204
  "hasDynamicHelp": false,
9002
9205
  "hiddenAliases": [],
9003
- "id": "project:list",
9206
+ "id": "priority:remove",
9004
9207
  "pluginAlias": "@proletariat/cli",
9005
9208
  "pluginName": "@proletariat/cli",
9006
9209
  "pluginType": "core",
@@ -9009,25 +9212,25 @@
9009
9212
  "relativePath": [
9010
9213
  "dist",
9011
9214
  "commands",
9012
- "project",
9013
- "list.js"
9215
+ "priority",
9216
+ "remove.js"
9014
9217
  ]
9015
9218
  },
9016
- "project:spec": {
9219
+ "priority:set": {
9017
9220
  "aliases": [],
9018
9221
  "args": {
9019
- "projectId": {
9020
- "description": "Project ID",
9021
- "name": "projectId",
9222
+ "priorities": {
9223
+ "description": "Priority values from highest to lowest (space-separated)",
9224
+ "name": "priorities",
9022
9225
  "required": false
9023
9226
  }
9024
9227
  },
9025
- "description": "Manage specs associated with a project (many-to-many)",
9228
+ "description": "Set the workspace priority scale (replaces all existing priorities)",
9026
9229
  "examples": [
9027
- "<%= config.bin %> <%= command.id %> my-project",
9028
- "<%= config.bin %> <%= command.id %> my-project --add SPEC-001",
9029
- "<%= config.bin %> <%= command.id %> my-project --remove SPEC-001",
9030
- "<%= config.bin %> <%= command.id %>"
9230
+ "<%= config.bin %> <%= command.id %> P0 P1 P2 P3",
9231
+ "<%= config.bin %> <%= command.id %> Critical High Medium Low",
9232
+ "<%= config.bin %> <%= command.id %> Now Next Later",
9233
+ "<%= config.bin %> <%= command.id %> \"Must Have\" \"Should Have\" \"Nice to Have\""
9031
9234
  ],
9032
9235
  "flags": {
9033
9236
  "project": {
@@ -9050,40 +9253,24 @@
9050
9253
  "name": "machine",
9051
9254
  "allowNo": false,
9052
9255
  "type": "boolean"
9053
- },
9054
- "add": {
9055
- "char": "a",
9056
- "description": "Add a spec to this project",
9057
- "name": "add",
9058
- "hasDynamicHelp": false,
9059
- "multiple": false,
9060
- "type": "option"
9061
- },
9062
- "remove": {
9063
- "char": "r",
9064
- "description": "Remove a spec from this project",
9065
- "name": "remove",
9066
- "hasDynamicHelp": false,
9067
- "multiple": false,
9068
- "type": "option"
9069
9256
  }
9070
9257
  },
9071
9258
  "hasDynamicHelp": false,
9072
9259
  "hiddenAliases": [],
9073
- "id": "project:spec",
9260
+ "id": "priority:set",
9074
9261
  "pluginAlias": "@proletariat/cli",
9075
9262
  "pluginName": "@proletariat/cli",
9076
9263
  "pluginType": "core",
9077
- "strict": true,
9264
+ "strict": false,
9078
9265
  "isESM": true,
9079
9266
  "relativePath": [
9080
9267
  "dist",
9081
9268
  "commands",
9082
- "project",
9083
- "spec.js"
9269
+ "priority",
9270
+ "set.js"
9084
9271
  ]
9085
9272
  },
9086
- "project:unarchive": {
9273
+ "project:archive": {
9087
9274
  "aliases": [],
9088
9275
  "args": {
9089
9276
  "id": {
@@ -9092,9 +9279,10 @@
9092
9279
  "required": true
9093
9280
  }
9094
9281
  },
9095
- "description": "Unarchive a project (restore to default views)",
9282
+ "description": "Archive a project (hide from default views)",
9096
9283
  "examples": [
9097
- "<%= config.bin %> <%= command.id %> old-project"
9284
+ "<%= config.bin %> <%= command.id %> old-project",
9285
+ "<%= config.bin %> <%= command.id %> old-project --force"
9098
9286
  ],
9099
9287
  "flags": {
9100
9288
  "project": {
@@ -9117,11 +9305,18 @@
9117
9305
  "name": "machine",
9118
9306
  "allowNo": false,
9119
9307
  "type": "boolean"
9308
+ },
9309
+ "force": {
9310
+ "char": "f",
9311
+ "description": "Skip confirmation",
9312
+ "name": "force",
9313
+ "allowNo": false,
9314
+ "type": "boolean"
9120
9315
  }
9121
9316
  },
9122
9317
  "hasDynamicHelp": false,
9123
9318
  "hiddenAliases": [],
9124
- "id": "project:unarchive",
9319
+ "id": "project:archive",
9125
9320
  "pluginAlias": "@proletariat/cli",
9126
9321
  "pluginName": "@proletariat/cli",
9127
9322
  "pluginType": "core",
@@ -9131,24 +9326,24 @@
9131
9326
  "dist",
9132
9327
  "commands",
9133
9328
  "project",
9134
- "unarchive.js"
9329
+ "archive.js"
9135
9330
  ]
9136
9331
  },
9137
- "project:update": {
9332
+ "project:create": {
9138
9333
  "aliases": [],
9139
9334
  "args": {
9140
- "id": {
9141
- "description": "Project ID or name",
9142
- "name": "id",
9335
+ "name": {
9336
+ "description": "Project name",
9337
+ "name": "name",
9143
9338
  "required": false
9144
9339
  }
9145
9340
  },
9146
- "description": "Update project metadata (name, description)",
9341
+ "description": "Create a new project in the PMO",
9147
9342
  "examples": [
9148
- "<%= config.bin %> <%= command.id %> my-project --name \"New Project Name\"",
9149
- "<%= config.bin %> <%= command.id %> my-project --description \"Updated description\"",
9150
- "<%= config.bin %> <%= command.id %> my-project --name \"New Name\" --description \"New description\"",
9151
- "<%= config.bin %> <%= command.id %> my-project # Interactive mode"
9343
+ "<%= config.bin %> <%= command.id %> \"My New Project\"",
9344
+ "<%= config.bin %> <%= command.id %> --name \"Mobile App\" --description \"iOS and Android app\"",
9345
+ "<%= config.bin %> <%= command.id %> -i # Interactive mode",
9346
+ "<%= config.bin %> <%= command.id %> --name \"Test\" --dry-run --json # Validate without creating"
9152
9347
  ],
9153
9348
  "flags": {
9154
9349
  "project": {
@@ -9174,24 +9369,61 @@
9174
9369
  },
9175
9370
  "name": {
9176
9371
  "char": "n",
9177
- "description": "New project name",
9372
+ "description": "Project name [required for non-interactive]",
9178
9373
  "name": "name",
9179
9374
  "hasDynamicHelp": false,
9180
9375
  "multiple": false,
9181
9376
  "type": "option"
9182
9377
  },
9378
+ "id": {
9379
+ "description": "Custom project ID (auto-generated from name if not provided)",
9380
+ "name": "id",
9381
+ "hasDynamicHelp": false,
9382
+ "multiple": false,
9383
+ "type": "option"
9384
+ },
9183
9385
  "description": {
9184
9386
  "char": "d",
9185
- "description": "New project description",
9387
+ "description": "Project description",
9186
9388
  "name": "description",
9187
9389
  "hasDynamicHelp": false,
9188
9390
  "multiple": false,
9189
9391
  "type": "option"
9392
+ },
9393
+ "template": {
9394
+ "char": "t",
9395
+ "description": "Workflow template",
9396
+ "name": "template",
9397
+ "default": "kanban",
9398
+ "hasDynamicHelp": false,
9399
+ "multiple": false,
9400
+ "options": [
9401
+ "default",
9402
+ "kanban",
9403
+ "linear",
9404
+ "5-tool-founder",
9405
+ "bug-smash",
9406
+ "gtm"
9407
+ ],
9408
+ "type": "option"
9409
+ },
9410
+ "interactive": {
9411
+ "char": "i",
9412
+ "description": "Interactive mode",
9413
+ "name": "interactive",
9414
+ "allowNo": false,
9415
+ "type": "boolean"
9416
+ },
9417
+ "dry-run": {
9418
+ "description": "Validate inputs without creating project (use with --json for structured output)",
9419
+ "name": "dry-run",
9420
+ "allowNo": false,
9421
+ "type": "boolean"
9190
9422
  }
9191
9423
  },
9192
9424
  "hasDynamicHelp": false,
9193
9425
  "hiddenAliases": [],
9194
- "id": "project:update",
9426
+ "id": "project:create",
9195
9427
  "pluginAlias": "@proletariat/cli",
9196
9428
  "pluginName": "@proletariat/cli",
9197
9429
  "pluginType": "core",
@@ -9201,22 +9433,22 @@
9201
9433
  "dist",
9202
9434
  "commands",
9203
9435
  "project",
9204
- "update.js"
9436
+ "create.js"
9205
9437
  ]
9206
9438
  },
9207
- "project:view": {
9439
+ "project:delete": {
9208
9440
  "aliases": [],
9209
9441
  "args": {
9210
9442
  "id": {
9211
- "description": "Project ID to view - prompts with dropdown if not provided",
9443
+ "description": "Project ID to delete - prompts with dropdown if not provided",
9212
9444
  "name": "id",
9213
9445
  "required": false
9214
9446
  }
9215
9447
  },
9216
- "description": "View a project's board",
9448
+ "description": "Delete a project from the PMO",
9217
9449
  "examples": [
9218
9450
  "<%= config.bin %> <%= command.id %> my-project",
9219
- "<%= config.bin %> <%= command.id %> # Views default project"
9451
+ "<%= config.bin %> <%= command.id %> my-project --force"
9220
9452
  ],
9221
9453
  "flags": {
9222
9454
  "project": {
@@ -9239,11 +9471,18 @@
9239
9471
  "name": "machine",
9240
9472
  "allowNo": false,
9241
9473
  "type": "boolean"
9474
+ },
9475
+ "force": {
9476
+ "char": "f",
9477
+ "description": "Skip confirmation prompt",
9478
+ "name": "force",
9479
+ "allowNo": false,
9480
+ "type": "boolean"
9242
9481
  }
9243
9482
  },
9244
9483
  "hasDynamicHelp": false,
9245
9484
  "hiddenAliases": [],
9246
- "id": "project:view",
9485
+ "id": "project:delete",
9247
9486
  "pluginAlias": "@proletariat/cli",
9248
9487
  "pluginName": "@proletariat/cli",
9249
9488
  "pluginType": "core",
@@ -9253,23 +9492,15 @@
9253
9492
  "dist",
9254
9493
  "commands",
9255
9494
  "project",
9256
- "view.js"
9495
+ "delete.js"
9257
9496
  ]
9258
9497
  },
9259
- "pr:checks": {
9498
+ "project": {
9260
9499
  "aliases": [],
9261
- "args": {
9262
- "prNumber": {
9263
- "description": "PR number (defaults to PR for current branch)",
9264
- "name": "prNumber",
9265
- "required": false
9266
- }
9267
- },
9268
- "description": "Show CI check status for a pull request",
9500
+ "args": {},
9501
+ "description": "Interactive menu for project operations",
9269
9502
  "examples": [
9270
- "<%= config.bin %> <%= command.id %>",
9271
- "<%= config.bin %> <%= command.id %> 123",
9272
- "<%= config.bin %> <%= command.id %> --json"
9503
+ "<%= config.bin %> <%= command.id %>"
9273
9504
  ],
9274
9505
  "flags": {
9275
9506
  "project": {
@@ -9296,7 +9527,7 @@
9296
9527
  },
9297
9528
  "hasDynamicHelp": false,
9298
9529
  "hiddenAliases": [],
9299
- "id": "pr:checks",
9530
+ "id": "project",
9300
9531
  "pluginAlias": "@proletariat/cli",
9301
9532
  "pluginName": "@proletariat/cli",
9302
9533
  "pluginType": "core",
@@ -9305,25 +9536,18 @@
9305
9536
  "relativePath": [
9306
9537
  "dist",
9307
9538
  "commands",
9308
- "pr",
9309
- "checks.js"
9539
+ "project",
9540
+ "index.js"
9310
9541
  ]
9311
9542
  },
9312
- "pr:create": {
9543
+ "project:list": {
9313
9544
  "aliases": [],
9314
- "args": {
9315
- "ticketId": {
9316
- "description": "Ticket ID to link to PR - auto-detects from branch if not provided",
9317
- "name": "ticketId",
9318
- "required": false
9319
- }
9320
- },
9321
- "description": "Create a GitHub pull request from the current branch",
9545
+ "args": {},
9546
+ "description": "List all projects in the PMO",
9322
9547
  "examples": [
9323
9548
  "<%= config.bin %> <%= command.id %>",
9324
- "<%= config.bin %> <%= command.id %> TKT-001",
9325
- "<%= config.bin %> <%= command.id %> --draft",
9326
- "<%= config.bin %> <%= command.id %> --base develop"
9549
+ "<%= config.bin %> <%= command.id %> --archived",
9550
+ "<%= config.bin %> <%= command.id %> --all"
9327
9551
  ],
9328
9552
  "flags": {
9329
9553
  "project": {
@@ -9347,53 +9571,23 @@
9347
9571
  "allowNo": false,
9348
9572
  "type": "boolean"
9349
9573
  },
9350
- "base": {
9351
- "char": "b",
9352
- "description": "Base branch for the PR (defaults to main/master)",
9353
- "name": "base",
9354
- "hasDynamicHelp": false,
9355
- "multiple": false,
9356
- "type": "option"
9357
- },
9358
- "draft": {
9359
- "char": "d",
9360
- "description": "Create as draft PR",
9361
- "name": "draft",
9574
+ "archived": {
9575
+ "char": "a",
9576
+ "description": "Show only archived projects",
9577
+ "name": "archived",
9362
9578
  "allowNo": false,
9363
9579
  "type": "boolean"
9364
9580
  },
9365
- "no-link": {
9366
- "description": "Skip linking PR to ticket",
9367
- "name": "no-link",
9581
+ "all": {
9582
+ "description": "Show all projects (including archived)",
9583
+ "name": "all",
9368
9584
  "allowNo": false,
9369
9585
  "type": "boolean"
9370
- },
9371
- "title": {
9372
- "char": "t",
9373
- "description": "PR title (auto-generated from ticket if not provided)",
9374
- "name": "title",
9375
- "hasDynamicHelp": false,
9376
- "multiple": false,
9377
- "type": "option"
9378
- },
9379
- "body": {
9380
- "description": "PR body/description",
9381
- "name": "body",
9382
- "hasDynamicHelp": false,
9383
- "multiple": false,
9384
- "type": "option"
9385
- },
9386
- "ticket": {
9387
- "description": "Ticket ID to link (alternative to positional arg)",
9388
- "name": "ticket",
9389
- "hasDynamicHelp": false,
9390
- "multiple": false,
9391
- "type": "option"
9392
9586
  }
9393
9587
  },
9394
9588
  "hasDynamicHelp": false,
9395
9589
  "hiddenAliases": [],
9396
- "id": "pr:create",
9590
+ "id": "project:list",
9397
9591
  "pluginAlias": "@proletariat/cli",
9398
9592
  "pluginName": "@proletariat/cli",
9399
9593
  "pluginType": "core",
@@ -9402,15 +9596,24 @@
9402
9596
  "relativePath": [
9403
9597
  "dist",
9404
9598
  "commands",
9405
- "pr",
9406
- "create.js"
9599
+ "project",
9600
+ "list.js"
9407
9601
  ]
9408
9602
  },
9409
- "pr": {
9603
+ "project:spec": {
9410
9604
  "aliases": [],
9411
- "args": {},
9412
- "description": "Interactive menu for pull request operations",
9605
+ "args": {
9606
+ "projectId": {
9607
+ "description": "Project ID",
9608
+ "name": "projectId",
9609
+ "required": false
9610
+ }
9611
+ },
9612
+ "description": "Manage specs associated with a project (many-to-many)",
9413
9613
  "examples": [
9614
+ "<%= config.bin %> <%= command.id %> my-project",
9615
+ "<%= config.bin %> <%= command.id %> my-project --add SPEC-001",
9616
+ "<%= config.bin %> <%= command.id %> my-project --remove SPEC-001",
9414
9617
  "<%= config.bin %> <%= command.id %>"
9415
9618
  ],
9416
9619
  "flags": {
@@ -9435,26 +9638,26 @@
9435
9638
  "allowNo": false,
9436
9639
  "type": "boolean"
9437
9640
  },
9438
- "action": {
9641
+ "add": {
9439
9642
  "char": "a",
9440
- "description": "Action to perform (list, create, merge, checks, link, status)",
9441
- "name": "action",
9643
+ "description": "Add a spec to this project",
9644
+ "name": "add",
9645
+ "hasDynamicHelp": false,
9646
+ "multiple": false,
9647
+ "type": "option"
9648
+ },
9649
+ "remove": {
9650
+ "char": "r",
9651
+ "description": "Remove a spec from this project",
9652
+ "name": "remove",
9442
9653
  "hasDynamicHelp": false,
9443
9654
  "multiple": false,
9444
- "options": [
9445
- "list",
9446
- "create",
9447
- "merge",
9448
- "checks",
9449
- "link",
9450
- "status"
9451
- ],
9452
9655
  "type": "option"
9453
9656
  }
9454
9657
  },
9455
9658
  "hasDynamicHelp": false,
9456
9659
  "hiddenAliases": [],
9457
- "id": "pr",
9660
+ "id": "project:spec",
9458
9661
  "pluginAlias": "@proletariat/cli",
9459
9662
  "pluginName": "@proletariat/cli",
9460
9663
  "pluginType": "core",
@@ -9463,25 +9666,22 @@
9463
9666
  "relativePath": [
9464
9667
  "dist",
9465
9668
  "commands",
9466
- "pr",
9467
- "index.js"
9669
+ "project",
9670
+ "spec.js"
9468
9671
  ]
9469
9672
  },
9470
- "pr:link": {
9673
+ "project:unarchive": {
9471
9674
  "aliases": [],
9472
9675
  "args": {
9473
- "ticketId": {
9474
- "description": "Ticket ID to link PR to",
9475
- "name": "ticketId",
9476
- "required": false
9676
+ "id": {
9677
+ "description": "Project ID",
9678
+ "name": "id",
9679
+ "required": true
9477
9680
  }
9478
9681
  },
9479
- "description": "Link an existing GitHub pull request to a ticket",
9682
+ "description": "Unarchive a project (restore to default views)",
9480
9683
  "examples": [
9481
- "<%= config.bin %> <%= command.id %>",
9482
- "<%= config.bin %> <%= command.id %> TKT-001",
9483
- "<%= config.bin %> <%= command.id %> TKT-001 --pr 123",
9484
- "<%= config.bin %> <%= command.id %> TKT-001 --url https://github.com/owner/repo/pull/123"
9684
+ "<%= config.bin %> <%= command.id %> old-project"
9485
9685
  ],
9486
9686
  "flags": {
9487
9687
  "project": {
@@ -9504,40 +9704,11 @@
9504
9704
  "name": "machine",
9505
9705
  "allowNo": false,
9506
9706
  "type": "boolean"
9507
- },
9508
- "pr": {
9509
- "char": "p",
9510
- "description": "PR number to link",
9511
- "name": "pr",
9512
- "hasDynamicHelp": false,
9513
- "multiple": false,
9514
- "type": "option"
9515
- },
9516
- "url": {
9517
- "char": "u",
9518
- "description": "PR URL to link",
9519
- "name": "url",
9520
- "hasDynamicHelp": false,
9521
- "multiple": false,
9522
- "type": "option"
9523
- },
9524
- "ticket": {
9525
- "description": "Ticket ID to link (alternative to positional arg)",
9526
- "name": "ticket",
9527
- "hasDynamicHelp": false,
9528
- "multiple": false,
9529
- "type": "option"
9530
- },
9531
- "confirm": {
9532
- "description": "Confirm overwriting existing PR link",
9533
- "name": "confirm",
9534
- "allowNo": false,
9535
- "type": "boolean"
9536
9707
  }
9537
9708
  },
9538
9709
  "hasDynamicHelp": false,
9539
9710
  "hiddenAliases": [],
9540
- "id": "pr:link",
9711
+ "id": "project:unarchive",
9541
9712
  "pluginAlias": "@proletariat/cli",
9542
9713
  "pluginName": "@proletariat/cli",
9543
9714
  "pluginType": "core",
@@ -9546,20 +9717,25 @@
9546
9717
  "relativePath": [
9547
9718
  "dist",
9548
9719
  "commands",
9549
- "pr",
9550
- "link.js"
9720
+ "project",
9721
+ "unarchive.js"
9551
9722
  ]
9552
9723
  },
9553
- "pr:list": {
9724
+ "project:update": {
9554
9725
  "aliases": [],
9555
- "args": {},
9556
- "description": "List pull requests linked to tickets in the workspace",
9726
+ "args": {
9727
+ "id": {
9728
+ "description": "Project ID or name",
9729
+ "name": "id",
9730
+ "required": false
9731
+ }
9732
+ },
9733
+ "description": "Update project metadata (name, description)",
9557
9734
  "examples": [
9558
- "<%= config.bin %> <%= command.id %>",
9559
- "<%= config.bin %> <%= command.id %> --state open",
9560
- "<%= config.bin %> <%= command.id %> --state draft",
9561
- "<%= config.bin %> <%= command.id %> --format json",
9562
- "<%= config.bin %> <%= command.id %> --machine"
9735
+ "<%= config.bin %> <%= command.id %> my-project --name \"New Project Name\"",
9736
+ "<%= config.bin %> <%= command.id %> my-project --description \"Updated description\"",
9737
+ "<%= config.bin %> <%= command.id %> my-project --name \"New Name\" --description \"New description\"",
9738
+ "<%= config.bin %> <%= command.id %> my-project # Interactive mode"
9563
9739
  ],
9564
9740
  "flags": {
9565
9741
  "project": {
@@ -9583,39 +9759,18 @@
9583
9759
  "allowNo": false,
9584
9760
  "type": "boolean"
9585
9761
  },
9586
- "state": {
9587
- "char": "s",
9588
- "description": "Filter by PR state",
9589
- "name": "state",
9590
- "default": "open",
9591
- "hasDynamicHelp": false,
9592
- "multiple": false,
9593
- "options": [
9594
- "open",
9595
- "draft",
9596
- "all"
9597
- ],
9598
- "type": "option"
9599
- },
9600
- "format": {
9601
- "char": "f",
9602
- "description": "Output format",
9603
- "name": "format",
9604
- "default": "table",
9762
+ "name": {
9763
+ "char": "n",
9764
+ "description": "New project name",
9765
+ "name": "name",
9605
9766
  "hasDynamicHelp": false,
9606
9767
  "multiple": false,
9607
- "options": [
9608
- "table",
9609
- "compact",
9610
- "json"
9611
- ],
9612
9768
  "type": "option"
9613
9769
  },
9614
- "limit": {
9615
- "char": "l",
9616
- "description": "Maximum number of PRs to show",
9617
- "name": "limit",
9618
- "default": 50,
9770
+ "description": {
9771
+ "char": "d",
9772
+ "description": "New project description",
9773
+ "name": "description",
9619
9774
  "hasDynamicHelp": false,
9620
9775
  "multiple": false,
9621
9776
  "type": "option"
@@ -9623,7 +9778,7 @@
9623
9778
  },
9624
9779
  "hasDynamicHelp": false,
9625
9780
  "hiddenAliases": [],
9626
- "id": "pr:list",
9781
+ "id": "project:update",
9627
9782
  "pluginAlias": "@proletariat/cli",
9628
9783
  "pluginName": "@proletariat/cli",
9629
9784
  "pluginType": "core",
@@ -9632,102 +9787,23 @@
9632
9787
  "relativePath": [
9633
9788
  "dist",
9634
9789
  "commands",
9635
- "pr",
9636
- "list.js"
9790
+ "project",
9791
+ "update.js"
9637
9792
  ]
9638
9793
  },
9639
- "pr:merge": {
9794
+ "project:view": {
9640
9795
  "aliases": [],
9641
9796
  "args": {
9642
- "prNumber": {
9643
- "description": "PR number to merge",
9644
- "name": "prNumber",
9797
+ "id": {
9798
+ "description": "Project ID to view - prompts with dropdown if not provided",
9799
+ "name": "id",
9645
9800
  "required": false
9646
9801
  }
9647
9802
  },
9648
- "description": "Merge a GitHub pull request by number",
9803
+ "description": "View a project's board",
9649
9804
  "examples": [
9650
- "<%= config.bin %> <%= command.id %> 123",
9651
- "<%= config.bin %> <%= command.id %> 123 --method squash",
9652
- "<%= config.bin %> <%= command.id %> 123 --no-delete-branch",
9653
- "<%= config.bin %> <%= command.id %> --json"
9654
- ],
9655
- "flags": {
9656
- "project": {
9657
- "char": "P",
9658
- "description": "Project ID (uses first project if only one exists)",
9659
- "name": "project",
9660
- "hasDynamicHelp": false,
9661
- "multiple": false,
9662
- "type": "option"
9663
- },
9664
- "json": {
9665
- "description": "Output as JSON for AI agents/scripts",
9666
- "name": "json",
9667
- "allowNo": false,
9668
- "type": "boolean"
9669
- },
9670
- "machine": {
9671
- "char": "m",
9672
- "description": "Output as JSON for AI agents/scripts",
9673
- "name": "machine",
9674
- "allowNo": false,
9675
- "type": "boolean"
9676
- },
9677
- "method": {
9678
- "description": "Merge method",
9679
- "name": "method",
9680
- "default": "merge",
9681
- "hasDynamicHelp": false,
9682
- "multiple": false,
9683
- "options": [
9684
- "merge",
9685
- "squash",
9686
- "rebase"
9687
- ],
9688
- "type": "option"
9689
- },
9690
- "delete-branch": {
9691
- "description": "Delete branch after merging",
9692
- "name": "delete-branch",
9693
- "allowNo": true,
9694
- "type": "boolean"
9695
- },
9696
- "admin": {
9697
- "description": "Use admin privileges to bypass branch protections",
9698
- "name": "admin",
9699
- "allowNo": false,
9700
- "type": "boolean"
9701
- }
9702
- },
9703
- "hasDynamicHelp": false,
9704
- "hiddenAliases": [],
9705
- "id": "pr:merge",
9706
- "pluginAlias": "@proletariat/cli",
9707
- "pluginName": "@proletariat/cli",
9708
- "pluginType": "core",
9709
- "strict": true,
9710
- "isESM": true,
9711
- "relativePath": [
9712
- "dist",
9713
- "commands",
9714
- "pr",
9715
- "merge.js"
9716
- ]
9717
- },
9718
- "pr:status": {
9719
- "aliases": [],
9720
- "args": {
9721
- "ticketId": {
9722
- "description": "Ticket ID to check PR status for",
9723
- "name": "ticketId",
9724
- "required": false
9725
- }
9726
- },
9727
- "description": "View PR status for a ticket",
9728
- "examples": [
9729
- "<%= config.bin %> <%= command.id %>",
9730
- "<%= config.bin %> <%= command.id %> TKT-001"
9805
+ "<%= config.bin %> <%= command.id %> my-project",
9806
+ "<%= config.bin %> <%= command.id %> # Views default project"
9731
9807
  ],
9732
9808
  "flags": {
9733
9809
  "project": {
@@ -9750,18 +9826,11 @@
9750
9826
  "name": "machine",
9751
9827
  "allowNo": false,
9752
9828
  "type": "boolean"
9753
- },
9754
- "ticket": {
9755
- "description": "Ticket ID to check (alternative to positional arg)",
9756
- "name": "ticket",
9757
- "hasDynamicHelp": false,
9758
- "multiple": false,
9759
- "type": "option"
9760
9829
  }
9761
9830
  },
9762
9831
  "hasDynamicHelp": false,
9763
9832
  "hiddenAliases": [],
9764
- "id": "pr:status",
9833
+ "id": "project:view",
9765
9834
  "pluginAlias": "@proletariat/cli",
9766
9835
  "pluginName": "@proletariat/cli",
9767
9836
  "pluginType": "core",
@@ -9770,8 +9839,8 @@
9770
9839
  "relativePath": [
9771
9840
  "dist",
9772
9841
  "commands",
9773
- "pr",
9774
- "status.js"
9842
+ "project",
9843
+ "view.js"
9775
9844
  ]
9776
9845
  },
9777
9846
  "qa": {
@@ -11105,26 +11174,33 @@
11105
11174
  "view.js"
11106
11175
  ]
11107
11176
  },
11108
- "session:attach": {
11177
+ "staff:add": {
11109
11178
  "aliases": [],
11110
11179
  "args": {
11111
- "session": {
11112
- "description": "Session name or ticket ID to attach to (optional - will prompt if not provided)",
11113
- "name": "session",
11180
+ "names": {
11181
+ "description": "Agent names to add (space-separated)",
11182
+ "name": "names",
11114
11183
  "required": false
11115
11184
  }
11116
11185
  },
11117
- "description": "Attach to an active tmux session",
11186
+ "description": "Add new agents to the workspace",
11118
11187
  "examples": [
11119
- "<%= config.bin %> <%= command.id %>",
11120
- "<%= config.bin %> <%= command.id %> TKT-347-implement-altman",
11121
- "<%= config.bin %> <%= command.id %> --current-terminal"
11188
+ "<%= config.bin %> <%= command.id %> zeus",
11189
+ "<%= config.bin %> <%= command.id %> agent-1 agent-2",
11190
+ "<%= config.bin %> <%= command.id %> --theme billionaires",
11191
+ "<%= config.bin %> <%= command.id %> my-agent --no-container"
11122
11192
  ],
11123
11193
  "flags": {
11124
- "project": {
11125
- "char": "P",
11126
- "description": "Project ID (uses first project if only one exists)",
11127
- "name": "project",
11194
+ "no-container": {
11195
+ "description": "Skip devcontainer setup (not recommended for autonomous agents)",
11196
+ "name": "no-container",
11197
+ "allowNo": false,
11198
+ "type": "boolean"
11199
+ },
11200
+ "theme": {
11201
+ "char": "t",
11202
+ "description": "Pick agent name(s) from a theme (billionaires, toyotas, companies, or custom)",
11203
+ "name": "theme",
11128
11204
  "hasDynamicHelp": false,
11129
11205
  "multiple": false,
11130
11206
  "type": "option"
@@ -11142,59 +11218,37 @@
11142
11218
  "allowNo": false,
11143
11219
  "type": "boolean"
11144
11220
  },
11145
- "new-tab": {
11146
- "char": "n",
11147
- "description": "Open in a new terminal tab (default: true)",
11148
- "name": "new-tab",
11149
- "allowNo": false,
11150
- "type": "boolean"
11151
- },
11152
- "current-terminal": {
11153
- "char": "c",
11154
- "description": "Attach in current terminal instead of new tab",
11155
- "name": "current-terminal",
11221
+ "clone": {
11222
+ "description": "Use independent git clone instead of worktree (more isolation, no real-time sync)",
11223
+ "name": "clone",
11156
11224
  "allowNo": false,
11157
11225
  "type": "boolean"
11158
- },
11159
- "terminal": {
11160
- "char": "t",
11161
- "description": "Terminal app to use (iTerm, Terminal, Ghostty)",
11162
- "name": "terminal",
11163
- "default": "iTerm",
11164
- "hasDynamicHelp": false,
11165
- "multiple": false,
11166
- "type": "option"
11167
11226
  }
11168
11227
  },
11169
11228
  "hasDynamicHelp": false,
11170
11229
  "hiddenAliases": [],
11171
- "id": "session:attach",
11230
+ "id": "staff:add",
11172
11231
  "pluginAlias": "@proletariat/cli",
11173
11232
  "pluginName": "@proletariat/cli",
11174
11233
  "pluginType": "core",
11175
- "strict": true,
11234
+ "strict": false,
11176
11235
  "isESM": true,
11177
11236
  "relativePath": [
11178
11237
  "dist",
11179
11238
  "commands",
11180
- "session",
11181
- "attach.js"
11239
+ "agent",
11240
+ "staff",
11241
+ "add.js"
11182
11242
  ]
11183
11243
  },
11184
- "session:create": {
11244
+ "staff": {
11185
11245
  "aliases": [],
11186
- "args": {
11187
- "name": {
11188
- "description": "Name for the new tmux session",
11189
- "name": "name",
11190
- "required": true
11191
- }
11192
- },
11193
- "description": "Create a new tmux session",
11246
+ "args": {},
11247
+ "description": "Manage staff (persistent) agents",
11194
11248
  "examples": [
11195
- "<%= config.bin %> <%= command.id %> my-session",
11196
- "<%= config.bin %> <%= command.id %> my-session --command \"npm run dev\"",
11197
- "<%= config.bin %> <%= command.id %> my-session --detach"
11249
+ "<%= config.bin %> <%= command.id %> list",
11250
+ "<%= config.bin %> <%= command.id %> add",
11251
+ "<%= config.bin %> <%= command.id %> remove camry"
11198
11252
  ],
11199
11253
  "flags": {
11200
11254
  "project": {
@@ -11218,25 +11272,16 @@
11218
11272
  "allowNo": false,
11219
11273
  "type": "boolean"
11220
11274
  },
11221
- "command": {
11222
- "char": "c",
11223
- "description": "Initial command to run in the session",
11224
- "name": "command",
11225
- "hasDynamicHelp": false,
11226
- "multiple": false,
11227
- "type": "option"
11228
- },
11229
- "detach": {
11230
- "char": "d",
11231
- "description": "Create session in detached mode (do not attach)",
11232
- "name": "detach",
11275
+ "no-interactive": {
11276
+ "description": "Alias for --json flag",
11277
+ "name": "no-interactive",
11233
11278
  "allowNo": false,
11234
11279
  "type": "boolean"
11235
11280
  }
11236
11281
  },
11237
11282
  "hasDynamicHelp": false,
11238
11283
  "hiddenAliases": [],
11239
- "id": "session:create",
11284
+ "id": "staff",
11240
11285
  "pluginAlias": "@proletariat/cli",
11241
11286
  "pluginName": "@proletariat/cli",
11242
11287
  "pluginType": "core",
@@ -11245,35 +11290,18 @@
11245
11290
  "relativePath": [
11246
11291
  "dist",
11247
11292
  "commands",
11248
- "session",
11249
- "create.js"
11293
+ "staff",
11294
+ "index.js"
11250
11295
  ]
11251
11296
  },
11252
- "session:exec": {
11297
+ "staff:list": {
11253
11298
  "aliases": [],
11254
- "args": {
11255
- "target": {
11256
- "description": "Agent name or ticket ID",
11257
- "name": "target",
11258
- "required": true
11259
- }
11260
- },
11261
- "description": "Run a command in an agent's worktree/container context",
11299
+ "args": {},
11300
+ "description": "List all staff (persistent) agents and their status",
11262
11301
  "examples": [
11263
- "<%= config.bin %> session exec altman -- git status",
11264
- "<%= config.bin %> session exec TKT-123 -- gh pr view --json number,state",
11265
- "<%= config.bin %> session exec altman -- ls -la",
11266
- "<%= config.bin %> session exec altman --json -- git log --oneline -5"
11302
+ "<%= config.bin %> <%= command.id %>"
11267
11303
  ],
11268
11304
  "flags": {
11269
- "project": {
11270
- "char": "P",
11271
- "description": "Project ID (uses first project if only one exists)",
11272
- "name": "project",
11273
- "hasDynamicHelp": false,
11274
- "multiple": false,
11275
- "type": "option"
11276
- },
11277
11305
  "json": {
11278
11306
  "description": "Output as JSON for AI agents/scripts",
11279
11307
  "name": "json",
@@ -11286,44 +11314,37 @@
11286
11314
  "name": "machine",
11287
11315
  "allowNo": false,
11288
11316
  "type": "boolean"
11289
- },
11290
- "timeout": {
11291
- "char": "t",
11292
- "description": "Command timeout in seconds",
11293
- "name": "timeout",
11294
- "default": 30,
11295
- "hasDynamicHelp": false,
11296
- "multiple": false,
11297
- "type": "option"
11298
11317
  }
11299
11318
  },
11300
11319
  "hasDynamicHelp": false,
11301
11320
  "hiddenAliases": [],
11302
- "id": "session:exec",
11321
+ "id": "staff:list",
11303
11322
  "pluginAlias": "@proletariat/cli",
11304
11323
  "pluginName": "@proletariat/cli",
11305
11324
  "pluginType": "core",
11306
- "strict": false,
11325
+ "strict": true,
11326
+ "enableJsonFlag": false,
11307
11327
  "isESM": true,
11308
11328
  "relativePath": [
11309
11329
  "dist",
11310
11330
  "commands",
11311
- "session",
11312
- "exec.js"
11331
+ "staff",
11332
+ "list.js"
11313
11333
  ]
11314
11334
  },
11315
- "session:health": {
11335
+ "staff:remove": {
11316
11336
  "aliases": [],
11317
- "args": {},
11318
- "description": "Check health of running agent sessions, detect/recover hung agents, and auto-poke idle agents",
11337
+ "args": {
11338
+ "name": {
11339
+ "description": "Agent name to remove",
11340
+ "name": "name",
11341
+ "required": false
11342
+ }
11343
+ },
11344
+ "description": "Remove a specific agent from the workspace",
11319
11345
  "examples": [
11320
- "<%= config.bin %> session health",
11321
- "<%= config.bin %> session health --fix",
11322
- "<%= config.bin %> session health --poke-idle",
11323
- "<%= config.bin %> session health --fix --poke-idle",
11324
- "<%= config.bin %> session health --watch",
11325
- "<%= config.bin %> session health --watch --interval 3 --threshold 5",
11326
- "<%= config.bin %> session health --watch --poke-idle"
11346
+ "<%= config.bin %> <%= command.id %> camry",
11347
+ "<%= config.bin %> <%= command.id %>"
11327
11348
  ],
11328
11349
  "flags": {
11329
11350
  "project": {
@@ -11347,44 +11368,17 @@
11347
11368
  "allowNo": false,
11348
11369
  "type": "boolean"
11349
11370
  },
11350
- "fix": {
11351
- "description": "Send Escape to hung agents to unstick them",
11352
- "name": "fix",
11353
- "allowNo": false,
11354
- "type": "boolean"
11355
- },
11356
- "poke-idle": {
11357
- "description": "Auto-poke idle agents with their ticket description to resume work",
11358
- "name": "poke-idle",
11359
- "allowNo": false,
11360
- "type": "boolean"
11361
- },
11362
- "watch": {
11363
- "description": "Continuously monitor agents and auto-recover hung ones",
11364
- "name": "watch",
11371
+ "force": {
11372
+ "char": "f",
11373
+ "description": "Skip confirmation prompt (for non-interactive use)",
11374
+ "name": "force",
11365
11375
  "allowNo": false,
11366
11376
  "type": "boolean"
11367
- },
11368
- "interval": {
11369
- "description": "Watch polling interval in minutes",
11370
- "name": "interval",
11371
- "default": 5,
11372
- "hasDynamicHelp": false,
11373
- "multiple": false,
11374
- "type": "option"
11375
- },
11376
- "threshold": {
11377
- "description": "Minutes an agent must be hung/idle before auto-recovery in watch mode",
11378
- "name": "threshold",
11379
- "default": 10,
11380
- "hasDynamicHelp": false,
11381
- "multiple": false,
11382
- "type": "option"
11383
11377
  }
11384
11378
  },
11385
11379
  "hasDynamicHelp": false,
11386
11380
  "hiddenAliases": [],
11387
- "id": "session:health",
11381
+ "id": "staff:remove",
11388
11382
  "pluginAlias": "@proletariat/cli",
11389
11383
  "pluginName": "@proletariat/cli",
11390
11384
  "pluginType": "core",
@@ -11393,19 +11387,25 @@
11393
11387
  "relativePath": [
11394
11388
  "dist",
11395
11389
  "commands",
11396
- "session",
11397
- "health.js"
11390
+ "agent",
11391
+ "staff",
11392
+ "remove.js"
11398
11393
  ]
11399
11394
  },
11400
- "session": {
11395
+ "session:attach": {
11401
11396
  "aliases": [],
11402
- "args": {},
11403
- "description": "Manage agent tmux sessions (list, attach, create, detach)",
11397
+ "args": {
11398
+ "session": {
11399
+ "description": "Session name or ticket ID to attach to (optional - will prompt if not provided)",
11400
+ "name": "session",
11401
+ "required": false
11402
+ }
11403
+ },
11404
+ "description": "Attach to an active tmux session",
11404
11405
  "examples": [
11405
11406
  "<%= config.bin %> <%= command.id %>",
11406
- "<%= config.bin %> <%= command.id %> list",
11407
- "<%= config.bin %> <%= command.id %> attach TKT-347-implement",
11408
- "<%= config.bin %> <%= command.id %> create my-session"
11407
+ "<%= config.bin %> <%= command.id %> TKT-347-implement-altman",
11408
+ "<%= config.bin %> <%= command.id %> --current-terminal"
11409
11409
  ],
11410
11410
  "flags": {
11411
11411
  "project": {
@@ -11428,11 +11428,34 @@
11428
11428
  "name": "machine",
11429
11429
  "allowNo": false,
11430
11430
  "type": "boolean"
11431
+ },
11432
+ "new-tab": {
11433
+ "char": "n",
11434
+ "description": "Open in a new terminal tab (default: true)",
11435
+ "name": "new-tab",
11436
+ "allowNo": false,
11437
+ "type": "boolean"
11438
+ },
11439
+ "current-terminal": {
11440
+ "char": "c",
11441
+ "description": "Attach in current terminal instead of new tab",
11442
+ "name": "current-terminal",
11443
+ "allowNo": false,
11444
+ "type": "boolean"
11445
+ },
11446
+ "terminal": {
11447
+ "char": "t",
11448
+ "description": "Terminal app to use (iTerm, Terminal, Ghostty)",
11449
+ "name": "terminal",
11450
+ "default": "iTerm",
11451
+ "hasDynamicHelp": false,
11452
+ "multiple": false,
11453
+ "type": "option"
11431
11454
  }
11432
11455
  },
11433
11456
  "hasDynamicHelp": false,
11434
11457
  "hiddenAliases": [],
11435
- "id": "session",
11458
+ "id": "session:attach",
11436
11459
  "pluginAlias": "@proletariat/cli",
11437
11460
  "pluginName": "@proletariat/cli",
11438
11461
  "pluginType": "core",
@@ -11442,24 +11465,23 @@
11442
11465
  "dist",
11443
11466
  "commands",
11444
11467
  "session",
11445
- "index.js"
11468
+ "attach.js"
11446
11469
  ]
11447
11470
  },
11448
- "session:inspect": {
11471
+ "session:create": {
11449
11472
  "aliases": [],
11450
11473
  "args": {
11451
- "target": {
11452
- "description": "Agent name or ticket ID",
11453
- "name": "target",
11474
+ "name": {
11475
+ "description": "Name for the new tmux session",
11476
+ "name": "name",
11454
11477
  "required": true
11455
11478
  }
11456
11479
  },
11457
- "description": "Comprehensive agent status inspection (git, PR, process, output) in one call",
11480
+ "description": "Create a new tmux session",
11458
11481
  "examples": [
11459
- "<%= config.bin %> session inspect altman",
11460
- "<%= config.bin %> session inspect TKT-123",
11461
- "<%= config.bin %> session inspect altman --lines 50",
11462
- "<%= config.bin %> session inspect altman --json"
11482
+ "<%= config.bin %> <%= command.id %> my-session",
11483
+ "<%= config.bin %> <%= command.id %> my-session --command \"npm run dev\"",
11484
+ "<%= config.bin %> <%= command.id %> my-session --detach"
11463
11485
  ],
11464
11486
  "flags": {
11465
11487
  "project": {
@@ -11483,19 +11505,25 @@
11483
11505
  "allowNo": false,
11484
11506
  "type": "boolean"
11485
11507
  },
11486
- "lines": {
11487
- "char": "l",
11488
- "description": "Number of output lines to include",
11489
- "name": "lines",
11490
- "default": 100,
11508
+ "command": {
11509
+ "char": "c",
11510
+ "description": "Initial command to run in the session",
11511
+ "name": "command",
11491
11512
  "hasDynamicHelp": false,
11492
11513
  "multiple": false,
11493
11514
  "type": "option"
11515
+ },
11516
+ "detach": {
11517
+ "char": "d",
11518
+ "description": "Create session in detached mode (do not attach)",
11519
+ "name": "detach",
11520
+ "allowNo": false,
11521
+ "type": "boolean"
11494
11522
  }
11495
11523
  },
11496
11524
  "hasDynamicHelp": false,
11497
11525
  "hiddenAliases": [],
11498
- "id": "session:inspect",
11526
+ "id": "session:create",
11499
11527
  "pluginAlias": "@proletariat/cli",
11500
11528
  "pluginName": "@proletariat/cli",
11501
11529
  "pluginType": "core",
@@ -11505,16 +11533,24 @@
11505
11533
  "dist",
11506
11534
  "commands",
11507
11535
  "session",
11508
- "inspect.js"
11536
+ "create.js"
11509
11537
  ]
11510
11538
  },
11511
- "session:list": {
11539
+ "session:exec": {
11512
11540
  "aliases": [],
11513
- "args": {},
11514
- "description": "List active tmux sessions (host and container)",
11541
+ "args": {
11542
+ "target": {
11543
+ "description": "Agent name or ticket ID",
11544
+ "name": "target",
11545
+ "required": true
11546
+ }
11547
+ },
11548
+ "description": "Run a command in an agent's worktree/container context",
11515
11549
  "examples": [
11516
- "<%= config.bin %> <%= command.id %>",
11517
- "<%= config.bin %> <%= command.id %> --all"
11550
+ "<%= config.bin %> session exec altman -- git status",
11551
+ "<%= config.bin %> session exec TKT-123 -- gh pr view --json number,state",
11552
+ "<%= config.bin %> session exec altman -- ls -la",
11553
+ "<%= config.bin %> session exec altman --json -- git log --oneline -5"
11518
11554
  ],
11519
11555
  "flags": {
11520
11556
  "project": {
@@ -11538,49 +11574,43 @@
11538
11574
  "allowNo": false,
11539
11575
  "type": "boolean"
11540
11576
  },
11541
- "all": {
11542
- "char": "a",
11543
- "description": "Show all sessions including stale DB records",
11544
- "name": "all",
11545
- "allowNo": false,
11546
- "type": "boolean"
11577
+ "timeout": {
11578
+ "char": "t",
11579
+ "description": "Command timeout in seconds",
11580
+ "name": "timeout",
11581
+ "default": 30,
11582
+ "hasDynamicHelp": false,
11583
+ "multiple": false,
11584
+ "type": "option"
11547
11585
  }
11548
11586
  },
11549
11587
  "hasDynamicHelp": false,
11550
11588
  "hiddenAliases": [],
11551
- "id": "session:list",
11589
+ "id": "session:exec",
11552
11590
  "pluginAlias": "@proletariat/cli",
11553
11591
  "pluginName": "@proletariat/cli",
11554
11592
  "pluginType": "core",
11555
- "strict": true,
11593
+ "strict": false,
11556
11594
  "isESM": true,
11557
11595
  "relativePath": [
11558
11596
  "dist",
11559
11597
  "commands",
11560
11598
  "session",
11561
- "list.js"
11599
+ "exec.js"
11562
11600
  ]
11563
11601
  },
11564
- "session:peek": {
11602
+ "session:health": {
11565
11603
  "aliases": [],
11566
- "args": {
11567
- "target": {
11568
- "description": "Agent name, ticket ID (e.g. TKT-123), or execution ID (e.g. WORK-XXXXXXXX)",
11569
- "name": "target",
11570
- "required": false
11571
- }
11572
- },
11573
- "description": "View agent tmux pane content without attaching (non-interactive)",
11604
+ "args": {},
11605
+ "description": "Check health of running agent sessions, detect/recover hung agents, and auto-poke idle agents",
11574
11606
  "examples": [
11575
- "<%= config.bin %> session peek altman",
11576
- "<%= config.bin %> session peek TKT-123",
11577
- "<%= config.bin %> session peek WORK-ABCD1234",
11578
- "<%= config.bin %> session peek altman --lines 100",
11579
- "<%= config.bin %> session peek altman --full",
11580
- "<%= config.bin %> session peek altman --follow",
11581
- "<%= config.bin %> session peek altman --since 2025-01-01T12:00:00Z",
11582
- "<%= config.bin %> session peek TKT-123 --json",
11583
- "<%= config.bin %> session peek altman | grep error"
11607
+ "<%= config.bin %> session health",
11608
+ "<%= config.bin %> session health --fix",
11609
+ "<%= config.bin %> session health --poke-idle",
11610
+ "<%= config.bin %> session health --fix --poke-idle",
11611
+ "<%= config.bin %> session health --watch",
11612
+ "<%= config.bin %> session health --watch --interval 3 --threshold 5",
11613
+ "<%= config.bin %> session health --watch --poke-idle"
11584
11614
  ],
11585
11615
  "flags": {
11586
11616
  "project": {
@@ -11604,39 +11634,36 @@
11604
11634
  "allowNo": false,
11605
11635
  "type": "boolean"
11606
11636
  },
11607
- "lines": {
11608
- "char": "l",
11609
- "description": "Number of scrollback lines to capture",
11610
- "name": "lines",
11611
- "default": 200,
11612
- "hasDynamicHelp": false,
11613
- "multiple": false,
11614
- "type": "option"
11615
- },
11616
- "full": {
11617
- "description": "Capture entire scrollback buffer (up to 32768 lines)",
11618
- "name": "full",
11637
+ "fix": {
11638
+ "description": "Send Escape to hung agents to unstick them",
11639
+ "name": "fix",
11619
11640
  "allowNo": false,
11620
11641
  "type": "boolean"
11621
11642
  },
11622
- "since": {
11623
- "description": "Filter output to lines after this timestamp (ISO 8601)",
11624
- "name": "since",
11625
- "hasDynamicHelp": false,
11626
- "multiple": false,
11627
- "type": "option"
11643
+ "poke-idle": {
11644
+ "description": "Auto-poke idle agents with their ticket description to resume work",
11645
+ "name": "poke-idle",
11646
+ "allowNo": false,
11647
+ "type": "boolean"
11628
11648
  },
11629
- "follow": {
11630
- "char": "f",
11631
- "description": "Stream output continuously (like tail -f)",
11632
- "name": "follow",
11649
+ "watch": {
11650
+ "description": "Continuously monitor agents and auto-recover hung ones",
11651
+ "name": "watch",
11633
11652
  "allowNo": false,
11634
11653
  "type": "boolean"
11635
11654
  },
11636
11655
  "interval": {
11637
- "description": "Polling interval in seconds for --follow mode",
11656
+ "description": "Watch polling interval in minutes",
11638
11657
  "name": "interval",
11639
- "default": 2,
11658
+ "default": 5,
11659
+ "hasDynamicHelp": false,
11660
+ "multiple": false,
11661
+ "type": "option"
11662
+ },
11663
+ "threshold": {
11664
+ "description": "Minutes an agent must be hung/idle before auto-recovery in watch mode",
11665
+ "name": "threshold",
11666
+ "default": 10,
11640
11667
  "hasDynamicHelp": false,
11641
11668
  "multiple": false,
11642
11669
  "type": "option"
@@ -11644,7 +11671,7 @@
11644
11671
  },
11645
11672
  "hasDynamicHelp": false,
11646
11673
  "hiddenAliases": [],
11647
- "id": "session:peek",
11674
+ "id": "session:health",
11648
11675
  "pluginAlias": "@proletariat/cli",
11649
11676
  "pluginName": "@proletariat/cli",
11650
11677
  "pluginType": "core",
@@ -11654,30 +11681,18 @@
11654
11681
  "dist",
11655
11682
  "commands",
11656
11683
  "session",
11657
- "peek.js"
11684
+ "health.js"
11658
11685
  ]
11659
11686
  },
11660
- "session:poke": {
11687
+ "session": {
11661
11688
  "aliases": [],
11662
- "args": {
11663
- "agent": {
11664
- "description": "Agent name or ticket ID of the running agent",
11665
- "name": "agent",
11666
- "required": true
11667
- },
11668
- "message": {
11669
- "description": "Message to send (use \"-\" to read from stdin, or omit with --file)",
11670
- "name": "message",
11671
- "required": false
11672
- }
11673
- },
11674
- "description": "Send a message to a running agent's Claude Code session",
11675
- "examples": [
11676
- "<%= config.bin %> session poke altman \"Please focus on the tests first\"",
11677
- "<%= config.bin %> session poke TKT-123 \"Add error handling for edge cases\"",
11678
- "<%= config.bin %> session poke altman --file prompt.md",
11679
- "<%= config.bin %> session poke altman \"Run the tests\" --wait --timeout 60",
11680
- "echo \"multi-line message\" | <%= config.bin %> session poke altman -"
11689
+ "args": {},
11690
+ "description": "Manage agent tmux sessions (list, attach, create, detach)",
11691
+ "examples": [
11692
+ "<%= config.bin %> <%= command.id %>",
11693
+ "<%= config.bin %> <%= command.id %> list",
11694
+ "<%= config.bin %> <%= command.id %> attach TKT-347-implement",
11695
+ "<%= config.bin %> <%= command.id %> create my-session"
11681
11696
  ],
11682
11697
  "flags": {
11683
11698
  "project": {
@@ -11700,34 +11715,11 @@
11700
11715
  "name": "machine",
11701
11716
  "allowNo": false,
11702
11717
  "type": "boolean"
11703
- },
11704
- "file": {
11705
- "char": "F",
11706
- "description": "Read message from a file (supports multi-line)",
11707
- "name": "file",
11708
- "hasDynamicHelp": false,
11709
- "multiple": false,
11710
- "type": "option"
11711
- },
11712
- "wait": {
11713
- "char": "w",
11714
- "description": "Wait for response after sending (capture output after message is sent)",
11715
- "name": "wait",
11716
- "allowNo": false,
11717
- "type": "boolean"
11718
- },
11719
- "timeout": {
11720
- "description": "Timeout in seconds for --wait mode",
11721
- "name": "timeout",
11722
- "default": 120,
11723
- "hasDynamicHelp": false,
11724
- "multiple": false,
11725
- "type": "option"
11726
11718
  }
11727
11719
  },
11728
11720
  "hasDynamicHelp": false,
11729
11721
  "hiddenAliases": [],
11730
- "id": "session:poke",
11722
+ "id": "session",
11731
11723
  "pluginAlias": "@proletariat/cli",
11732
11724
  "pluginName": "@proletariat/cli",
11733
11725
  "pluginType": "core",
@@ -11737,18 +11729,24 @@
11737
11729
  "dist",
11738
11730
  "commands",
11739
11731
  "session",
11740
- "poke.js"
11732
+ "index.js"
11741
11733
  ]
11742
11734
  },
11743
- "session:prune": {
11735
+ "session:inspect": {
11744
11736
  "aliases": [],
11745
- "args": {},
11746
- "description": "Clean up stale sessions, orphan tmux sessions, and idle ephemeral agents",
11737
+ "args": {
11738
+ "target": {
11739
+ "description": "Agent name or ticket ID",
11740
+ "name": "target",
11741
+ "required": true
11742
+ }
11743
+ },
11744
+ "description": "Comprehensive agent status inspection (git, PR, process, output) in one call",
11747
11745
  "examples": [
11748
- "<%= config.bin %> session prune",
11749
- "<%= config.bin %> session prune --dry-run",
11750
- "<%= config.bin %> session prune --force",
11751
- "<%= config.bin %> session prune --age 24"
11746
+ "<%= config.bin %> session inspect altman",
11747
+ "<%= config.bin %> session inspect TKT-123",
11748
+ "<%= config.bin %> session inspect altman --lines 50",
11749
+ "<%= config.bin %> session inspect altman --json"
11752
11750
  ],
11753
11751
  "flags": {
11754
11752
  "project": {
@@ -11772,31 +11770,11 @@
11772
11770
  "allowNo": false,
11773
11771
  "type": "boolean"
11774
11772
  },
11775
- "dry-run": {
11776
- "char": "d",
11777
- "description": "Show what would be pruned without actually doing it",
11778
- "name": "dry-run",
11779
- "allowNo": false,
11780
- "type": "boolean"
11781
- },
11782
- "force": {
11783
- "char": "f",
11784
- "description": "Force cleanup even if agents have uncommitted/unpushed work",
11785
- "name": "force",
11786
- "allowNo": false,
11787
- "type": "boolean"
11788
- },
11789
- "yes": {
11790
- "char": "y",
11791
- "description": "Skip confirmation prompt",
11792
- "name": "yes",
11793
- "allowNo": false,
11794
- "type": "boolean"
11795
- },
11796
- "age": {
11797
- "description": "Only prune sessions/agents idle for more than N hours (default: 0 = all idle)",
11798
- "name": "age",
11799
- "default": 0,
11773
+ "lines": {
11774
+ "char": "l",
11775
+ "description": "Number of output lines to include",
11776
+ "name": "lines",
11777
+ "default": 100,
11800
11778
  "hasDynamicHelp": false,
11801
11779
  "multiple": false,
11802
11780
  "type": "option"
@@ -11804,7 +11782,7 @@
11804
11782
  },
11805
11783
  "hasDynamicHelp": false,
11806
11784
  "hiddenAliases": [],
11807
- "id": "session:prune",
11785
+ "id": "session:inspect",
11808
11786
  "pluginAlias": "@proletariat/cli",
11809
11787
  "pluginName": "@proletariat/cli",
11810
11788
  "pluginType": "core",
@@ -11814,25 +11792,16 @@
11814
11792
  "dist",
11815
11793
  "commands",
11816
11794
  "session",
11817
- "prune.js"
11795
+ "inspect.js"
11818
11796
  ]
11819
11797
  },
11820
- "session:restart": {
11798
+ "session:list": {
11821
11799
  "aliases": [],
11822
- "args": {
11823
- "target": {
11824
- "description": "Agent name or ticket ID",
11825
- "name": "target",
11826
- "required": true
11827
- }
11828
- },
11829
- "description": "Gracefully restart a stuck or completed agent session",
11800
+ "args": {},
11801
+ "description": "List active tmux sessions (host and container)",
11830
11802
  "examples": [
11831
- "<%= config.bin %> session restart altman",
11832
- "<%= config.bin %> session restart TKT-123",
11833
- "<%= config.bin %> session restart altman --fresh",
11834
- "<%= config.bin %> session restart altman --resume",
11835
- "<%= config.bin %> session restart altman --timeout 30"
11803
+ "<%= config.bin %> <%= command.id %>",
11804
+ "<%= config.bin %> <%= command.id %> --all"
11836
11805
  ],
11837
11806
  "flags": {
11838
11807
  "project": {
@@ -11856,36 +11825,17 @@
11856
11825
  "allowNo": false,
11857
11826
  "type": "boolean"
11858
11827
  },
11859
- "fresh": {
11860
- "description": "Reset worktree to branch HEAD before restarting",
11861
- "exclusive": [
11862
- "resume"
11863
- ],
11864
- "name": "fresh",
11865
- "allowNo": false,
11866
- "type": "boolean"
11867
- },
11868
- "resume": {
11869
- "description": "Continue from where the agent left off (pass --resume flag to Claude Code)",
11870
- "exclusive": [
11871
- "fresh"
11872
- ],
11873
- "name": "resume",
11828
+ "all": {
11829
+ "char": "a",
11830
+ "description": "Show all sessions including stale DB records",
11831
+ "name": "all",
11874
11832
  "allowNo": false,
11875
11833
  "type": "boolean"
11876
- },
11877
- "timeout": {
11878
- "description": "Seconds to wait for clean exit before force restart",
11879
- "name": "timeout",
11880
- "default": 15,
11881
- "hasDynamicHelp": false,
11882
- "multiple": false,
11883
- "type": "option"
11884
11834
  }
11885
11835
  },
11886
11836
  "hasDynamicHelp": false,
11887
11837
  "hiddenAliases": [],
11888
- "id": "session:restart",
11838
+ "id": "session:list",
11889
11839
  "pluginAlias": "@proletariat/cli",
11890
11840
  "pluginName": "@proletariat/cli",
11891
11841
  "pluginType": "core",
@@ -11895,36 +11845,35 @@
11895
11845
  "dist",
11896
11846
  "commands",
11897
11847
  "session",
11898
- "restart.js"
11848
+ "list.js"
11899
11849
  ]
11900
11850
  },
11901
- "staff:add": {
11851
+ "session:peek": {
11902
11852
  "aliases": [],
11903
11853
  "args": {
11904
- "names": {
11905
- "description": "Agent names to add (space-separated)",
11906
- "name": "names",
11854
+ "target": {
11855
+ "description": "Agent name, ticket ID (e.g. TKT-123), or execution ID (e.g. WORK-XXXXXXXX)",
11856
+ "name": "target",
11907
11857
  "required": false
11908
11858
  }
11909
11859
  },
11910
- "description": "Add new agents to the workspace",
11860
+ "description": "View agent tmux pane content without attaching (non-interactive)",
11911
11861
  "examples": [
11912
- "<%= config.bin %> <%= command.id %> zeus",
11913
- "<%= config.bin %> <%= command.id %> agent-1 agent-2",
11914
- "<%= config.bin %> <%= command.id %> --theme billionaires",
11915
- "<%= config.bin %> <%= command.id %> my-agent --no-container"
11862
+ "<%= config.bin %> session peek altman",
11863
+ "<%= config.bin %> session peek TKT-123",
11864
+ "<%= config.bin %> session peek WORK-ABCD1234",
11865
+ "<%= config.bin %> session peek altman --lines 100",
11866
+ "<%= config.bin %> session peek altman --full",
11867
+ "<%= config.bin %> session peek altman --follow",
11868
+ "<%= config.bin %> session peek altman --since 2025-01-01T12:00:00Z",
11869
+ "<%= config.bin %> session peek TKT-123 --json",
11870
+ "<%= config.bin %> session peek altman | grep error"
11916
11871
  ],
11917
11872
  "flags": {
11918
- "no-container": {
11919
- "description": "Skip devcontainer setup (not recommended for autonomous agents)",
11920
- "name": "no-container",
11921
- "allowNo": false,
11922
- "type": "boolean"
11923
- },
11924
- "theme": {
11925
- "char": "t",
11926
- "description": "Pick agent name(s) from a theme (billionaires, toyotas, companies, or custom)",
11927
- "name": "theme",
11873
+ "project": {
11874
+ "char": "P",
11875
+ "description": "Project ID (uses first project if only one exists)",
11876
+ "name": "project",
11928
11877
  "hasDynamicHelp": false,
11929
11878
  "multiple": false,
11930
11879
  "type": "option"
@@ -11942,37 +11891,80 @@
11942
11891
  "allowNo": false,
11943
11892
  "type": "boolean"
11944
11893
  },
11945
- "clone": {
11946
- "description": "Use independent git clone instead of worktree (more isolation, no real-time sync)",
11947
- "name": "clone",
11894
+ "lines": {
11895
+ "char": "l",
11896
+ "description": "Number of scrollback lines to capture",
11897
+ "name": "lines",
11898
+ "default": 200,
11899
+ "hasDynamicHelp": false,
11900
+ "multiple": false,
11901
+ "type": "option"
11902
+ },
11903
+ "full": {
11904
+ "description": "Capture entire scrollback buffer (up to 32768 lines)",
11905
+ "name": "full",
11906
+ "allowNo": false,
11907
+ "type": "boolean"
11908
+ },
11909
+ "since": {
11910
+ "description": "Filter output to lines after this timestamp (ISO 8601)",
11911
+ "name": "since",
11912
+ "hasDynamicHelp": false,
11913
+ "multiple": false,
11914
+ "type": "option"
11915
+ },
11916
+ "follow": {
11917
+ "char": "f",
11918
+ "description": "Stream output continuously (like tail -f)",
11919
+ "name": "follow",
11948
11920
  "allowNo": false,
11949
11921
  "type": "boolean"
11922
+ },
11923
+ "interval": {
11924
+ "description": "Polling interval in seconds for --follow mode",
11925
+ "name": "interval",
11926
+ "default": 2,
11927
+ "hasDynamicHelp": false,
11928
+ "multiple": false,
11929
+ "type": "option"
11950
11930
  }
11951
11931
  },
11952
11932
  "hasDynamicHelp": false,
11953
11933
  "hiddenAliases": [],
11954
- "id": "staff:add",
11934
+ "id": "session:peek",
11955
11935
  "pluginAlias": "@proletariat/cli",
11956
11936
  "pluginName": "@proletariat/cli",
11957
11937
  "pluginType": "core",
11958
- "strict": false,
11938
+ "strict": true,
11959
11939
  "isESM": true,
11960
11940
  "relativePath": [
11961
11941
  "dist",
11962
11942
  "commands",
11963
- "agent",
11964
- "staff",
11965
- "add.js"
11943
+ "session",
11944
+ "peek.js"
11966
11945
  ]
11967
11946
  },
11968
- "staff": {
11947
+ "session:poke": {
11969
11948
  "aliases": [],
11970
- "args": {},
11971
- "description": "Manage staff (persistent) agents",
11949
+ "args": {
11950
+ "agent": {
11951
+ "description": "Agent name or ticket ID of the running agent",
11952
+ "name": "agent",
11953
+ "required": true
11954
+ },
11955
+ "message": {
11956
+ "description": "Message to send (use \"-\" to read from stdin, or omit with --file)",
11957
+ "name": "message",
11958
+ "required": false
11959
+ }
11960
+ },
11961
+ "description": "Send a message to a running agent's Claude Code session",
11972
11962
  "examples": [
11973
- "<%= config.bin %> <%= command.id %> list",
11974
- "<%= config.bin %> <%= command.id %> add",
11975
- "<%= config.bin %> <%= command.id %> remove camry"
11963
+ "<%= config.bin %> session poke altman \"Please focus on the tests first\"",
11964
+ "<%= config.bin %> session poke TKT-123 \"Add error handling for edge cases\"",
11965
+ "<%= config.bin %> session poke altman --file prompt.md",
11966
+ "<%= config.bin %> session poke altman \"Run the tests\" --wait --timeout 60",
11967
+ "echo \"multi-line message\" | <%= config.bin %> session poke altman -"
11976
11968
  ],
11977
11969
  "flags": {
11978
11970
  "project": {
@@ -11996,16 +11988,33 @@
11996
11988
  "allowNo": false,
11997
11989
  "type": "boolean"
11998
11990
  },
11999
- "no-interactive": {
12000
- "description": "Alias for --json flag",
12001
- "name": "no-interactive",
12002
- "allowNo": false,
12003
- "type": "boolean"
11991
+ "file": {
11992
+ "char": "F",
11993
+ "description": "Read message from a file (supports multi-line)",
11994
+ "name": "file",
11995
+ "hasDynamicHelp": false,
11996
+ "multiple": false,
11997
+ "type": "option"
11998
+ },
11999
+ "wait": {
12000
+ "char": "w",
12001
+ "description": "Wait for response after sending (capture output after message is sent)",
12002
+ "name": "wait",
12003
+ "allowNo": false,
12004
+ "type": "boolean"
12005
+ },
12006
+ "timeout": {
12007
+ "description": "Timeout in seconds for --wait mode",
12008
+ "name": "timeout",
12009
+ "default": 120,
12010
+ "hasDynamicHelp": false,
12011
+ "multiple": false,
12012
+ "type": "option"
12004
12013
  }
12005
12014
  },
12006
12015
  "hasDynamicHelp": false,
12007
12016
  "hiddenAliases": [],
12008
- "id": "staff",
12017
+ "id": "session:poke",
12009
12018
  "pluginAlias": "@proletariat/cli",
12010
12019
  "pluginName": "@proletariat/cli",
12011
12020
  "pluginType": "core",
@@ -12014,18 +12023,29 @@
12014
12023
  "relativePath": [
12015
12024
  "dist",
12016
12025
  "commands",
12017
- "staff",
12018
- "index.js"
12026
+ "session",
12027
+ "poke.js"
12019
12028
  ]
12020
12029
  },
12021
- "staff:list": {
12030
+ "session:prune": {
12022
12031
  "aliases": [],
12023
12032
  "args": {},
12024
- "description": "List all staff (persistent) agents and their status",
12033
+ "description": "Clean up stale sessions, orphan tmux sessions, and idle ephemeral agents",
12025
12034
  "examples": [
12026
- "<%= config.bin %> <%= command.id %>"
12035
+ "<%= config.bin %> session prune",
12036
+ "<%= config.bin %> session prune --dry-run",
12037
+ "<%= config.bin %> session prune --force",
12038
+ "<%= config.bin %> session prune --age 24"
12027
12039
  ],
12028
12040
  "flags": {
12041
+ "project": {
12042
+ "char": "P",
12043
+ "description": "Project ID (uses first project if only one exists)",
12044
+ "name": "project",
12045
+ "hasDynamicHelp": false,
12046
+ "multiple": false,
12047
+ "type": "option"
12048
+ },
12029
12049
  "json": {
12030
12050
  "description": "Output as JSON for AI agents/scripts",
12031
12051
  "name": "json",
@@ -12038,37 +12058,68 @@
12038
12058
  "name": "machine",
12039
12059
  "allowNo": false,
12040
12060
  "type": "boolean"
12061
+ },
12062
+ "dry-run": {
12063
+ "char": "d",
12064
+ "description": "Show what would be pruned without actually doing it",
12065
+ "name": "dry-run",
12066
+ "allowNo": false,
12067
+ "type": "boolean"
12068
+ },
12069
+ "force": {
12070
+ "char": "f",
12071
+ "description": "Force cleanup even if agents have uncommitted/unpushed work",
12072
+ "name": "force",
12073
+ "allowNo": false,
12074
+ "type": "boolean"
12075
+ },
12076
+ "yes": {
12077
+ "char": "y",
12078
+ "description": "Skip confirmation prompt",
12079
+ "name": "yes",
12080
+ "allowNo": false,
12081
+ "type": "boolean"
12082
+ },
12083
+ "age": {
12084
+ "description": "Only prune sessions/agents idle for more than N hours (default: 0 = all idle)",
12085
+ "name": "age",
12086
+ "default": 0,
12087
+ "hasDynamicHelp": false,
12088
+ "multiple": false,
12089
+ "type": "option"
12041
12090
  }
12042
12091
  },
12043
12092
  "hasDynamicHelp": false,
12044
12093
  "hiddenAliases": [],
12045
- "id": "staff:list",
12094
+ "id": "session:prune",
12046
12095
  "pluginAlias": "@proletariat/cli",
12047
12096
  "pluginName": "@proletariat/cli",
12048
12097
  "pluginType": "core",
12049
12098
  "strict": true,
12050
- "enableJsonFlag": false,
12051
12099
  "isESM": true,
12052
12100
  "relativePath": [
12053
12101
  "dist",
12054
12102
  "commands",
12055
- "staff",
12056
- "list.js"
12103
+ "session",
12104
+ "prune.js"
12057
12105
  ]
12058
12106
  },
12059
- "staff:remove": {
12107
+ "session:restart": {
12060
12108
  "aliases": [],
12061
12109
  "args": {
12062
- "name": {
12063
- "description": "Agent name to remove",
12064
- "name": "name",
12065
- "required": false
12110
+ "target": {
12111
+ "description": "Agent name or ticket ID",
12112
+ "name": "target",
12113
+ "required": true
12066
12114
  }
12067
12115
  },
12068
- "description": "Remove a specific agent from the workspace",
12116
+ "description": "Gracefully restart a stuck or completed agent session",
12069
12117
  "examples": [
12070
- "<%= config.bin %> <%= command.id %> camry",
12071
- "<%= config.bin %> <%= command.id %>"
12118
+ "<%= config.bin %> session restart altman",
12119
+ "<%= config.bin %> session restart TKT-123",
12120
+ "<%= config.bin %> session restart altman --fresh",
12121
+ "<%= config.bin %> session restart altman --resume",
12122
+ "<%= config.bin %> session restart altman --timeout 30"
12072
12123
  ],
12073
12124
  "flags": {
12074
12125
  "project": {
@@ -12092,17 +12143,36 @@
12092
12143
  "allowNo": false,
12093
12144
  "type": "boolean"
12094
12145
  },
12095
- "force": {
12096
- "char": "f",
12097
- "description": "Skip confirmation prompt (for non-interactive use)",
12098
- "name": "force",
12146
+ "fresh": {
12147
+ "description": "Reset worktree to branch HEAD before restarting",
12148
+ "exclusive": [
12149
+ "resume"
12150
+ ],
12151
+ "name": "fresh",
12152
+ "allowNo": false,
12153
+ "type": "boolean"
12154
+ },
12155
+ "resume": {
12156
+ "description": "Continue from where the agent left off (pass --resume flag to Claude Code)",
12157
+ "exclusive": [
12158
+ "fresh"
12159
+ ],
12160
+ "name": "resume",
12099
12161
  "allowNo": false,
12100
12162
  "type": "boolean"
12163
+ },
12164
+ "timeout": {
12165
+ "description": "Seconds to wait for clean exit before force restart",
12166
+ "name": "timeout",
12167
+ "default": 15,
12168
+ "hasDynamicHelp": false,
12169
+ "multiple": false,
12170
+ "type": "option"
12101
12171
  }
12102
12172
  },
12103
12173
  "hasDynamicHelp": false,
12104
12174
  "hiddenAliases": [],
12105
- "id": "staff:remove",
12175
+ "id": "session:restart",
12106
12176
  "pluginAlias": "@proletariat/cli",
12107
12177
  "pluginName": "@proletariat/cli",
12108
12178
  "pluginType": "core",
@@ -12111,9 +12181,8 @@
12111
12181
  "relativePath": [
12112
12182
  "dist",
12113
12183
  "commands",
12114
- "agent",
12115
- "staff",
12116
- "remove.js"
12184
+ "session",
12185
+ "restart.js"
12117
12186
  ]
12118
12187
  },
12119
12188
  "status:category": {
@@ -13010,59 +13079,6 @@
13010
13079
  "status.js"
13011
13080
  ]
13012
13081
  },
13013
- "terminal:title": {
13014
- "aliases": [],
13015
- "args": {
13016
- "title": {
13017
- "description": "Title to set for the terminal tab/window",
13018
- "name": "title",
13019
- "required": false
13020
- }
13021
- },
13022
- "description": "Set the terminal tab/window title",
13023
- "examples": [
13024
- "<%= config.bin %> <%= command.id %> \"My Custom Name\"",
13025
- "<%= config.bin %> <%= command.id %> # Interactive prompt",
13026
- "<%= config.bin %> <%= command.id %> --reset",
13027
- "<%= config.bin %> <%= command.id %> --machine # JSON mode for agents"
13028
- ],
13029
- "flags": {
13030
- "reset": {
13031
- "char": "r",
13032
- "description": "Reset terminal title to default",
13033
- "name": "reset",
13034
- "allowNo": false,
13035
- "type": "boolean"
13036
- },
13037
- "json": {
13038
- "description": "Output as JSON for AI agents/scripts",
13039
- "name": "json",
13040
- "allowNo": false,
13041
- "type": "boolean"
13042
- },
13043
- "machine": {
13044
- "char": "m",
13045
- "description": "Output as JSON for AI agents/scripts",
13046
- "name": "machine",
13047
- "allowNo": false,
13048
- "type": "boolean"
13049
- }
13050
- },
13051
- "hasDynamicHelp": false,
13052
- "hiddenAliases": [],
13053
- "id": "terminal:title",
13054
- "pluginAlias": "@proletariat/cli",
13055
- "pluginName": "@proletariat/cli",
13056
- "pluginType": "core",
13057
- "strict": true,
13058
- "isESM": true,
13059
- "relativePath": [
13060
- "dist",
13061
- "commands",
13062
- "terminal",
13063
- "title.js"
13064
- ]
13065
- },
13066
13082
  "template:apply": {
13067
13083
  "aliases": [],
13068
13084
  "args": {
@@ -13682,6 +13698,59 @@
13682
13698
  "update.js"
13683
13699
  ]
13684
13700
  },
13701
+ "terminal:title": {
13702
+ "aliases": [],
13703
+ "args": {
13704
+ "title": {
13705
+ "description": "Title to set for the terminal tab/window",
13706
+ "name": "title",
13707
+ "required": false
13708
+ }
13709
+ },
13710
+ "description": "Set the terminal tab/window title",
13711
+ "examples": [
13712
+ "<%= config.bin %> <%= command.id %> \"My Custom Name\"",
13713
+ "<%= config.bin %> <%= command.id %> # Interactive prompt",
13714
+ "<%= config.bin %> <%= command.id %> --reset",
13715
+ "<%= config.bin %> <%= command.id %> --machine # JSON mode for agents"
13716
+ ],
13717
+ "flags": {
13718
+ "reset": {
13719
+ "char": "r",
13720
+ "description": "Reset terminal title to default",
13721
+ "name": "reset",
13722
+ "allowNo": false,
13723
+ "type": "boolean"
13724
+ },
13725
+ "json": {
13726
+ "description": "Output as JSON for AI agents/scripts",
13727
+ "name": "json",
13728
+ "allowNo": false,
13729
+ "type": "boolean"
13730
+ },
13731
+ "machine": {
13732
+ "char": "m",
13733
+ "description": "Output as JSON for AI agents/scripts",
13734
+ "name": "machine",
13735
+ "allowNo": false,
13736
+ "type": "boolean"
13737
+ }
13738
+ },
13739
+ "hasDynamicHelp": false,
13740
+ "hiddenAliases": [],
13741
+ "id": "terminal:title",
13742
+ "pluginAlias": "@proletariat/cli",
13743
+ "pluginName": "@proletariat/cli",
13744
+ "pluginType": "core",
13745
+ "strict": true,
13746
+ "isESM": true,
13747
+ "relativePath": [
13748
+ "dist",
13749
+ "commands",
13750
+ "terminal",
13751
+ "title.js"
13752
+ ]
13753
+ },
13685
13754
  "theme:add-names": {
13686
13755
  "aliases": [],
13687
13756
  "args": {
@@ -15529,23 +15598,351 @@
15529
15598
  "allowNo": false,
15530
15599
  "type": "boolean"
15531
15600
  },
15532
- "to": {
15533
- "description": "Target agent name (for bulk mode)",
15534
- "name": "to",
15601
+ "to": {
15602
+ "description": "Target agent name (for bulk mode)",
15603
+ "name": "to",
15604
+ "hasDynamicHelp": false,
15605
+ "multiple": false,
15606
+ "type": "option"
15607
+ },
15608
+ "from": {
15609
+ "description": "Filter tickets by current assignee (bulk mode)",
15610
+ "name": "from",
15611
+ "hasDynamicHelp": false,
15612
+ "multiple": false,
15613
+ "type": "option"
15614
+ },
15615
+ "bulk": {
15616
+ "char": "b",
15617
+ "description": "Enable bulk mode to reassign multiple tickets",
15618
+ "name": "bulk",
15619
+ "allowNo": false,
15620
+ "type": "boolean"
15621
+ },
15622
+ "force": {
15623
+ "char": "f",
15624
+ "description": "Skip confirmation prompt",
15625
+ "name": "force",
15626
+ "allowNo": false,
15627
+ "type": "boolean"
15628
+ }
15629
+ },
15630
+ "hasDynamicHelp": false,
15631
+ "hiddenAliases": [],
15632
+ "id": "ticket:reassign",
15633
+ "pluginAlias": "@proletariat/cli",
15634
+ "pluginName": "@proletariat/cli",
15635
+ "pluginType": "core",
15636
+ "strict": true,
15637
+ "isESM": true,
15638
+ "relativePath": [
15639
+ "dist",
15640
+ "commands",
15641
+ "ticket",
15642
+ "reassign.js"
15643
+ ]
15644
+ },
15645
+ "ticket:resolve": {
15646
+ "aliases": [],
15647
+ "args": {
15648
+ "ticketId": {
15649
+ "description": "Ticket ID(s) to resolve - prompts with picker if not provided",
15650
+ "name": "ticketId",
15651
+ "required": false
15652
+ }
15653
+ },
15654
+ "description": "Resolve ambiguity questions on tickets flagged by groom",
15655
+ "examples": [
15656
+ "<%= config.bin %> <%= command.id %> TKT-001",
15657
+ "<%= config.bin %> <%= command.id %> TKT-001 TKT-002",
15658
+ "<%= config.bin %> <%= command.id %> # Interactive picker for needs-clarification tickets"
15659
+ ],
15660
+ "flags": {
15661
+ "project": {
15662
+ "char": "P",
15663
+ "description": "Project ID (uses first project if only one exists)",
15664
+ "name": "project",
15665
+ "hasDynamicHelp": false,
15666
+ "multiple": false,
15667
+ "type": "option"
15668
+ },
15669
+ "json": {
15670
+ "aliases": [
15671
+ "machine"
15672
+ ],
15673
+ "char": "m",
15674
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
15675
+ "name": "json",
15676
+ "allowNo": false,
15677
+ "type": "boolean"
15678
+ },
15679
+ "machine": {
15680
+ "char": "m",
15681
+ "description": "Output as JSON for AI agents/scripts",
15682
+ "name": "machine",
15683
+ "allowNo": false,
15684
+ "type": "boolean"
15685
+ }
15686
+ },
15687
+ "hasDynamicHelp": false,
15688
+ "hiddenAliases": [],
15689
+ "id": "ticket:resolve",
15690
+ "pluginAlias": "@proletariat/cli",
15691
+ "pluginName": "@proletariat/cli",
15692
+ "pluginType": "core",
15693
+ "strict": false,
15694
+ "isESM": true,
15695
+ "relativePath": [
15696
+ "dist",
15697
+ "commands",
15698
+ "ticket",
15699
+ "resolve.js"
15700
+ ]
15701
+ },
15702
+ "ticket:show": {
15703
+ "aliases": [],
15704
+ "args": {
15705
+ "ticketId": {
15706
+ "description": "Ticket ID to view - prompts with dropdown if not provided",
15707
+ "name": "ticketId",
15708
+ "required": false
15709
+ }
15710
+ },
15711
+ "description": "View detailed ticket information (alias for ticket view)",
15712
+ "examples": [
15713
+ "<%= config.bin %> <%= command.id %> TICK-001",
15714
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
15715
+ ],
15716
+ "flags": {
15717
+ "project": {
15718
+ "char": "P",
15719
+ "description": "Project ID (uses first project if only one exists)",
15720
+ "name": "project",
15721
+ "hasDynamicHelp": false,
15722
+ "multiple": false,
15723
+ "type": "option"
15724
+ },
15725
+ "json": {
15726
+ "description": "Output as JSON for AI agents/scripts",
15727
+ "name": "json",
15728
+ "allowNo": false,
15729
+ "type": "boolean"
15730
+ },
15731
+ "machine": {
15732
+ "char": "m",
15733
+ "description": "Output as JSON for AI agents/scripts",
15734
+ "name": "machine",
15735
+ "allowNo": false,
15736
+ "type": "boolean"
15737
+ }
15738
+ },
15739
+ "hasDynamicHelp": false,
15740
+ "hidden": true,
15741
+ "hiddenAliases": [],
15742
+ "id": "ticket:show",
15743
+ "pluginAlias": "@proletariat/cli",
15744
+ "pluginName": "@proletariat/cli",
15745
+ "pluginType": "core",
15746
+ "isESM": true,
15747
+ "relativePath": [
15748
+ "dist",
15749
+ "commands",
15750
+ "ticket",
15751
+ "show.js"
15752
+ ]
15753
+ },
15754
+ "ticket:spec": {
15755
+ "aliases": [],
15756
+ "args": {
15757
+ "ticketId": {
15758
+ "description": "Ticket ID",
15759
+ "name": "ticketId",
15760
+ "required": false
15761
+ },
15762
+ "specId": {
15763
+ "description": "Spec ID to link",
15764
+ "name": "specId",
15765
+ "required": false
15766
+ }
15767
+ },
15768
+ "description": "Assign a spec to ticket(s)",
15769
+ "examples": [
15770
+ "<%= config.bin %> <%= command.id %> TKT-001 SPEC-001",
15771
+ "<%= config.bin %> <%= command.id %> TKT-001",
15772
+ "<%= config.bin %> <%= command.id %>",
15773
+ "<%= config.bin %> <%= command.id %> TKT-001 --unlink",
15774
+ "<%= config.bin %> <%= command.id %> --bulk --spec SPEC-001"
15775
+ ],
15776
+ "flags": {
15777
+ "project": {
15778
+ "char": "P",
15779
+ "description": "Project ID (uses first project if only one exists)",
15780
+ "name": "project",
15781
+ "hasDynamicHelp": false,
15782
+ "multiple": false,
15783
+ "type": "option"
15784
+ },
15785
+ "json": {
15786
+ "description": "Output as JSON for AI agents/scripts",
15787
+ "name": "json",
15788
+ "allowNo": false,
15789
+ "type": "boolean"
15790
+ },
15791
+ "machine": {
15792
+ "char": "m",
15793
+ "description": "Output as JSON for AI agents/scripts",
15794
+ "name": "machine",
15795
+ "allowNo": false,
15796
+ "type": "boolean"
15797
+ },
15798
+ "unlink": {
15799
+ "char": "u",
15800
+ "description": "Remove spec from ticket instead of adding",
15801
+ "name": "unlink",
15802
+ "allowNo": false,
15803
+ "type": "boolean"
15804
+ },
15805
+ "bulk": {
15806
+ "char": "b",
15807
+ "description": "Enable bulk mode to assign spec to multiple tickets",
15808
+ "name": "bulk",
15809
+ "allowNo": false,
15810
+ "type": "boolean"
15811
+ },
15812
+ "spec": {
15813
+ "char": "s",
15814
+ "description": "Spec ID to assign (for bulk mode)",
15815
+ "name": "spec",
15816
+ "hasDynamicHelp": false,
15817
+ "multiple": false,
15818
+ "type": "option"
15819
+ }
15820
+ },
15821
+ "hasDynamicHelp": false,
15822
+ "hiddenAliases": [],
15823
+ "id": "ticket:spec",
15824
+ "pluginAlias": "@proletariat/cli",
15825
+ "pluginName": "@proletariat/cli",
15826
+ "pluginType": "core",
15827
+ "strict": true,
15828
+ "isESM": true,
15829
+ "relativePath": [
15830
+ "dist",
15831
+ "commands",
15832
+ "ticket",
15833
+ "spec.js"
15834
+ ]
15835
+ },
15836
+ "ticket:status": {
15837
+ "aliases": [],
15838
+ "args": {
15839
+ "ticketId": {
15840
+ "description": "Ticket ID - prompts with dropdown if not provided",
15841
+ "name": "ticketId",
15842
+ "required": false
15843
+ }
15844
+ },
15845
+ "description": "Show ticket status and details",
15846
+ "examples": [
15847
+ "<%= config.bin %> <%= command.id %>",
15848
+ "<%= config.bin %> <%= command.id %> TICK-001"
15849
+ ],
15850
+ "flags": {
15851
+ "project": {
15852
+ "char": "P",
15853
+ "description": "Project ID (uses first project if only one exists)",
15854
+ "name": "project",
15855
+ "hasDynamicHelp": false,
15856
+ "multiple": false,
15857
+ "type": "option"
15858
+ },
15859
+ "json": {
15860
+ "description": "Output as JSON for AI agents/scripts",
15861
+ "name": "json",
15862
+ "allowNo": false,
15863
+ "type": "boolean"
15864
+ },
15865
+ "machine": {
15866
+ "char": "m",
15867
+ "description": "Output as JSON for AI agents/scripts",
15868
+ "name": "machine",
15869
+ "allowNo": false,
15870
+ "type": "boolean"
15871
+ }
15872
+ },
15873
+ "hasDynamicHelp": false,
15874
+ "hiddenAliases": [],
15875
+ "id": "ticket:status",
15876
+ "pluginAlias": "@proletariat/cli",
15877
+ "pluginName": "@proletariat/cli",
15878
+ "pluginType": "core",
15879
+ "strict": true,
15880
+ "isESM": true,
15881
+ "relativePath": [
15882
+ "dist",
15883
+ "commands",
15884
+ "ticket",
15885
+ "status.js"
15886
+ ]
15887
+ },
15888
+ "ticket:update": {
15889
+ "aliases": [],
15890
+ "args": {
15891
+ "ticketId": {
15892
+ "description": "Ticket ID - prompts with dropdown if not provided",
15893
+ "name": "ticketId",
15894
+ "required": false
15895
+ }
15896
+ },
15897
+ "description": "Update priority/category for ticket(s)",
15898
+ "examples": [
15899
+ "<%= config.bin %> <%= command.id %> TKT-001 --priority P1",
15900
+ "<%= config.bin %> <%= command.id %> TKT-001 --category bug",
15901
+ "<%= config.bin %> <%= command.id %> --bulk",
15902
+ "<%= config.bin %> <%= command.id %> --bulk --priority P1",
15903
+ "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
15904
+ ],
15905
+ "flags": {
15906
+ "project": {
15907
+ "char": "P",
15908
+ "description": "Project ID (uses first project if only one exists)",
15909
+ "name": "project",
15910
+ "hasDynamicHelp": false,
15911
+ "multiple": false,
15912
+ "type": "option"
15913
+ },
15914
+ "json": {
15915
+ "description": "Output as JSON for AI agents/scripts",
15916
+ "name": "json",
15917
+ "allowNo": false,
15918
+ "type": "boolean"
15919
+ },
15920
+ "machine": {
15921
+ "char": "m",
15922
+ "description": "Output as JSON for AI agents/scripts",
15923
+ "name": "machine",
15924
+ "allowNo": false,
15925
+ "type": "boolean"
15926
+ },
15927
+ "priority": {
15928
+ "char": "p",
15929
+ "description": "Set priority (uses workspace priority scale)",
15930
+ "name": "priority",
15535
15931
  "hasDynamicHelp": false,
15536
15932
  "multiple": false,
15537
15933
  "type": "option"
15538
15934
  },
15539
- "from": {
15540
- "description": "Filter tickets by current assignee (bulk mode)",
15541
- "name": "from",
15935
+ "category": {
15936
+ "char": "c",
15937
+ "description": "Set category (e.g., feature, bug, refactor)",
15938
+ "name": "category",
15542
15939
  "hasDynamicHelp": false,
15543
15940
  "multiple": false,
15544
15941
  "type": "option"
15545
15942
  },
15546
15943
  "bulk": {
15547
15944
  "char": "b",
15548
- "description": "Enable bulk mode to reassign multiple tickets",
15945
+ "description": "Enable bulk mode to update multiple tickets",
15549
15946
  "name": "bulk",
15550
15947
  "allowNo": false,
15551
15948
  "type": "boolean"
@@ -15560,7 +15957,7 @@
15560
15957
  },
15561
15958
  "hasDynamicHelp": false,
15562
15959
  "hiddenAliases": [],
15563
- "id": "ticket:reassign",
15960
+ "id": "ticket:update",
15564
15961
  "pluginAlias": "@proletariat/cli",
15565
15962
  "pluginName": "@proletariat/cli",
15566
15963
  "pluginType": "core",
@@ -15570,23 +15967,22 @@
15570
15967
  "dist",
15571
15968
  "commands",
15572
15969
  "ticket",
15573
- "reassign.js"
15970
+ "update.js"
15574
15971
  ]
15575
15972
  },
15576
- "ticket:resolve": {
15973
+ "ticket:view": {
15577
15974
  "aliases": [],
15578
15975
  "args": {
15579
15976
  "ticketId": {
15580
- "description": "Ticket ID(s) to resolve - prompts with picker if not provided",
15977
+ "description": "Ticket ID to view - prompts with dropdown if not provided",
15581
15978
  "name": "ticketId",
15582
15979
  "required": false
15583
15980
  }
15584
15981
  },
15585
- "description": "Resolve ambiguity questions on tickets flagged by groom",
15982
+ "description": "View detailed ticket information",
15586
15983
  "examples": [
15587
- "<%= config.bin %> <%= command.id %> TKT-001",
15588
- "<%= config.bin %> <%= command.id %> TKT-001 TKT-002",
15589
- "<%= config.bin %> <%= command.id %> # Interactive picker for needs-clarification tickets"
15984
+ "<%= config.bin %> <%= command.id %> TICK-001",
15985
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
15590
15986
  ],
15591
15987
  "flags": {
15592
15988
  "project": {
@@ -15598,11 +15994,7 @@
15598
15994
  "type": "option"
15599
15995
  },
15600
15996
  "json": {
15601
- "aliases": [
15602
- "machine"
15603
- ],
15604
- "char": "m",
15605
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
15997
+ "description": "Output as JSON for AI agents/scripts",
15606
15998
  "name": "json",
15607
15999
  "allowNo": false,
15608
16000
  "type": "boolean"
@@ -15617,32 +16009,34 @@
15617
16009
  },
15618
16010
  "hasDynamicHelp": false,
15619
16011
  "hiddenAliases": [],
15620
- "id": "ticket:resolve",
16012
+ "id": "ticket:view",
15621
16013
  "pluginAlias": "@proletariat/cli",
15622
16014
  "pluginName": "@proletariat/cli",
15623
16015
  "pluginType": "core",
15624
- "strict": false,
16016
+ "strict": true,
15625
16017
  "isESM": true,
15626
16018
  "relativePath": [
15627
16019
  "dist",
15628
16020
  "commands",
15629
16021
  "ticket",
15630
- "resolve.js"
16022
+ "view.js"
15631
16023
  ]
15632
16024
  },
15633
- "ticket:show": {
16025
+ "workflow:create": {
15634
16026
  "aliases": [],
15635
16027
  "args": {
15636
- "ticketId": {
15637
- "description": "Ticket ID to view - prompts with dropdown if not provided",
15638
- "name": "ticketId",
16028
+ "name": {
16029
+ "description": "Workflow name",
16030
+ "name": "name",
15639
16031
  "required": false
15640
16032
  }
15641
16033
  },
15642
- "description": "View detailed ticket information (alias for ticket view)",
16034
+ "description": "Create a new custom workflow",
15643
16035
  "examples": [
15644
- "<%= config.bin %> <%= command.id %> TICK-001",
15645
- "<%= config.bin %> <%= command.id %> # Interactive mode"
16036
+ "<%= config.bin %> <%= command.id %> \"My Workflow\"",
16037
+ "<%= config.bin %> <%= command.id %> \"Sprint Board\" --description \"Agile sprint workflow\"",
16038
+ "<%= config.bin %> <%= command.id %> \"Simple\" --statuses \"Todo,In Progress,Done\"",
16039
+ "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
15646
16040
  ],
15647
16041
  "flags": {
15648
16042
  "project": {
@@ -15665,44 +16059,54 @@
15665
16059
  "name": "machine",
15666
16060
  "allowNo": false,
15667
16061
  "type": "boolean"
16062
+ },
16063
+ "description": {
16064
+ "char": "d",
16065
+ "description": "Workflow description",
16066
+ "name": "description",
16067
+ "hasDynamicHelp": false,
16068
+ "multiple": false,
16069
+ "type": "option"
16070
+ },
16071
+ "statuses": {
16072
+ "char": "s",
16073
+ "description": "Comma-separated list of status names (uses default categories)",
16074
+ "name": "statuses",
16075
+ "hasDynamicHelp": false,
16076
+ "multiple": false,
16077
+ "type": "option"
15668
16078
  }
15669
16079
  },
15670
16080
  "hasDynamicHelp": false,
15671
- "hidden": true,
15672
16081
  "hiddenAliases": [],
15673
- "id": "ticket:show",
16082
+ "id": "workflow:create",
15674
16083
  "pluginAlias": "@proletariat/cli",
15675
16084
  "pluginName": "@proletariat/cli",
15676
16085
  "pluginType": "core",
16086
+ "strict": true,
15677
16087
  "isESM": true,
15678
16088
  "relativePath": [
15679
16089
  "dist",
15680
16090
  "commands",
15681
- "ticket",
15682
- "show.js"
16091
+ "workflow",
16092
+ "create.js"
15683
16093
  ]
15684
16094
  },
15685
- "ticket:spec": {
16095
+ "workflow:delete": {
15686
16096
  "aliases": [],
15687
16097
  "args": {
15688
- "ticketId": {
15689
- "description": "Ticket ID",
15690
- "name": "ticketId",
15691
- "required": false
15692
- },
15693
- "specId": {
15694
- "description": "Spec ID to link",
15695
- "name": "specId",
16098
+ "id": {
16099
+ "description": "Workflow ID to delete - prompts with dropdown if not provided",
16100
+ "name": "id",
15696
16101
  "required": false
15697
16102
  }
15698
16103
  },
15699
- "description": "Assign a spec to ticket(s)",
16104
+ "description": "Delete a custom workflow",
15700
16105
  "examples": [
15701
- "<%= config.bin %> <%= command.id %> TKT-001 SPEC-001",
15702
- "<%= config.bin %> <%= command.id %> TKT-001",
15703
- "<%= config.bin %> <%= command.id %>",
15704
- "<%= config.bin %> <%= command.id %> TKT-001 --unlink",
15705
- "<%= config.bin %> <%= command.id %> --bulk --spec SPEC-001"
16106
+ "<%= config.bin %> <%= command.id %> my-workflow",
16107
+ "<%= config.bin %> <%= command.id %> my-workflow --force # Skip confirmation",
16108
+ "<%= config.bin %> <%= command.id %> # Interactive selection",
16109
+ "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
15706
16110
  ],
15707
16111
  "flags": {
15708
16112
  "project": {
@@ -15726,32 +16130,17 @@
15726
16130
  "allowNo": false,
15727
16131
  "type": "boolean"
15728
16132
  },
15729
- "unlink": {
15730
- "char": "u",
15731
- "description": "Remove spec from ticket instead of adding",
15732
- "name": "unlink",
15733
- "allowNo": false,
15734
- "type": "boolean"
15735
- },
15736
- "bulk": {
15737
- "char": "b",
15738
- "description": "Enable bulk mode to assign spec to multiple tickets",
15739
- "name": "bulk",
16133
+ "force": {
16134
+ "char": "f",
16135
+ "description": "Skip confirmation prompt",
16136
+ "name": "force",
15740
16137
  "allowNo": false,
15741
16138
  "type": "boolean"
15742
- },
15743
- "spec": {
15744
- "char": "s",
15745
- "description": "Spec ID to assign (for bulk mode)",
15746
- "name": "spec",
15747
- "hasDynamicHelp": false,
15748
- "multiple": false,
15749
- "type": "option"
15750
16139
  }
15751
16140
  },
15752
16141
  "hasDynamicHelp": false,
15753
16142
  "hiddenAliases": [],
15754
- "id": "ticket:spec",
16143
+ "id": "workflow:delete",
15755
16144
  "pluginAlias": "@proletariat/cli",
15756
16145
  "pluginName": "@proletariat/cli",
15757
16146
  "pluginType": "core",
@@ -15760,23 +16149,18 @@
15760
16149
  "relativePath": [
15761
16150
  "dist",
15762
16151
  "commands",
15763
- "ticket",
15764
- "spec.js"
16152
+ "workflow",
16153
+ "delete.js"
15765
16154
  ]
15766
16155
  },
15767
- "ticket:status": {
16156
+ "workflow": {
15768
16157
  "aliases": [],
15769
- "args": {
15770
- "ticketId": {
15771
- "description": "Ticket ID - prompts with dropdown if not provided",
15772
- "name": "ticketId",
15773
- "required": false
15774
- }
15775
- },
15776
- "description": "Show ticket status and details",
16158
+ "args": {},
16159
+ "description": "List all available workflows (alias for workflow list)",
15777
16160
  "examples": [
15778
16161
  "<%= config.bin %> <%= command.id %>",
15779
- "<%= config.bin %> <%= command.id %> TICK-001"
16162
+ "<%= config.bin %> <%= command.id %> --builtin",
16163
+ "<%= config.bin %> <%= command.id %> --json"
15780
16164
  ],
15781
16165
  "flags": {
15782
16166
  "project": {
@@ -15799,11 +16183,23 @@
15799
16183
  "name": "machine",
15800
16184
  "allowNo": false,
15801
16185
  "type": "boolean"
16186
+ },
16187
+ "builtin": {
16188
+ "description": "Show only built-in workflows",
16189
+ "name": "builtin",
16190
+ "allowNo": false,
16191
+ "type": "boolean"
16192
+ },
16193
+ "custom": {
16194
+ "description": "Show only custom workflows",
16195
+ "name": "custom",
16196
+ "allowNo": false,
16197
+ "type": "boolean"
15802
16198
  }
15803
16199
  },
15804
16200
  "hasDynamicHelp": false,
15805
16201
  "hiddenAliases": [],
15806
- "id": "ticket:status",
16202
+ "id": "workflow",
15807
16203
  "pluginAlias": "@proletariat/cli",
15808
16204
  "pluginName": "@proletariat/cli",
15809
16205
  "pluginType": "core",
@@ -15812,26 +16208,18 @@
15812
16208
  "relativePath": [
15813
16209
  "dist",
15814
16210
  "commands",
15815
- "ticket",
15816
- "status.js"
16211
+ "workflow",
16212
+ "index.js"
15817
16213
  ]
15818
16214
  },
15819
- "ticket:update": {
16215
+ "workflow:list": {
15820
16216
  "aliases": [],
15821
- "args": {
15822
- "ticketId": {
15823
- "description": "Ticket ID - prompts with dropdown if not provided",
15824
- "name": "ticketId",
15825
- "required": false
15826
- }
15827
- },
15828
- "description": "Update priority/category for ticket(s)",
16217
+ "args": {},
16218
+ "description": "List all available workflows",
15829
16219
  "examples": [
15830
- "<%= config.bin %> <%= command.id %> TKT-001 --priority P1",
15831
- "<%= config.bin %> <%= command.id %> TKT-001 --category bug",
15832
- "<%= config.bin %> <%= command.id %> --bulk",
15833
- "<%= config.bin %> <%= command.id %> --bulk --priority P1",
15834
- "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
16220
+ "<%= config.bin %> <%= command.id %>",
16221
+ "<%= config.bin %> <%= command.id %> --builtin",
16222
+ "<%= config.bin %> <%= command.id %> --machine"
15835
16223
  ],
15836
16224
  "flags": {
15837
16225
  "project": {
@@ -15855,40 +16243,75 @@
15855
16243
  "allowNo": false,
15856
16244
  "type": "boolean"
15857
16245
  },
15858
- "priority": {
15859
- "char": "p",
15860
- "description": "Set priority (uses workspace priority scale)",
15861
- "name": "priority",
15862
- "hasDynamicHelp": false,
15863
- "multiple": false,
15864
- "type": "option"
16246
+ "builtin": {
16247
+ "description": "Show only built-in workflows",
16248
+ "name": "builtin",
16249
+ "allowNo": false,
16250
+ "type": "boolean"
15865
16251
  },
15866
- "category": {
15867
- "char": "c",
15868
- "description": "Set category (e.g., feature, bug, refactor)",
15869
- "name": "category",
16252
+ "custom": {
16253
+ "description": "Show only custom workflows",
16254
+ "name": "custom",
16255
+ "allowNo": false,
16256
+ "type": "boolean"
16257
+ }
16258
+ },
16259
+ "hasDynamicHelp": false,
16260
+ "hiddenAliases": [],
16261
+ "id": "workflow:list",
16262
+ "pluginAlias": "@proletariat/cli",
16263
+ "pluginName": "@proletariat/cli",
16264
+ "pluginType": "core",
16265
+ "strict": true,
16266
+ "isESM": true,
16267
+ "relativePath": [
16268
+ "dist",
16269
+ "commands",
16270
+ "workflow",
16271
+ "list.js"
16272
+ ]
16273
+ },
16274
+ "workflow:setup": {
16275
+ "aliases": [],
16276
+ "args": {},
16277
+ "description": "Pull board states from provider and wire actions to state transitions",
16278
+ "examples": [
16279
+ "<%= config.bin %> <%= command.id %>",
16280
+ "<%= config.bin %> <%= command.id %> --accept-defaults",
16281
+ "<%= config.bin %> <%= command.id %> --machine"
16282
+ ],
16283
+ "flags": {
16284
+ "project": {
16285
+ "char": "P",
16286
+ "description": "Project ID (uses first project if only one exists)",
16287
+ "name": "project",
15870
16288
  "hasDynamicHelp": false,
15871
16289
  "multiple": false,
15872
16290
  "type": "option"
15873
16291
  },
15874
- "bulk": {
15875
- "char": "b",
15876
- "description": "Enable bulk mode to update multiple tickets",
15877
- "name": "bulk",
16292
+ "json": {
16293
+ "description": "Output as JSON for AI agents/scripts",
16294
+ "name": "json",
15878
16295
  "allowNo": false,
15879
16296
  "type": "boolean"
15880
16297
  },
15881
- "force": {
15882
- "char": "f",
15883
- "description": "Skip confirmation prompt",
15884
- "name": "force",
16298
+ "machine": {
16299
+ "char": "m",
16300
+ "description": "Output as JSON for AI agents/scripts",
16301
+ "name": "machine",
16302
+ "allowNo": false,
16303
+ "type": "boolean"
16304
+ },
16305
+ "accept-defaults": {
16306
+ "description": "Accept all default action suggestions without prompting",
16307
+ "name": "accept-defaults",
15885
16308
  "allowNo": false,
15886
16309
  "type": "boolean"
15887
16310
  }
15888
16311
  },
15889
16312
  "hasDynamicHelp": false,
15890
16313
  "hiddenAliases": [],
15891
- "id": "ticket:update",
16314
+ "id": "workflow:setup",
15892
16315
  "pluginAlias": "@proletariat/cli",
15893
16316
  "pluginName": "@proletariat/cli",
15894
16317
  "pluginType": "core",
@@ -15897,23 +16320,24 @@
15897
16320
  "relativePath": [
15898
16321
  "dist",
15899
16322
  "commands",
15900
- "ticket",
15901
- "update.js"
16323
+ "workflow",
16324
+ "setup.js"
15902
16325
  ]
15903
16326
  },
15904
- "ticket:view": {
16327
+ "workflow:show": {
15905
16328
  "aliases": [],
15906
16329
  "args": {
15907
- "ticketId": {
15908
- "description": "Ticket ID to view - prompts with dropdown if not provided",
15909
- "name": "ticketId",
16330
+ "id": {
16331
+ "description": "Workflow ID - prompts with dropdown if not provided",
16332
+ "name": "id",
15910
16333
  "required": false
15911
16334
  }
15912
16335
  },
15913
- "description": "View detailed ticket information",
16336
+ "description": "View details of a workflow (alias for workflow view)",
15914
16337
  "examples": [
15915
- "<%= config.bin %> <%= command.id %> TICK-001",
15916
- "<%= config.bin %> <%= command.id %> # Interactive mode"
16338
+ "<%= config.bin %> <%= command.id %> default",
16339
+ "<%= config.bin %> <%= command.id %> # Interactive selection",
16340
+ "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
15917
16341
  ],
15918
16342
  "flags": {
15919
16343
  "project": {
@@ -15939,34 +16363,34 @@
15939
16363
  }
15940
16364
  },
15941
16365
  "hasDynamicHelp": false,
16366
+ "hidden": true,
15942
16367
  "hiddenAliases": [],
15943
- "id": "ticket:view",
16368
+ "id": "workflow:show",
15944
16369
  "pluginAlias": "@proletariat/cli",
15945
16370
  "pluginName": "@proletariat/cli",
15946
16371
  "pluginType": "core",
15947
- "strict": true,
15948
16372
  "isESM": true,
15949
16373
  "relativePath": [
15950
16374
  "dist",
15951
16375
  "commands",
15952
- "ticket",
15953
- "view.js"
16376
+ "workflow",
16377
+ "show.js"
15954
16378
  ]
15955
16379
  },
15956
- "workflow:create": {
16380
+ "workflow:switch": {
15957
16381
  "aliases": [],
15958
16382
  "args": {
15959
- "name": {
15960
- "description": "Workflow name",
15961
- "name": "name",
16383
+ "workflow": {
16384
+ "description": "Workflow ID to switch to",
16385
+ "name": "workflow",
15962
16386
  "required": false
15963
16387
  }
15964
16388
  },
15965
- "description": "Create a new custom workflow",
16389
+ "description": "Switch a project to use a different workflow",
15966
16390
  "examples": [
15967
- "<%= config.bin %> <%= command.id %> \"My Workflow\"",
15968
- "<%= config.bin %> <%= command.id %> \"Sprint Board\" --description \"Agile sprint workflow\"",
15969
- "<%= config.bin %> <%= command.id %> \"Simple\" --statuses \"Todo,In Progress,Done\"",
16391
+ "<%= config.bin %> <%= command.id %> kanban",
16392
+ "<%= config.bin %> <%= command.id %> linear --project my-project",
16393
+ "<%= config.bin %> <%= command.id %> --force # Skip confirmation",
15970
16394
  "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
15971
16395
  ],
15972
16396
  "flags": {
@@ -15991,26 +16415,17 @@
15991
16415
  "allowNo": false,
15992
16416
  "type": "boolean"
15993
16417
  },
15994
- "description": {
15995
- "char": "d",
15996
- "description": "Workflow description",
15997
- "name": "description",
15998
- "hasDynamicHelp": false,
15999
- "multiple": false,
16000
- "type": "option"
16001
- },
16002
- "statuses": {
16003
- "char": "s",
16004
- "description": "Comma-separated list of status names (uses default categories)",
16005
- "name": "statuses",
16006
- "hasDynamicHelp": false,
16007
- "multiple": false,
16008
- "type": "option"
16418
+ "force": {
16419
+ "char": "f",
16420
+ "description": "Skip confirmation prompt",
16421
+ "name": "force",
16422
+ "allowNo": false,
16423
+ "type": "boolean"
16009
16424
  }
16010
16425
  },
16011
16426
  "hasDynamicHelp": false,
16012
16427
  "hiddenAliases": [],
16013
- "id": "workflow:create",
16428
+ "id": "workflow:switch",
16014
16429
  "pluginAlias": "@proletariat/cli",
16015
16430
  "pluginName": "@proletariat/cli",
16016
16431
  "pluginType": "core",
@@ -16020,22 +16435,21 @@
16020
16435
  "dist",
16021
16436
  "commands",
16022
16437
  "workflow",
16023
- "create.js"
16438
+ "switch.js"
16024
16439
  ]
16025
16440
  },
16026
- "workflow:delete": {
16441
+ "workflow:view": {
16027
16442
  "aliases": [],
16028
16443
  "args": {
16029
16444
  "id": {
16030
- "description": "Workflow ID to delete - prompts with dropdown if not provided",
16445
+ "description": "Workflow ID - prompts with dropdown if not provided",
16031
16446
  "name": "id",
16032
16447
  "required": false
16033
16448
  }
16034
16449
  },
16035
- "description": "Delete a custom workflow",
16450
+ "description": "View details of a workflow",
16036
16451
  "examples": [
16037
- "<%= config.bin %> <%= command.id %> my-workflow",
16038
- "<%= config.bin %> <%= command.id %> my-workflow --force # Skip confirmation",
16452
+ "<%= config.bin %> <%= command.id %> default",
16039
16453
  "<%= config.bin %> <%= command.id %> # Interactive selection",
16040
16454
  "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
16041
16455
  ],
@@ -16060,18 +16474,11 @@
16060
16474
  "name": "machine",
16061
16475
  "allowNo": false,
16062
16476
  "type": "boolean"
16063
- },
16064
- "force": {
16065
- "char": "f",
16066
- "description": "Skip confirmation prompt",
16067
- "name": "force",
16068
- "allowNo": false,
16069
- "type": "boolean"
16070
16477
  }
16071
16478
  },
16072
16479
  "hasDynamicHelp": false,
16073
16480
  "hiddenAliases": [],
16074
- "id": "workflow:delete",
16481
+ "id": "workflow:view",
16075
16482
  "pluginAlias": "@proletariat/cli",
16076
16483
  "pluginName": "@proletariat/cli",
16077
16484
  "pluginType": "core",
@@ -16081,17 +16488,17 @@
16081
16488
  "dist",
16082
16489
  "commands",
16083
16490
  "workflow",
16084
- "delete.js"
16491
+ "view.js"
16085
16492
  ]
16086
16493
  },
16087
- "workflow": {
16494
+ "workflow-rule:create": {
16088
16495
  "aliases": [],
16089
16496
  "args": {},
16090
- "description": "List all available workflows (alias for workflow list)",
16497
+ "description": "Create a new workflow rule",
16091
16498
  "examples": [
16092
- "<%= config.bin %> <%= command.id %>",
16093
- "<%= config.bin %> <%= command.id %> --builtin",
16094
- "<%= config.bin %> <%= command.id %> --json"
16499
+ "<%= config.bin %> <%= command.id %> --to-state \"In Progress\" --action-id implement --trigger on_enter",
16500
+ "<%= config.bin %> <%= command.id %> --from-state \"Backlog\" --to-state \"Todo\" --action-id groom",
16501
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
16095
16502
  ],
16096
16503
  "flags": {
16097
16504
  "project": {
@@ -16115,22 +16522,49 @@
16115
16522
  "allowNo": false,
16116
16523
  "type": "boolean"
16117
16524
  },
16118
- "builtin": {
16119
- "description": "Show only built-in workflows",
16120
- "name": "builtin",
16121
- "allowNo": false,
16122
- "type": "boolean"
16525
+ "from-state": {
16526
+ "description": "Source state (empty = any source state)",
16527
+ "name": "from-state",
16528
+ "hasDynamicHelp": false,
16529
+ "multiple": false,
16530
+ "type": "option"
16123
16531
  },
16124
- "custom": {
16125
- "description": "Show only custom workflows",
16126
- "name": "custom",
16127
- "allowNo": false,
16532
+ "to-state": {
16533
+ "description": "Target state that triggers the rule [required]",
16534
+ "name": "to-state",
16535
+ "hasDynamicHelp": false,
16536
+ "multiple": false,
16537
+ "type": "option"
16538
+ },
16539
+ "action-id": {
16540
+ "description": "Action to fire when rule matches [required]",
16541
+ "name": "action-id",
16542
+ "hasDynamicHelp": false,
16543
+ "multiple": false,
16544
+ "type": "option"
16545
+ },
16546
+ "trigger": {
16547
+ "description": "Trigger type",
16548
+ "name": "trigger",
16549
+ "default": "manual",
16550
+ "hasDynamicHelp": false,
16551
+ "multiple": false,
16552
+ "options": [
16553
+ "manual",
16554
+ "on_enter"
16555
+ ],
16556
+ "type": "option"
16557
+ },
16558
+ "enabled": {
16559
+ "description": "Whether the rule is enabled",
16560
+ "name": "enabled",
16561
+ "allowNo": true,
16128
16562
  "type": "boolean"
16129
16563
  }
16130
16564
  },
16131
16565
  "hasDynamicHelp": false,
16132
16566
  "hiddenAliases": [],
16133
- "id": "workflow",
16567
+ "id": "workflow-rule:create",
16134
16568
  "pluginAlias": "@proletariat/cli",
16135
16569
  "pluginName": "@proletariat/cli",
16136
16570
  "pluginType": "core",
@@ -16139,18 +16573,23 @@
16139
16573
  "relativePath": [
16140
16574
  "dist",
16141
16575
  "commands",
16142
- "workflow",
16143
- "index.js"
16576
+ "workflow-rule",
16577
+ "create.js"
16144
16578
  ]
16145
16579
  },
16146
- "workflow:list": {
16580
+ "workflow-rule:delete": {
16147
16581
  "aliases": [],
16148
- "args": {},
16149
- "description": "List all available workflows",
16582
+ "args": {
16583
+ "id": {
16584
+ "description": "Rule ID to delete",
16585
+ "name": "id",
16586
+ "required": true
16587
+ }
16588
+ },
16589
+ "description": "Delete a workflow rule",
16150
16590
  "examples": [
16151
- "<%= config.bin %> <%= command.id %>",
16152
- "<%= config.bin %> <%= command.id %> --builtin",
16153
- "<%= config.bin %> <%= command.id %> --machine"
16591
+ "<%= config.bin %> <%= command.id %> todo-implement",
16592
+ "<%= config.bin %> <%= command.id %> todo-implement --force"
16154
16593
  ],
16155
16594
  "flags": {
16156
16595
  "project": {
@@ -16174,22 +16613,17 @@
16174
16613
  "allowNo": false,
16175
16614
  "type": "boolean"
16176
16615
  },
16177
- "builtin": {
16178
- "description": "Show only built-in workflows",
16179
- "name": "builtin",
16180
- "allowNo": false,
16181
- "type": "boolean"
16182
- },
16183
- "custom": {
16184
- "description": "Show only custom workflows",
16185
- "name": "custom",
16616
+ "force": {
16617
+ "char": "f",
16618
+ "description": "Skip confirmation",
16619
+ "name": "force",
16186
16620
  "allowNo": false,
16187
16621
  "type": "boolean"
16188
16622
  }
16189
16623
  },
16190
16624
  "hasDynamicHelp": false,
16191
16625
  "hiddenAliases": [],
16192
- "id": "workflow:list",
16626
+ "id": "workflow-rule:delete",
16193
16627
  "pluginAlias": "@proletariat/cli",
16194
16628
  "pluginName": "@proletariat/cli",
16195
16629
  "pluginType": "core",
@@ -16198,24 +16632,18 @@
16198
16632
  "relativePath": [
16199
16633
  "dist",
16200
16634
  "commands",
16201
- "workflow",
16202
- "list.js"
16635
+ "workflow-rule",
16636
+ "delete.js"
16203
16637
  ]
16204
16638
  },
16205
- "workflow:show": {
16206
- "aliases": [],
16207
- "args": {
16208
- "id": {
16209
- "description": "Workflow ID - prompts with dropdown if not provided",
16210
- "name": "id",
16211
- "required": false
16212
- }
16213
- },
16214
- "description": "View details of a workflow (alias for workflow view)",
16639
+ "workflow-rule": {
16640
+ "aliases": [
16641
+ "workflow-rules"
16642
+ ],
16643
+ "args": {},
16644
+ "description": "Interactive menu for workflow rule operations",
16215
16645
  "examples": [
16216
- "<%= config.bin %> <%= command.id %> default",
16217
- "<%= config.bin %> <%= command.id %> # Interactive selection",
16218
- "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
16646
+ "<%= config.bin %> <%= command.id %>"
16219
16647
  ],
16220
16648
  "flags": {
16221
16649
  "project": {
@@ -16241,35 +16669,29 @@
16241
16669
  }
16242
16670
  },
16243
16671
  "hasDynamicHelp": false,
16244
- "hidden": true,
16245
16672
  "hiddenAliases": [],
16246
- "id": "workflow:show",
16673
+ "id": "workflow-rule",
16247
16674
  "pluginAlias": "@proletariat/cli",
16248
16675
  "pluginName": "@proletariat/cli",
16249
16676
  "pluginType": "core",
16677
+ "strict": true,
16250
16678
  "isESM": true,
16251
16679
  "relativePath": [
16252
16680
  "dist",
16253
16681
  "commands",
16254
- "workflow",
16255
- "show.js"
16682
+ "workflow-rule",
16683
+ "index.js"
16256
16684
  ]
16257
16685
  },
16258
- "workflow:switch": {
16686
+ "workflow-rule:list": {
16259
16687
  "aliases": [],
16260
- "args": {
16261
- "workflow": {
16262
- "description": "Workflow ID to switch to",
16263
- "name": "workflow",
16264
- "required": false
16265
- }
16266
- },
16267
- "description": "Switch a project to use a different workflow",
16688
+ "args": {},
16689
+ "description": "List workflow rules",
16268
16690
  "examples": [
16269
- "<%= config.bin %> <%= command.id %> kanban",
16270
- "<%= config.bin %> <%= command.id %> linear --project my-project",
16271
- "<%= config.bin %> <%= command.id %> --force # Skip confirmation",
16272
- "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
16691
+ "<%= config.bin %> <%= command.id %>",
16692
+ "<%= config.bin %> <%= command.id %> --to-state \"In Progress\"",
16693
+ "<%= config.bin %> <%= command.id %> --trigger on_enter",
16694
+ "<%= config.bin %> <%= command.id %> --enabled"
16273
16695
  ],
16274
16696
  "flags": {
16275
16697
  "project": {
@@ -16293,17 +16715,48 @@
16293
16715
  "allowNo": false,
16294
16716
  "type": "boolean"
16295
16717
  },
16296
- "force": {
16297
- "char": "f",
16298
- "description": "Skip confirmation prompt",
16299
- "name": "force",
16300
- "allowNo": false,
16718
+ "to-state": {
16719
+ "description": "Filter by target state",
16720
+ "name": "to-state",
16721
+ "hasDynamicHelp": false,
16722
+ "multiple": false,
16723
+ "type": "option"
16724
+ },
16725
+ "from-state": {
16726
+ "description": "Filter by source state",
16727
+ "name": "from-state",
16728
+ "hasDynamicHelp": false,
16729
+ "multiple": false,
16730
+ "type": "option"
16731
+ },
16732
+ "action-id": {
16733
+ "description": "Filter by action ID",
16734
+ "name": "action-id",
16735
+ "hasDynamicHelp": false,
16736
+ "multiple": false,
16737
+ "type": "option"
16738
+ },
16739
+ "trigger": {
16740
+ "description": "Filter by trigger type",
16741
+ "name": "trigger",
16742
+ "hasDynamicHelp": false,
16743
+ "multiple": false,
16744
+ "options": [
16745
+ "manual",
16746
+ "on_enter"
16747
+ ],
16748
+ "type": "option"
16749
+ },
16750
+ "enabled": {
16751
+ "description": "Show only enabled rules",
16752
+ "name": "enabled",
16753
+ "allowNo": true,
16301
16754
  "type": "boolean"
16302
16755
  }
16303
16756
  },
16304
16757
  "hasDynamicHelp": false,
16305
16758
  "hiddenAliases": [],
16306
- "id": "workflow:switch",
16759
+ "id": "workflow-rule:list",
16307
16760
  "pluginAlias": "@proletariat/cli",
16308
16761
  "pluginName": "@proletariat/cli",
16309
16762
  "pluginType": "core",
@@ -16312,24 +16765,24 @@
16312
16765
  "relativePath": [
16313
16766
  "dist",
16314
16767
  "commands",
16315
- "workflow",
16316
- "switch.js"
16768
+ "workflow-rule",
16769
+ "list.js"
16317
16770
  ]
16318
16771
  },
16319
- "workflow:view": {
16772
+ "workflow-rule:update": {
16320
16773
  "aliases": [],
16321
16774
  "args": {
16322
16775
  "id": {
16323
- "description": "Workflow ID - prompts with dropdown if not provided",
16776
+ "description": "Rule ID to update",
16324
16777
  "name": "id",
16325
- "required": false
16778
+ "required": true
16326
16779
  }
16327
16780
  },
16328
- "description": "View details of a workflow",
16781
+ "description": "Update a workflow rule",
16329
16782
  "examples": [
16330
- "<%= config.bin %> <%= command.id %> default",
16331
- "<%= config.bin %> <%= command.id %> # Interactive selection",
16332
- "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
16783
+ "<%= config.bin %> <%= command.id %> todo-implement --trigger on_enter",
16784
+ "<%= config.bin %> <%= command.id %> todo-implement --no-enabled",
16785
+ "<%= config.bin %> <%= command.id %> todo-implement --action-id continue"
16333
16786
  ],
16334
16787
  "flags": {
16335
16788
  "project": {
@@ -16352,11 +16805,49 @@
16352
16805
  "name": "machine",
16353
16806
  "allowNo": false,
16354
16807
  "type": "boolean"
16808
+ },
16809
+ "from-state": {
16810
+ "description": "New source state (empty string = any state)",
16811
+ "name": "from-state",
16812
+ "hasDynamicHelp": false,
16813
+ "multiple": false,
16814
+ "type": "option"
16815
+ },
16816
+ "to-state": {
16817
+ "description": "New target state",
16818
+ "name": "to-state",
16819
+ "hasDynamicHelp": false,
16820
+ "multiple": false,
16821
+ "type": "option"
16822
+ },
16823
+ "action-id": {
16824
+ "description": "New action ID",
16825
+ "name": "action-id",
16826
+ "hasDynamicHelp": false,
16827
+ "multiple": false,
16828
+ "type": "option"
16829
+ },
16830
+ "trigger": {
16831
+ "description": "New trigger type",
16832
+ "name": "trigger",
16833
+ "hasDynamicHelp": false,
16834
+ "multiple": false,
16835
+ "options": [
16836
+ "manual",
16837
+ "on_enter"
16838
+ ],
16839
+ "type": "option"
16840
+ },
16841
+ "enabled": {
16842
+ "description": "Enable or disable the rule",
16843
+ "name": "enabled",
16844
+ "allowNo": true,
16845
+ "type": "boolean"
16355
16846
  }
16356
16847
  },
16357
16848
  "hasDynamicHelp": false,
16358
16849
  "hiddenAliases": [],
16359
- "id": "workflow:view",
16850
+ "id": "workflow-rule:update",
16360
16851
  "pluginAlias": "@proletariat/cli",
16361
16852
  "pluginName": "@proletariat/cli",
16362
16853
  "pluginType": "core",
@@ -16365,8 +16856,8 @@
16365
16856
  "relativePath": [
16366
16857
  "dist",
16367
16858
  "commands",
16368
- "workflow",
16369
- "view.js"
16859
+ "workflow-rule",
16860
+ "update.js"
16370
16861
  ]
16371
16862
  },
16372
16863
  "work:asana": {
@@ -20768,5 +21259,5 @@
20768
21259
  ]
20769
21260
  }
20770
21261
  },
20771
- "version": "0.3.70"
21262
+ "version": "0.3.72"
20772
21263
  }