@proletariat/cli 0.3.41 → 0.3.43

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 (2) hide show
  1. package/oclif.manifest.json +962 -962
  2. package/package.json +1 -1
@@ -7413,107 +7413,6 @@
7413
7413
  "view.js"
7414
7414
  ]
7415
7415
  },
7416
- "qa": {
7417
- "aliases": [
7418
- "explore"
7419
- ],
7420
- "args": {},
7421
- "description": "Spawn an exploratory QA agent to autonomously test the CLI (no ticket required)",
7422
- "examples": [
7423
- "<%= config.bin %> <%= command.id %> # Quick launch QA agent",
7424
- "<%= config.bin %> <%= command.id %> --seed # Seed test data first",
7425
- "<%= config.bin %> <%= command.id %> --watch # Stream agent's tmux screen",
7426
- "<%= config.bin %> <%= command.id %> --environment host # Run on host instead of container",
7427
- "<%= config.bin %> <%= command.id %> --seed --watch # Seed data and watch live"
7428
- ],
7429
- "flags": {
7430
- "json": {
7431
- "description": "Output as JSON for AI agents/scripts",
7432
- "name": "json",
7433
- "allowNo": false,
7434
- "type": "boolean"
7435
- },
7436
- "machine": {
7437
- "char": "m",
7438
- "description": "Output as JSON for AI agents/scripts",
7439
- "name": "machine",
7440
- "allowNo": false,
7441
- "type": "boolean"
7442
- },
7443
- "seed": {
7444
- "char": "s",
7445
- "description": "Seed test data before starting QA (runs seed-explore-data.mjs)",
7446
- "name": "seed",
7447
- "allowNo": false,
7448
- "type": "boolean"
7449
- },
7450
- "watch": {
7451
- "char": "w",
7452
- "description": "Stream the agent's tmux screen to your terminal in real-time",
7453
- "name": "watch",
7454
- "allowNo": false,
7455
- "type": "boolean"
7456
- },
7457
- "environment": {
7458
- "char": "e",
7459
- "description": "Where to run (devcontainer or host)",
7460
- "name": "environment",
7461
- "hasDynamicHelp": false,
7462
- "multiple": false,
7463
- "options": [
7464
- "devcontainer",
7465
- "host"
7466
- ],
7467
- "type": "option"
7468
- },
7469
- "display-mode": {
7470
- "char": "d",
7471
- "description": "How to display output (foreground=current terminal, terminal=new tab, background=detached)",
7472
- "name": "display-mode",
7473
- "hasDynamicHelp": false,
7474
- "multiple": false,
7475
- "options": [
7476
- "terminal",
7477
- "background",
7478
- "foreground"
7479
- ],
7480
- "type": "option"
7481
- },
7482
- "permission-mode": {
7483
- "char": "p",
7484
- "description": "Permission mode (danger: skip prompts, safe: require approval)",
7485
- "name": "permission-mode",
7486
- "hasDynamicHelp": false,
7487
- "multiple": false,
7488
- "options": [
7489
- "danger",
7490
- "safe"
7491
- ],
7492
- "type": "option"
7493
- },
7494
- "prompt": {
7495
- "description": "Additional instructions to append to the QA prompt",
7496
- "name": "prompt",
7497
- "hasDynamicHelp": false,
7498
- "multiple": false,
7499
- "type": "option"
7500
- }
7501
- },
7502
- "hasDynamicHelp": false,
7503
- "hiddenAliases": [],
7504
- "id": "qa",
7505
- "pluginAlias": "@proletariat/cli",
7506
- "pluginName": "@proletariat/cli",
7507
- "pluginType": "core",
7508
- "strict": true,
7509
- "isESM": true,
7510
- "relativePath": [
7511
- "dist",
7512
- "commands",
7513
- "qa",
7514
- "index.js"
7515
- ]
7516
- },
7517
7416
  "repo:add": {
7518
7417
  "aliases": [],
7519
7418
  "args": {
@@ -7906,6 +7805,107 @@
7906
7805
  "view.js"
7907
7806
  ]
7908
7807
  },
7808
+ "qa": {
7809
+ "aliases": [
7810
+ "explore"
7811
+ ],
7812
+ "args": {},
7813
+ "description": "Spawn an exploratory QA agent to autonomously test the CLI (no ticket required)",
7814
+ "examples": [
7815
+ "<%= config.bin %> <%= command.id %> # Quick launch QA agent",
7816
+ "<%= config.bin %> <%= command.id %> --seed # Seed test data first",
7817
+ "<%= config.bin %> <%= command.id %> --watch # Stream agent's tmux screen",
7818
+ "<%= config.bin %> <%= command.id %> --environment host # Run on host instead of container",
7819
+ "<%= config.bin %> <%= command.id %> --seed --watch # Seed data and watch live"
7820
+ ],
7821
+ "flags": {
7822
+ "json": {
7823
+ "description": "Output as JSON for AI agents/scripts",
7824
+ "name": "json",
7825
+ "allowNo": false,
7826
+ "type": "boolean"
7827
+ },
7828
+ "machine": {
7829
+ "char": "m",
7830
+ "description": "Output as JSON for AI agents/scripts",
7831
+ "name": "machine",
7832
+ "allowNo": false,
7833
+ "type": "boolean"
7834
+ },
7835
+ "seed": {
7836
+ "char": "s",
7837
+ "description": "Seed test data before starting QA (runs seed-explore-data.mjs)",
7838
+ "name": "seed",
7839
+ "allowNo": false,
7840
+ "type": "boolean"
7841
+ },
7842
+ "watch": {
7843
+ "char": "w",
7844
+ "description": "Stream the agent's tmux screen to your terminal in real-time",
7845
+ "name": "watch",
7846
+ "allowNo": false,
7847
+ "type": "boolean"
7848
+ },
7849
+ "environment": {
7850
+ "char": "e",
7851
+ "description": "Where to run (devcontainer or host)",
7852
+ "name": "environment",
7853
+ "hasDynamicHelp": false,
7854
+ "multiple": false,
7855
+ "options": [
7856
+ "devcontainer",
7857
+ "host"
7858
+ ],
7859
+ "type": "option"
7860
+ },
7861
+ "display-mode": {
7862
+ "char": "d",
7863
+ "description": "How to display output (foreground=current terminal, terminal=new tab, background=detached)",
7864
+ "name": "display-mode",
7865
+ "hasDynamicHelp": false,
7866
+ "multiple": false,
7867
+ "options": [
7868
+ "terminal",
7869
+ "background",
7870
+ "foreground"
7871
+ ],
7872
+ "type": "option"
7873
+ },
7874
+ "permission-mode": {
7875
+ "char": "p",
7876
+ "description": "Permission mode (danger: skip prompts, safe: require approval)",
7877
+ "name": "permission-mode",
7878
+ "hasDynamicHelp": false,
7879
+ "multiple": false,
7880
+ "options": [
7881
+ "danger",
7882
+ "safe"
7883
+ ],
7884
+ "type": "option"
7885
+ },
7886
+ "prompt": {
7887
+ "description": "Additional instructions to append to the QA prompt",
7888
+ "name": "prompt",
7889
+ "hasDynamicHelp": false,
7890
+ "multiple": false,
7891
+ "type": "option"
7892
+ }
7893
+ },
7894
+ "hasDynamicHelp": false,
7895
+ "hiddenAliases": [],
7896
+ "id": "qa",
7897
+ "pluginAlias": "@proletariat/cli",
7898
+ "pluginName": "@proletariat/cli",
7899
+ "pluginType": "core",
7900
+ "strict": true,
7901
+ "isESM": true,
7902
+ "relativePath": [
7903
+ "dist",
7904
+ "commands",
7905
+ "qa",
7906
+ "index.js"
7907
+ ]
7908
+ },
7909
7909
  "roadmap:add-project": {
7910
7910
  "aliases": [],
7911
7911
  "args": {
@@ -10565,59 +10565,6 @@
10565
10565
  "update.js"
10566
10566
  ]
10567
10567
  },
10568
- "terminal:title": {
10569
- "aliases": [],
10570
- "args": {
10571
- "title": {
10572
- "description": "Title to set for the terminal tab/window",
10573
- "name": "title",
10574
- "required": false
10575
- }
10576
- },
10577
- "description": "Set the terminal tab/window title",
10578
- "examples": [
10579
- "<%= config.bin %> <%= command.id %> \"My Custom Name\"",
10580
- "<%= config.bin %> <%= command.id %> # Interactive prompt",
10581
- "<%= config.bin %> <%= command.id %> --reset",
10582
- "<%= config.bin %> <%= command.id %> --machine # JSON mode for agents"
10583
- ],
10584
- "flags": {
10585
- "reset": {
10586
- "char": "r",
10587
- "description": "Reset terminal title to default",
10588
- "name": "reset",
10589
- "allowNo": false,
10590
- "type": "boolean"
10591
- },
10592
- "json": {
10593
- "description": "Output as JSON for AI agents/scripts",
10594
- "name": "json",
10595
- "allowNo": false,
10596
- "type": "boolean"
10597
- },
10598
- "machine": {
10599
- "char": "m",
10600
- "description": "Output as JSON for AI agents/scripts",
10601
- "name": "machine",
10602
- "allowNo": false,
10603
- "type": "boolean"
10604
- }
10605
- },
10606
- "hasDynamicHelp": false,
10607
- "hiddenAliases": [],
10608
- "id": "terminal:title",
10609
- "pluginAlias": "@proletariat/cli",
10610
- "pluginName": "@proletariat/cli",
10611
- "pluginType": "core",
10612
- "strict": true,
10613
- "isESM": true,
10614
- "relativePath": [
10615
- "dist",
10616
- "commands",
10617
- "terminal",
10618
- "title.js"
10619
- ]
10620
- },
10621
10568
  "template:apply": {
10622
10569
  "aliases": [],
10623
10570
  "args": {
@@ -11237,7 +11184,60 @@
11237
11184
  "update.js"
11238
11185
  ]
11239
11186
  },
11240
- "theme:add-names": {
11187
+ "terminal:title": {
11188
+ "aliases": [],
11189
+ "args": {
11190
+ "title": {
11191
+ "description": "Title to set for the terminal tab/window",
11192
+ "name": "title",
11193
+ "required": false
11194
+ }
11195
+ },
11196
+ "description": "Set the terminal tab/window title",
11197
+ "examples": [
11198
+ "<%= config.bin %> <%= command.id %> \"My Custom Name\"",
11199
+ "<%= config.bin %> <%= command.id %> # Interactive prompt",
11200
+ "<%= config.bin %> <%= command.id %> --reset",
11201
+ "<%= config.bin %> <%= command.id %> --machine # JSON mode for agents"
11202
+ ],
11203
+ "flags": {
11204
+ "reset": {
11205
+ "char": "r",
11206
+ "description": "Reset terminal title to default",
11207
+ "name": "reset",
11208
+ "allowNo": false,
11209
+ "type": "boolean"
11210
+ },
11211
+ "json": {
11212
+ "description": "Output as JSON for AI agents/scripts",
11213
+ "name": "json",
11214
+ "allowNo": false,
11215
+ "type": "boolean"
11216
+ },
11217
+ "machine": {
11218
+ "char": "m",
11219
+ "description": "Output as JSON for AI agents/scripts",
11220
+ "name": "machine",
11221
+ "allowNo": false,
11222
+ "type": "boolean"
11223
+ }
11224
+ },
11225
+ "hasDynamicHelp": false,
11226
+ "hiddenAliases": [],
11227
+ "id": "terminal:title",
11228
+ "pluginAlias": "@proletariat/cli",
11229
+ "pluginName": "@proletariat/cli",
11230
+ "pluginType": "core",
11231
+ "strict": true,
11232
+ "isESM": true,
11233
+ "relativePath": [
11234
+ "dist",
11235
+ "commands",
11236
+ "terminal",
11237
+ "title.js"
11238
+ ]
11239
+ },
11240
+ "theme:add-names": {
11241
11241
  "aliases": [],
11242
11242
  "args": {
11243
11243
  "theme": {
@@ -12920,19 +12920,21 @@
12920
12920
  "view.js"
12921
12921
  ]
12922
12922
  },
12923
- "work:complete": {
12923
+ "workflow:create": {
12924
12924
  "aliases": [],
12925
12925
  "args": {
12926
- "ticketId": {
12927
- "description": "Ticket ID - prompts with dropdown if not provided",
12928
- "name": "ticketId",
12926
+ "name": {
12927
+ "description": "Workflow name",
12928
+ "name": "name",
12929
12929
  "required": false
12930
12930
  }
12931
12931
  },
12932
- "description": "Mark work as complete (moves ticket to Done column)",
12932
+ "description": "Create a new custom workflow",
12933
12933
  "examples": [
12934
- "<%= config.bin %> <%= command.id %>",
12935
- "<%= config.bin %> <%= command.id %> TKT-001"
12934
+ "<%= config.bin %> <%= command.id %> \"My Workflow\"",
12935
+ "<%= config.bin %> <%= command.id %> \"Sprint Board\" --description \"Agile sprint workflow\"",
12936
+ "<%= config.bin %> <%= command.id %> \"Simple\" --statuses \"Todo,In Progress,Done\"",
12937
+ "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
12936
12938
  ],
12937
12939
  "flags": {
12938
12940
  "project": {
@@ -12955,11 +12957,27 @@
12955
12957
  "name": "machine",
12956
12958
  "allowNo": false,
12957
12959
  "type": "boolean"
12960
+ },
12961
+ "description": {
12962
+ "char": "d",
12963
+ "description": "Workflow description",
12964
+ "name": "description",
12965
+ "hasDynamicHelp": false,
12966
+ "multiple": false,
12967
+ "type": "option"
12968
+ },
12969
+ "statuses": {
12970
+ "char": "s",
12971
+ "description": "Comma-separated list of status names (uses default categories)",
12972
+ "name": "statuses",
12973
+ "hasDynamicHelp": false,
12974
+ "multiple": false,
12975
+ "type": "option"
12958
12976
  }
12959
12977
  },
12960
12978
  "hasDynamicHelp": false,
12961
12979
  "hiddenAliases": [],
12962
- "id": "work:complete",
12980
+ "id": "workflow:create",
12963
12981
  "pluginAlias": "@proletariat/cli",
12964
12982
  "pluginName": "@proletariat/cli",
12965
12983
  "pluginType": "core",
@@ -12968,16 +12986,25 @@
12968
12986
  "relativePath": [
12969
12987
  "dist",
12970
12988
  "commands",
12971
- "work",
12972
- "complete.js"
12989
+ "workflow",
12990
+ "create.js"
12973
12991
  ]
12974
12992
  },
12975
- "work": {
12993
+ "workflow:delete": {
12976
12994
  "aliases": [],
12977
- "args": {},
12978
- "description": "Interactive menu for work operations (ownership, assignment, execution)",
12995
+ "args": {
12996
+ "id": {
12997
+ "description": "Workflow ID to delete - prompts with dropdown if not provided",
12998
+ "name": "id",
12999
+ "required": false
13000
+ }
13001
+ },
13002
+ "description": "Delete a custom workflow",
12979
13003
  "examples": [
12980
- "<%= config.bin %> <%= command.id %>"
13004
+ "<%= config.bin %> <%= command.id %> my-workflow",
13005
+ "<%= config.bin %> <%= command.id %> my-workflow --force # Skip confirmation",
13006
+ "<%= config.bin %> <%= command.id %> # Interactive selection",
13007
+ "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
12981
13008
  ],
12982
13009
  "flags": {
12983
13010
  "project": {
@@ -13000,11 +13027,18 @@
13000
13027
  "name": "machine",
13001
13028
  "allowNo": false,
13002
13029
  "type": "boolean"
13030
+ },
13031
+ "force": {
13032
+ "char": "f",
13033
+ "description": "Skip confirmation prompt",
13034
+ "name": "force",
13035
+ "allowNo": false,
13036
+ "type": "boolean"
13003
13037
  }
13004
13038
  },
13005
13039
  "hasDynamicHelp": false,
13006
13040
  "hiddenAliases": [],
13007
- "id": "work",
13041
+ "id": "workflow:delete",
13008
13042
  "pluginAlias": "@proletariat/cli",
13009
13043
  "pluginName": "@proletariat/cli",
13010
13044
  "pluginType": "core",
@@ -13013,26 +13047,18 @@
13013
13047
  "relativePath": [
13014
13048
  "dist",
13015
13049
  "commands",
13016
- "work",
13017
- "index.js"
13050
+ "workflow",
13051
+ "delete.js"
13018
13052
  ]
13019
13053
  },
13020
- "work:ready": {
13054
+ "workflow": {
13021
13055
  "aliases": [],
13022
- "args": {
13023
- "ticketId": {
13024
- "description": "Ticket ID - prompts with dropdown if not provided",
13025
- "name": "ticketId",
13026
- "required": false
13027
- }
13028
- },
13029
- "description": "Mark work as ready for review (moves ticket to In Review column)",
13056
+ "args": {},
13057
+ "description": "List all available workflows (alias for workflow list)",
13030
13058
  "examples": [
13031
13059
  "<%= config.bin %> <%= command.id %>",
13032
- "<%= config.bin %> <%= command.id %> TKT-001",
13033
- "<%= config.bin %> <%= command.id %> --pr",
13034
- "<%= config.bin %> <%= command.id %> TKT-001 --draft-pr",
13035
- "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
13060
+ "<%= config.bin %> <%= command.id %> --builtin",
13061
+ "<%= config.bin %> <%= command.id %> --json"
13036
13062
  ],
13037
13063
  "flags": {
13038
13064
  "project": {
@@ -13056,28 +13082,22 @@
13056
13082
  "allowNo": false,
13057
13083
  "type": "boolean"
13058
13084
  },
13059
- "pr": {
13060
- "description": "Create a pull request for this work",
13061
- "name": "pr",
13062
- "allowNo": false,
13063
- "type": "boolean"
13064
- },
13065
- "draft-pr": {
13066
- "description": "Create a draft pull request (implies --pr)",
13067
- "name": "draft-pr",
13085
+ "builtin": {
13086
+ "description": "Show only built-in workflows",
13087
+ "name": "builtin",
13068
13088
  "allowNo": false,
13069
13089
  "type": "boolean"
13070
13090
  },
13071
- "no-pr": {
13072
- "description": "Skip PR creation prompt",
13073
- "name": "no-pr",
13091
+ "custom": {
13092
+ "description": "Show only custom workflows",
13093
+ "name": "custom",
13074
13094
  "allowNo": false,
13075
13095
  "type": "boolean"
13076
13096
  }
13077
13097
  },
13078
13098
  "hasDynamicHelp": false,
13079
13099
  "hiddenAliases": [],
13080
- "id": "work:ready",
13100
+ "id": "workflow",
13081
13101
  "pluginAlias": "@proletariat/cli",
13082
13102
  "pluginName": "@proletariat/cli",
13083
13103
  "pluginType": "core",
@@ -13086,24 +13106,18 @@
13086
13106
  "relativePath": [
13087
13107
  "dist",
13088
13108
  "commands",
13089
- "work",
13090
- "ready.js"
13109
+ "workflow",
13110
+ "index.js"
13091
13111
  ]
13092
13112
  },
13093
- "work:resolve": {
13113
+ "workflow:list": {
13094
13114
  "aliases": [],
13095
- "args": {
13096
- "ticketId": {
13097
- "description": "Ticket ID(s) to resolve - prompts with picker if not provided",
13098
- "name": "ticketId",
13099
- "required": false
13100
- }
13101
- },
13102
- "description": "Agent-assisted resolution of ambiguity questions on tickets (spawns interactive agent)",
13115
+ "args": {},
13116
+ "description": "List all available workflows",
13103
13117
  "examples": [
13104
- "<%= config.bin %> <%= command.id %> TKT-001",
13105
- "<%= config.bin %> <%= command.id %> TKT-001 TKT-002",
13106
- "<%= config.bin %> <%= command.id %> # Interactive picker for needs-clarification tickets"
13118
+ "<%= config.bin %> <%= command.id %>",
13119
+ "<%= config.bin %> <%= command.id %> --builtin",
13120
+ "<%= config.bin %> <%= command.id %> --machine"
13107
13121
  ],
13108
13122
  "flags": {
13109
13123
  "project": {
@@ -13115,11 +13129,7 @@
13115
13129
  "type": "option"
13116
13130
  },
13117
13131
  "json": {
13118
- "aliases": [
13119
- "machine"
13120
- ],
13121
- "char": "m",
13122
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
13132
+ "description": "Output as JSON for AI agents/scripts",
13123
13133
  "name": "json",
13124
13134
  "allowNo": false,
13125
13135
  "type": "boolean"
@@ -13130,37 +13140,49 @@
13130
13140
  "name": "machine",
13131
13141
  "allowNo": false,
13132
13142
  "type": "boolean"
13143
+ },
13144
+ "builtin": {
13145
+ "description": "Show only built-in workflows",
13146
+ "name": "builtin",
13147
+ "allowNo": false,
13148
+ "type": "boolean"
13149
+ },
13150
+ "custom": {
13151
+ "description": "Show only custom workflows",
13152
+ "name": "custom",
13153
+ "allowNo": false,
13154
+ "type": "boolean"
13133
13155
  }
13134
13156
  },
13135
13157
  "hasDynamicHelp": false,
13136
13158
  "hiddenAliases": [],
13137
- "id": "work:resolve",
13159
+ "id": "workflow:list",
13138
13160
  "pluginAlias": "@proletariat/cli",
13139
13161
  "pluginName": "@proletariat/cli",
13140
13162
  "pluginType": "core",
13141
- "strict": false,
13163
+ "strict": true,
13142
13164
  "isESM": true,
13143
13165
  "relativePath": [
13144
13166
  "dist",
13145
13167
  "commands",
13146
- "work",
13147
- "resolve.js"
13168
+ "workflow",
13169
+ "list.js"
13148
13170
  ]
13149
13171
  },
13150
- "work:revise": {
13172
+ "workflow:show": {
13151
13173
  "aliases": [],
13152
13174
  "args": {
13153
- "ticketId": {
13154
- "description": "Ticket ID - prompts with dropdown if not provided",
13155
- "name": "ticketId",
13175
+ "id": {
13176
+ "description": "Workflow ID - prompts with dropdown if not provided",
13177
+ "name": "id",
13156
13178
  "required": false
13157
13179
  }
13158
13180
  },
13159
- "description": "Address PR feedback on a ticket (fetches reviews/comments and spawns agent)",
13181
+ "description": "View details of a workflow (alias for workflow view)",
13160
13182
  "examples": [
13161
- "<%= config.bin %> <%= command.id %> TKT-001",
13162
- "<%= config.bin %> <%= command.id %> # Interactive mode",
13163
- "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
13183
+ "<%= config.bin %> <%= command.id %> default",
13184
+ "<%= config.bin %> <%= command.id %> # Interactive selection",
13185
+ "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
13164
13186
  ],
13165
13187
  "flags": {
13166
13188
  "project": {
@@ -13183,87 +13205,38 @@
13183
13205
  "name": "machine",
13184
13206
  "allowNo": false,
13185
13207
  "type": "boolean"
13186
- },
13187
- "mode": {
13188
- "char": "d",
13189
- "description": "Runtime mode",
13190
- "name": "mode",
13191
- "hasDynamicHelp": false,
13192
- "multiple": false,
13193
- "options": [
13194
- "foreground",
13195
- "background",
13196
- "tmux",
13197
- "terminal",
13198
- "devcontainer"
13199
- ],
13200
- "type": "option"
13201
- },
13202
- "executor": {
13203
- "char": "e",
13204
- "description": "Override executor",
13205
- "name": "executor",
13206
- "hasDynamicHelp": false,
13207
- "multiple": false,
13208
- "options": [
13209
- "claude-code",
13210
- "codex",
13211
- "aider",
13212
- "custom"
13213
- ],
13214
- "type": "option"
13215
- },
13216
- "force": {
13217
- "char": "f",
13218
- "description": "Start even if no pending feedback",
13219
- "name": "force",
13220
- "allowNo": false,
13221
- "type": "boolean"
13222
- },
13223
- "run-on-host": {
13224
- "description": "Run on host even if devcontainer exists (bypasses sandbox)",
13225
- "name": "run-on-host",
13226
- "allowNo": false,
13227
- "type": "boolean"
13228
- },
13229
- "session": {
13230
- "char": "s",
13231
- "description": "Session manager inside container (tmux runs agent in tmux inside container)",
13232
- "name": "session",
13233
- "default": "tmux",
13234
- "hasDynamicHelp": false,
13235
- "multiple": false,
13236
- "options": [
13237
- "tmux",
13238
- "direct"
13239
- ],
13240
- "type": "option"
13241
13208
  }
13242
13209
  },
13243
13210
  "hasDynamicHelp": false,
13211
+ "hidden": true,
13244
13212
  "hiddenAliases": [],
13245
- "id": "work:revise",
13213
+ "id": "workflow:show",
13246
13214
  "pluginAlias": "@proletariat/cli",
13247
13215
  "pluginName": "@proletariat/cli",
13248
13216
  "pluginType": "core",
13249
- "strict": true,
13250
13217
  "isESM": true,
13251
13218
  "relativePath": [
13252
13219
  "dist",
13253
13220
  "commands",
13254
- "work",
13255
- "revise.js"
13221
+ "workflow",
13222
+ "show.js"
13256
13223
  ]
13257
13224
  },
13258
- "work:spawn-all": {
13225
+ "workflow:switch": {
13259
13226
  "aliases": [],
13260
- "args": {},
13261
- "description": "Spawn work on all backlog tickets (alias for \"work spawn --all\")",
13227
+ "args": {
13228
+ "workflow": {
13229
+ "description": "Workflow ID to switch to",
13230
+ "name": "workflow",
13231
+ "required": false
13232
+ }
13233
+ },
13234
+ "description": "Switch a project to use a different workflow",
13262
13235
  "examples": [
13263
- "<%= config.bin %> <%= command.id %>",
13264
- "<%= config.bin %> <%= command.id %> --skip-permissions",
13265
- "<%= config.bin %> <%= command.id %> --create-pr",
13266
- "<%= config.bin %> <%= command.id %> --json"
13236
+ "<%= config.bin %> <%= command.id %> kanban",
13237
+ "<%= config.bin %> <%= command.id %> linear --project my-project",
13238
+ "<%= config.bin %> <%= command.id %> --force # Skip confirmation",
13239
+ "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
13267
13240
  ],
13268
13241
  "flags": {
13269
13242
  "project": {
@@ -13289,47 +13262,120 @@
13289
13262
  },
13290
13263
  "force": {
13291
13264
  "char": "f",
13292
- "description": "Start even if work already in progress",
13265
+ "description": "Skip confirmation prompt",
13293
13266
  "name": "force",
13294
13267
  "allowNo": false,
13295
13268
  "type": "boolean"
13269
+ }
13270
+ },
13271
+ "hasDynamicHelp": false,
13272
+ "hiddenAliases": [],
13273
+ "id": "workflow:switch",
13274
+ "pluginAlias": "@proletariat/cli",
13275
+ "pluginName": "@proletariat/cli",
13276
+ "pluginType": "core",
13277
+ "strict": true,
13278
+ "isESM": true,
13279
+ "relativePath": [
13280
+ "dist",
13281
+ "commands",
13282
+ "workflow",
13283
+ "switch.js"
13284
+ ]
13285
+ },
13286
+ "workflow:view": {
13287
+ "aliases": [],
13288
+ "args": {
13289
+ "id": {
13290
+ "description": "Workflow ID - prompts with dropdown if not provided",
13291
+ "name": "id",
13292
+ "required": false
13293
+ }
13294
+ },
13295
+ "description": "View details of a workflow",
13296
+ "examples": [
13297
+ "<%= config.bin %> <%= command.id %> default",
13298
+ "<%= config.bin %> <%= command.id %> # Interactive selection",
13299
+ "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
13300
+ ],
13301
+ "flags": {
13302
+ "project": {
13303
+ "char": "P",
13304
+ "description": "Project ID (uses first project if only one exists)",
13305
+ "name": "project",
13306
+ "hasDynamicHelp": false,
13307
+ "multiple": false,
13308
+ "type": "option"
13296
13309
  },
13297
- "run-on-host": {
13298
- "description": "Run on host even if devcontainer exists (bypasses sandbox)",
13299
- "name": "run-on-host",
13310
+ "json": {
13311
+ "description": "Output as JSON for AI agents/scripts",
13312
+ "name": "json",
13300
13313
  "allowNo": false,
13301
13314
  "type": "boolean"
13302
13315
  },
13303
- "skip-permissions": {
13304
- "description": "Skip permission prompts (danger mode)",
13305
- "name": "skip-permissions",
13316
+ "machine": {
13317
+ "char": "m",
13318
+ "description": "Output as JSON for AI agents/scripts",
13319
+ "name": "machine",
13306
13320
  "allowNo": false,
13307
13321
  "type": "boolean"
13322
+ }
13323
+ },
13324
+ "hasDynamicHelp": false,
13325
+ "hiddenAliases": [],
13326
+ "id": "workflow:view",
13327
+ "pluginAlias": "@proletariat/cli",
13328
+ "pluginName": "@proletariat/cli",
13329
+ "pluginType": "core",
13330
+ "strict": true,
13331
+ "isESM": true,
13332
+ "relativePath": [
13333
+ "dist",
13334
+ "commands",
13335
+ "workflow",
13336
+ "view.js"
13337
+ ]
13338
+ },
13339
+ "work:complete": {
13340
+ "aliases": [],
13341
+ "args": {
13342
+ "ticketId": {
13343
+ "description": "Ticket ID - prompts with dropdown if not provided",
13344
+ "name": "ticketId",
13345
+ "required": false
13346
+ }
13347
+ },
13348
+ "description": "Mark work as complete (moves ticket to Done column)",
13349
+ "examples": [
13350
+ "<%= config.bin %> <%= command.id %>",
13351
+ "<%= config.bin %> <%= command.id %> TKT-001"
13352
+ ],
13353
+ "flags": {
13354
+ "project": {
13355
+ "char": "P",
13356
+ "description": "Project ID (uses first project if only one exists)",
13357
+ "name": "project",
13358
+ "hasDynamicHelp": false,
13359
+ "multiple": false,
13360
+ "type": "option"
13308
13361
  },
13309
- "create-pr": {
13310
- "description": "Create PR when work is ready (canonical flag for PR behavior)",
13311
- "name": "create-pr",
13362
+ "json": {
13363
+ "description": "Output as JSON for AI agents/scripts",
13364
+ "name": "json",
13312
13365
  "allowNo": false,
13313
13366
  "type": "boolean"
13314
13367
  },
13315
- "executor": {
13316
- "char": "e",
13317
- "description": "Override executor",
13318
- "name": "executor",
13319
- "hasDynamicHelp": false,
13320
- "multiple": false,
13321
- "options": [
13322
- "claude-code",
13323
- "codex",
13324
- "aider",
13325
- "custom"
13326
- ],
13327
- "type": "option"
13368
+ "machine": {
13369
+ "char": "m",
13370
+ "description": "Output as JSON for AI agents/scripts",
13371
+ "name": "machine",
13372
+ "allowNo": false,
13373
+ "type": "boolean"
13328
13374
  }
13329
13375
  },
13330
13376
  "hasDynamicHelp": false,
13331
13377
  "hiddenAliases": [],
13332
- "id": "work:spawn-all",
13378
+ "id": "work:complete",
13333
13379
  "pluginAlias": "@proletariat/cli",
13334
13380
  "pluginName": "@proletariat/cli",
13335
13381
  "pluginType": "core",
@@ -13339,28 +13385,15 @@
13339
13385
  "dist",
13340
13386
  "commands",
13341
13387
  "work",
13342
- "spawn-all.js"
13388
+ "complete.js"
13343
13389
  ]
13344
13390
  },
13345
- "work:spawn": {
13391
+ "work": {
13346
13392
  "aliases": [],
13347
13393
  "args": {},
13348
- "description": "Spawn work for multiple tickets by column (batch mode)",
13394
+ "description": "Interactive menu for work operations (ownership, assignment, execution)",
13349
13395
  "examples": [
13350
- "<%= config.bin %> <%= command.id %> # Interactive: All or Many",
13351
- "<%= config.bin %> <%= command.id %> --all # All tickets in selected column",
13352
- "<%= config.bin %> <%= command.id %> --column Backlog # All tickets in Backlog",
13353
- "<%= config.bin %> <%= command.id %> --many # Multi-select specific tickets",
13354
- "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 # Spawn specific tickets by ID",
13355
- "<%= config.bin %> <%= command.id %> --dry-run # Preview without executing",
13356
- "<%= config.bin %> <%= command.id %> --many --json # Output ticket choices as JSON (for agents)",
13357
- "<%= config.bin %> <%= command.id %> TKT-001 --action custom --message \"Add unit tests\" # Custom prompt",
13358
- "<%= config.bin %> <%= command.id %> --count 5 --action implement # Top 5 by rank",
13359
- "<%= config.bin %> <%= command.id %> --count 10 --diet --action groom # Diet-balanced",
13360
- "<%= config.bin %> <%= command.id %> --count 5 --category ship --action implement # Filtered by category",
13361
- "<%= config.bin %> <%= command.id %> --count 5 --priority P0 --action implement # Filtered by priority",
13362
- "<%= config.bin %> <%= command.id %> --count 10 --diet --category ship,grow --action groom # Combined",
13363
- "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 --create-pr # Create PR when work is ready"
13396
+ "<%= config.bin %> <%= command.id %>"
13364
13397
  ],
13365
13398
  "flags": {
13366
13399
  "project": {
@@ -13383,222 +13416,141 @@
13383
13416
  "name": "machine",
13384
13417
  "allowNo": false,
13385
13418
  "type": "boolean"
13419
+ }
13420
+ },
13421
+ "hasDynamicHelp": false,
13422
+ "hiddenAliases": [],
13423
+ "id": "work",
13424
+ "pluginAlias": "@proletariat/cli",
13425
+ "pluginName": "@proletariat/cli",
13426
+ "pluginType": "core",
13427
+ "strict": true,
13428
+ "isESM": true,
13429
+ "relativePath": [
13430
+ "dist",
13431
+ "commands",
13432
+ "work",
13433
+ "index.js"
13434
+ ]
13435
+ },
13436
+ "work:ready": {
13437
+ "aliases": [],
13438
+ "args": {
13439
+ "ticketId": {
13440
+ "description": "Ticket ID - prompts with dropdown if not provided",
13441
+ "name": "ticketId",
13442
+ "required": false
13443
+ }
13444
+ },
13445
+ "description": "Mark work as ready for review (moves ticket to In Review column)",
13446
+ "examples": [
13447
+ "<%= config.bin %> <%= command.id %>",
13448
+ "<%= config.bin %> <%= command.id %> TKT-001",
13449
+ "<%= config.bin %> <%= command.id %> --pr",
13450
+ "<%= config.bin %> <%= command.id %> TKT-001 --draft-pr",
13451
+ "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
13452
+ ],
13453
+ "flags": {
13454
+ "project": {
13455
+ "char": "P",
13456
+ "description": "Project ID (uses first project if only one exists)",
13457
+ "name": "project",
13458
+ "hasDynamicHelp": false,
13459
+ "multiple": false,
13460
+ "type": "option"
13386
13461
  },
13387
- "all": {
13388
- "char": "a",
13389
- "description": "Spawn all tickets tickets in a column",
13390
- "name": "all",
13462
+ "json": {
13463
+ "description": "Output as JSON for AI agents/scripts",
13464
+ "name": "json",
13391
13465
  "allowNo": false,
13392
13466
  "type": "boolean"
13393
13467
  },
13394
- "many": {
13395
- "description": "Multi-select specific tickets to spawn",
13396
- "name": "many",
13468
+ "machine": {
13469
+ "char": "m",
13470
+ "description": "Output as JSON for AI agents/scripts",
13471
+ "name": "machine",
13397
13472
  "allowNo": false,
13398
13473
  "type": "boolean"
13399
13474
  },
13400
- "column": {
13401
- "char": "c",
13402
- "description": "Column name to spawn tickets from [required for non-interactive with --all]",
13403
- "name": "column",
13404
- "hasDynamicHelp": false,
13405
- "multiple": false,
13406
- "type": "option"
13407
- },
13408
- "strategy": {
13409
- "char": "s",
13410
- "description": "Agent selection strategy",
13411
- "name": "strategy",
13412
- "default": "round-robin",
13413
- "hasDynamicHelp": false,
13414
- "multiple": false,
13415
- "options": [
13416
- "round-robin",
13417
- "least-busy",
13418
- "random"
13419
- ],
13420
- "type": "option"
13421
- },
13422
- "dry-run": {
13423
- "description": "Show what would be spawned without executing",
13424
- "name": "dry-run",
13425
- "allowNo": false,
13426
- "type": "boolean"
13427
- },
13428
- "display": {
13429
- "char": "d",
13430
- "description": "Display mode for spawned agents (foreground not available for batch)",
13431
- "name": "display",
13432
- "hasDynamicHelp": false,
13433
- "multiple": false,
13434
- "options": [
13435
- "terminal",
13436
- "background"
13437
- ],
13438
- "type": "option"
13439
- },
13440
- "executor": {
13441
- "char": "e",
13442
- "description": "Override executor",
13443
- "name": "executor",
13444
- "hasDynamicHelp": false,
13445
- "multiple": false,
13446
- "options": [
13447
- "claude-code",
13448
- "codex",
13449
- "aider",
13450
- "custom"
13451
- ],
13452
- "type": "option"
13453
- },
13454
- "force": {
13455
- "char": "f",
13456
- "description": "Start even if work already in progress",
13457
- "name": "force",
13458
- "allowNo": false,
13459
- "type": "boolean"
13460
- },
13461
- "run-on-host": {
13462
- "description": "Run on host even if devcontainer exists (bypasses sandbox)",
13463
- "name": "run-on-host",
13464
- "allowNo": false,
13465
- "type": "boolean"
13466
- },
13467
- "limit": {
13468
- "char": "l",
13469
- "description": "Maximum number of tickets to spawn",
13470
- "name": "limit",
13471
- "hasDynamicHelp": false,
13472
- "multiple": false,
13473
- "type": "option"
13474
- },
13475
- "yes": {
13476
- "char": "y",
13477
- "description": "Skip confirmation prompt",
13478
- "name": "yes",
13479
- "allowNo": false,
13480
- "type": "boolean"
13481
- },
13482
- "per-ticket": {
13483
- "description": "Prompt for settings per ticket (default: batch mode with same settings for all)",
13484
- "name": "per-ticket",
13485
- "allowNo": false,
13486
- "type": "boolean"
13487
- },
13488
- "output": {
13489
- "char": "o",
13490
- "description": "Output mode (batch mode only)",
13491
- "name": "output",
13492
- "hasDynamicHelp": false,
13493
- "multiple": false,
13494
- "options": [
13495
- "interactive",
13496
- "print"
13497
- ],
13498
- "type": "option"
13499
- },
13500
- "skip-permissions": {
13501
- "description": "Skip permission prompts - danger mode (batch mode only)",
13502
- "name": "skip-permissions",
13475
+ "pr": {
13476
+ "description": "Create a pull request for this work",
13477
+ "name": "pr",
13503
13478
  "allowNo": false,
13504
13479
  "type": "boolean"
13505
13480
  },
13506
- "create-pr": {
13507
- "description": "Create PR when work is ready (canonical flag for PR behavior, batch mode only)",
13508
- "name": "create-pr",
13481
+ "draft-pr": {
13482
+ "description": "Create a draft pull request (implies --pr)",
13483
+ "name": "draft-pr",
13509
13484
  "allowNo": false,
13510
13485
  "type": "boolean"
13511
13486
  },
13512
13487
  "no-pr": {
13513
- "description": "[deprecated: use --create-pr instead] Skip PR creation (batch mode only)",
13488
+ "description": "Skip PR creation prompt",
13514
13489
  "name": "no-pr",
13515
13490
  "allowNo": false,
13516
13491
  "type": "boolean"
13517
- },
13518
- "action": {
13519
- "description": "Action to perform (e.g., groom, implement, review, custom). Prompts if not provided.",
13520
- "name": "action",
13521
- "hasDynamicHelp": false,
13522
- "multiple": false,
13523
- "type": "option"
13524
- },
13525
- "message": {
13526
- "description": "Additional instructions for the agent (appended to any action prompt)",
13527
- "name": "message",
13492
+ }
13493
+ },
13494
+ "hasDynamicHelp": false,
13495
+ "hiddenAliases": [],
13496
+ "id": "work:ready",
13497
+ "pluginAlias": "@proletariat/cli",
13498
+ "pluginName": "@proletariat/cli",
13499
+ "pluginType": "core",
13500
+ "strict": true,
13501
+ "isESM": true,
13502
+ "relativePath": [
13503
+ "dist",
13504
+ "commands",
13505
+ "work",
13506
+ "ready.js"
13507
+ ]
13508
+ },
13509
+ "work:resolve": {
13510
+ "aliases": [],
13511
+ "args": {
13512
+ "ticketId": {
13513
+ "description": "Ticket ID(s) to resolve - prompts with picker if not provided",
13514
+ "name": "ticketId",
13515
+ "required": false
13516
+ }
13517
+ },
13518
+ "description": "Agent-assisted resolution of ambiguity questions on tickets (spawns interactive agent)",
13519
+ "examples": [
13520
+ "<%= config.bin %> <%= command.id %> TKT-001",
13521
+ "<%= config.bin %> <%= command.id %> TKT-001 TKT-002",
13522
+ "<%= config.bin %> <%= command.id %> # Interactive picker for needs-clarification tickets"
13523
+ ],
13524
+ "flags": {
13525
+ "project": {
13526
+ "char": "P",
13527
+ "description": "Project ID (uses first project if only one exists)",
13528
+ "name": "project",
13528
13529
  "hasDynamicHelp": false,
13529
13530
  "multiple": false,
13530
13531
  "type": "option"
13531
13532
  },
13532
- "session": {
13533
- "description": "Session manager inside container (tmux runs agent in tmux inside container)",
13534
- "name": "session",
13535
- "default": "tmux",
13536
- "hasDynamicHelp": false,
13537
- "multiple": false,
13538
- "options": [
13539
- "tmux",
13540
- "direct"
13533
+ "json": {
13534
+ "aliases": [
13535
+ "machine"
13541
13536
  ],
13542
- "type": "option"
13543
- },
13544
- "focus": {
13545
- "description": "Bring terminal to foreground when opening new tabs (default: opens in background)",
13546
- "name": "focus",
13547
- "allowNo": false,
13548
- "type": "boolean"
13549
- },
13550
- "clone": {
13551
- "description": "Use independent git clone instead of worktree (more isolation, no real-time sync)",
13552
- "name": "clone",
13537
+ "char": "m",
13538
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
13539
+ "name": "json",
13553
13540
  "allowNo": false,
13554
13541
  "type": "boolean"
13555
13542
  },
13556
- "count": {
13557
- "char": "n",
13558
- "description": "Number of tickets to spawn (selects top N by rank)",
13559
- "name": "count",
13560
- "hasDynamicHelp": false,
13561
- "multiple": false,
13562
- "type": "option"
13563
- },
13564
- "diet": {
13565
- "description": "Apply diet-balanced category weighting when selecting tickets",
13566
- "name": "diet",
13543
+ "machine": {
13544
+ "char": "m",
13545
+ "description": "Output as JSON for AI agents/scripts",
13546
+ "name": "machine",
13567
13547
  "allowNo": false,
13568
13548
  "type": "boolean"
13569
- },
13570
- "category": {
13571
- "description": "Filter tickets by category (comma-separated, e.g., ship,grow)",
13572
- "name": "category",
13573
- "hasDynamicHelp": false,
13574
- "multiple": false,
13575
- "type": "option"
13576
- },
13577
- "priority": {
13578
- "description": "Filter tickets by priority (comma-separated, e.g., P0,P1)",
13579
- "name": "priority",
13580
- "hasDynamicHelp": false,
13581
- "multiple": false,
13582
- "type": "option"
13583
- },
13584
- "epic": {
13585
- "description": "Filter tickets by epic ID",
13586
- "name": "epic",
13587
- "hasDynamicHelp": false,
13588
- "multiple": false,
13589
- "type": "option"
13590
- },
13591
- "status": {
13592
- "description": "Filter tickets by status name (e.g., Backlog, Ready)",
13593
- "name": "status",
13594
- "hasDynamicHelp": false,
13595
- "multiple": false,
13596
- "type": "option"
13597
13549
  }
13598
13550
  },
13599
13551
  "hasDynamicHelp": false,
13600
13552
  "hiddenAliases": [],
13601
- "id": "work:spawn",
13553
+ "id": "work:resolve",
13602
13554
  "pluginAlias": "@proletariat/cli",
13603
13555
  "pluginName": "@proletariat/cli",
13604
13556
  "pluginType": "core",
@@ -13608,10 +13560,10 @@
13608
13560
  "dist",
13609
13561
  "commands",
13610
13562
  "work",
13611
- "spawn.js"
13563
+ "resolve.js"
13612
13564
  ]
13613
13565
  },
13614
- "work:start": {
13566
+ "work:revise": {
13615
13567
  "aliases": [],
13616
13568
  "args": {
13617
13569
  "ticketId": {
@@ -13620,16 +13572,11 @@
13620
13572
  "required": false
13621
13573
  }
13622
13574
  },
13623
- "description": "Start work on a ticket (launches an agent to implement it)",
13575
+ "description": "Address PR feedback on a ticket (fetches reviews/comments and spawns agent)",
13624
13576
  "examples": [
13625
13577
  "<%= config.bin %> <%= command.id %> TKT-001",
13626
- "<%= config.bin %> <%= command.id %> TKT-001 --create-pr # Create PR when work is ready",
13627
- "<%= config.bin %> <%= command.id %> TKT-001 --mode foreground",
13628
- "<%= config.bin %> <%= command.id %> TKT-001 --mode tmux",
13629
- "<%= config.bin %> <%= command.id %> TKT-001 --mode terminal",
13630
13578
  "<%= config.bin %> <%= command.id %> # Interactive mode",
13631
- "<%= config.bin %> <%= command.id %> --all # Spawn all backlog tickets",
13632
- "<%= config.bin %> <%= command.id %> TKT-001 --prompt \"Add unit tests for the API\" # Custom prompt"
13579
+ "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
13633
13580
  ],
13634
13581
  "flags": {
13635
13582
  "project": {
@@ -13653,137 +13600,48 @@
13653
13600
  "allowNo": false,
13654
13601
  "type": "boolean"
13655
13602
  },
13656
- "all": {
13657
- "char": "a",
13658
- "description": "Start work on all unassigned backlog tickets (batch mode)",
13659
- "name": "all",
13660
- "allowNo": false,
13661
- "type": "boolean"
13662
- },
13663
- "executor": {
13664
- "char": "e",
13665
- "description": "Override executor",
13666
- "name": "executor",
13603
+ "mode": {
13604
+ "char": "d",
13605
+ "description": "Runtime mode",
13606
+ "name": "mode",
13667
13607
  "hasDynamicHelp": false,
13668
13608
  "multiple": false,
13669
13609
  "options": [
13670
- "claude-code",
13671
- "codex",
13672
- "aider",
13673
- "custom"
13610
+ "foreground",
13611
+ "background",
13612
+ "tmux",
13613
+ "terminal",
13614
+ "devcontainer"
13674
13615
  ],
13675
13616
  "type": "option"
13676
13617
  },
13677
- "action": {
13678
- "char": "A",
13679
- "description": "Action to perform (e.g., implement, groom, review)",
13680
- "name": "action",
13681
- "hasDynamicHelp": false,
13682
- "multiple": false,
13683
- "type": "option"
13684
- },
13685
- "prompt": {
13686
- "char": "p",
13687
- "description": "Custom prompt (overrides action)",
13688
- "name": "prompt",
13689
- "hasDynamicHelp": false,
13690
- "multiple": false,
13691
- "type": "option"
13692
- },
13693
- "message": {
13694
- "description": "Additional instructions appended to any action prompt",
13695
- "name": "message",
13618
+ "executor": {
13619
+ "char": "e",
13620
+ "description": "Override executor",
13621
+ "name": "executor",
13696
13622
  "hasDynamicHelp": false,
13697
13623
  "multiple": false,
13624
+ "options": [
13625
+ "claude-code",
13626
+ "codex",
13627
+ "aider",
13628
+ "custom"
13629
+ ],
13698
13630
  "type": "option"
13699
13631
  },
13700
- "watch": {
13701
- "char": "w",
13702
- "description": "Stream output in real-time",
13703
- "name": "watch",
13704
- "allowNo": false,
13705
- "type": "boolean"
13706
- },
13707
13632
  "force": {
13708
13633
  "char": "f",
13709
- "description": "Start even if work already in progress",
13634
+ "description": "Start even if no pending feedback",
13710
13635
  "name": "force",
13711
13636
  "allowNo": false,
13712
13637
  "type": "boolean"
13713
13638
  },
13714
- "vm-host": {
13715
- "description": "VM host for vm mode",
13716
- "name": "vm-host",
13717
- "hasDynamicHelp": false,
13718
- "multiple": false,
13719
- "type": "option"
13720
- },
13721
13639
  "run-on-host": {
13722
13640
  "description": "Run on host even if devcontainer exists (bypasses sandbox)",
13723
13641
  "name": "run-on-host",
13724
13642
  "allowNo": false,
13725
13643
  "type": "boolean"
13726
13644
  },
13727
- "reconfigure": {
13728
- "description": "Re-prompt for terminal app preference",
13729
- "name": "reconfigure",
13730
- "allowNo": false,
13731
- "type": "boolean"
13732
- },
13733
- "permission-mode": {
13734
- "description": "Permission mode for Claude Code (danger=skip checks, safe=require approval)",
13735
- "name": "permission-mode",
13736
- "hasDynamicHelp": false,
13737
- "multiple": false,
13738
- "options": [
13739
- "danger",
13740
- "safe"
13741
- ],
13742
- "type": "option"
13743
- },
13744
- "skip-permissions": {
13745
- "description": "Skip permission checks (shorthand for --permission-mode danger)",
13746
- "name": "skip-permissions",
13747
- "allowNo": false,
13748
- "type": "boolean"
13749
- },
13750
- "create-pr": {
13751
- "description": "Create PR when work is ready (canonical flag for PR behavior)",
13752
- "name": "create-pr",
13753
- "allowNo": false,
13754
- "type": "boolean"
13755
- },
13756
- "no-pr": {
13757
- "description": "[deprecated: use --create-pr instead] Skip PR creation when work is ready",
13758
- "name": "no-pr",
13759
- "allowNo": false,
13760
- "type": "boolean"
13761
- },
13762
- "output": {
13763
- "char": "o",
13764
- "description": "Output mode",
13765
- "name": "output",
13766
- "hasDynamicHelp": false,
13767
- "multiple": false,
13768
- "options": [
13769
- "interactive",
13770
- "print"
13771
- ],
13772
- "type": "option"
13773
- },
13774
- "display": {
13775
- "char": "d",
13776
- "description": "Display mode (foreground=current terminal, terminal=new tab, background=detached)",
13777
- "name": "display",
13778
- "hasDynamicHelp": false,
13779
- "multiple": false,
13780
- "options": [
13781
- "foreground",
13782
- "terminal",
13783
- "background"
13784
- ],
13785
- "type": "option"
13786
- },
13787
13645
  "session": {
13788
13646
  "char": "s",
13789
13647
  "description": "Session manager inside container (tmux runs agent in tmux inside container)",
@@ -13796,50 +13654,11 @@
13796
13654
  "direct"
13797
13655
  ],
13798
13656
  "type": "option"
13799
- },
13800
- "agent": {
13801
- "description": "Agent to assign (skips interactive selection)",
13802
- "name": "agent",
13803
- "hasDynamicHelp": false,
13804
- "multiple": false,
13805
- "type": "option"
13806
- },
13807
- "ephemeral": {
13808
- "description": "Create an ephemeral agent on-demand (auto-generates name)",
13809
- "name": "ephemeral",
13810
- "allowNo": false,
13811
- "type": "boolean"
13812
- },
13813
- "focus": {
13814
- "description": "Bring terminal to foreground when opening new tabs (default: opens in background)",
13815
- "name": "focus",
13816
- "allowNo": false,
13817
- "type": "boolean"
13818
- },
13819
- "clone": {
13820
- "description": "Use independent git clone instead of worktree (more isolation, no real-time sync)",
13821
- "name": "clone",
13822
- "allowNo": false,
13823
- "type": "boolean"
13824
- },
13825
- "yes": {
13826
- "char": "y",
13827
- "description": "Skip confirmation prompt (for non-TTY/scripted execution)",
13828
- "name": "yes",
13829
- "allowNo": false,
13830
- "type": "boolean"
13831
- },
13832
- "use-api-key": {
13833
- "description": "Use ANTHROPIC_API_KEY for Docker containers instead of OAuth credentials",
13834
- "hidden": true,
13835
- "name": "use-api-key",
13836
- "allowNo": false,
13837
- "type": "boolean"
13838
13657
  }
13839
13658
  },
13840
13659
  "hasDynamicHelp": false,
13841
13660
  "hiddenAliases": [],
13842
- "id": "work:start",
13661
+ "id": "work:revise",
13843
13662
  "pluginAlias": "@proletariat/cli",
13844
13663
  "pluginName": "@proletariat/cli",
13845
13664
  "pluginType": "core",
@@ -13849,15 +13668,17 @@
13849
13668
  "dist",
13850
13669
  "commands",
13851
13670
  "work",
13852
- "start.js"
13671
+ "revise.js"
13853
13672
  ]
13854
13673
  },
13855
- "work:status": {
13674
+ "work:spawn-all": {
13856
13675
  "aliases": [],
13857
13676
  "args": {},
13858
- "description": "Show current work status (in-progress tickets)",
13677
+ "description": "Spawn work on all backlog tickets (alias for \"work spawn --all\")",
13859
13678
  "examples": [
13860
13679
  "<%= config.bin %> <%= command.id %>",
13680
+ "<%= config.bin %> <%= command.id %> --skip-permissions",
13681
+ "<%= config.bin %> <%= command.id %> --create-pr",
13861
13682
  "<%= config.bin %> <%= command.id %> --json"
13862
13683
  ],
13863
13684
  "flags": {
@@ -13881,11 +13702,50 @@
13881
13702
  "name": "machine",
13882
13703
  "allowNo": false,
13883
13704
  "type": "boolean"
13705
+ },
13706
+ "force": {
13707
+ "char": "f",
13708
+ "description": "Start even if work already in progress",
13709
+ "name": "force",
13710
+ "allowNo": false,
13711
+ "type": "boolean"
13712
+ },
13713
+ "run-on-host": {
13714
+ "description": "Run on host even if devcontainer exists (bypasses sandbox)",
13715
+ "name": "run-on-host",
13716
+ "allowNo": false,
13717
+ "type": "boolean"
13718
+ },
13719
+ "skip-permissions": {
13720
+ "description": "Skip permission prompts (danger mode)",
13721
+ "name": "skip-permissions",
13722
+ "allowNo": false,
13723
+ "type": "boolean"
13724
+ },
13725
+ "create-pr": {
13726
+ "description": "Create PR when work is ready (canonical flag for PR behavior)",
13727
+ "name": "create-pr",
13728
+ "allowNo": false,
13729
+ "type": "boolean"
13730
+ },
13731
+ "executor": {
13732
+ "char": "e",
13733
+ "description": "Override executor",
13734
+ "name": "executor",
13735
+ "hasDynamicHelp": false,
13736
+ "multiple": false,
13737
+ "options": [
13738
+ "claude-code",
13739
+ "codex",
13740
+ "aider",
13741
+ "custom"
13742
+ ],
13743
+ "type": "option"
13884
13744
  }
13885
13745
  },
13886
13746
  "hasDynamicHelp": false,
13887
13747
  "hiddenAliases": [],
13888
- "id": "work:status",
13748
+ "id": "work:spawn-all",
13889
13749
  "pluginAlias": "@proletariat/cli",
13890
13750
  "pluginName": "@proletariat/cli",
13891
13751
  "pluginType": "core",
@@ -13895,19 +13755,28 @@
13895
13755
  "dist",
13896
13756
  "commands",
13897
13757
  "work",
13898
- "status.js"
13758
+ "spawn-all.js"
13899
13759
  ]
13900
13760
  },
13901
- "work:watch": {
13761
+ "work:spawn": {
13902
13762
  "aliases": [],
13903
13763
  "args": {},
13904
- "description": "Watch a column and auto-spawn agents for new tickets",
13764
+ "description": "Spawn work for multiple tickets by column (batch mode)",
13905
13765
  "examples": [
13906
- "<%= config.bin %> <%= command.id %>",
13907
- "<%= config.bin %> <%= command.id %> --column Ready",
13908
- "<%= config.bin %> <%= command.id %> --column Ready --strategy round-robin",
13909
- "<%= config.bin %> <%= command.id %> --column Ready --interval 10",
13910
- "<%= config.bin %> <%= command.id %> --column Ready --once"
13766
+ "<%= config.bin %> <%= command.id %> # Interactive: All or Many",
13767
+ "<%= config.bin %> <%= command.id %> --all # All tickets in selected column",
13768
+ "<%= config.bin %> <%= command.id %> --column Backlog # All tickets in Backlog",
13769
+ "<%= config.bin %> <%= command.id %> --many # Multi-select specific tickets",
13770
+ "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 # Spawn specific tickets by ID",
13771
+ "<%= config.bin %> <%= command.id %> --dry-run # Preview without executing",
13772
+ "<%= config.bin %> <%= command.id %> --many --json # Output ticket choices as JSON (for agents)",
13773
+ "<%= config.bin %> <%= command.id %> TKT-001 --action custom --message \"Add unit tests\" # Custom prompt",
13774
+ "<%= config.bin %> <%= command.id %> --count 5 --action implement # Top 5 by rank",
13775
+ "<%= config.bin %> <%= command.id %> --count 10 --diet --action groom # Diet-balanced",
13776
+ "<%= config.bin %> <%= command.id %> --count 5 --category ship --action implement # Filtered by category",
13777
+ "<%= config.bin %> <%= command.id %> --count 5 --priority P0 --action implement # Filtered by priority",
13778
+ "<%= config.bin %> <%= command.id %> --count 10 --diet --category ship,grow --action groom # Combined",
13779
+ "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 --create-pr # Create PR when work is ready"
13911
13780
  ],
13912
13781
  "flags": {
13913
13782
  "project": {
@@ -13931,9 +13800,22 @@
13931
13800
  "allowNo": false,
13932
13801
  "type": "boolean"
13933
13802
  },
13803
+ "all": {
13804
+ "char": "a",
13805
+ "description": "Spawn all tickets tickets in a column",
13806
+ "name": "all",
13807
+ "allowNo": false,
13808
+ "type": "boolean"
13809
+ },
13810
+ "many": {
13811
+ "description": "Multi-select specific tickets to spawn",
13812
+ "name": "many",
13813
+ "allowNo": false,
13814
+ "type": "boolean"
13815
+ },
13934
13816
  "column": {
13935
13817
  "char": "c",
13936
- "description": "Column to watch for new tickets (prompts if not provided)",
13818
+ "description": "Column name to spawn tickets from [required for non-interactive with --all]",
13937
13819
  "name": "column",
13938
13820
  "hasDynamicHelp": false,
13939
13821
  "multiple": false,
@@ -13953,127 +13835,178 @@
13953
13835
  ],
13954
13836
  "type": "option"
13955
13837
  },
13956
- "agent": {
13957
- "char": "a",
13958
- "description": "Use specific agent for all tickets",
13959
- "name": "agent",
13838
+ "dry-run": {
13839
+ "description": "Show what would be spawned without executing",
13840
+ "name": "dry-run",
13841
+ "allowNo": false,
13842
+ "type": "boolean"
13843
+ },
13844
+ "display": {
13845
+ "char": "d",
13846
+ "description": "Display mode for spawned agents (foreground not available for batch)",
13847
+ "name": "display",
13960
13848
  "hasDynamicHelp": false,
13961
13849
  "multiple": false,
13850
+ "options": [
13851
+ "terminal",
13852
+ "background"
13853
+ ],
13962
13854
  "type": "option"
13963
13855
  },
13964
- "limit": {
13965
- "char": "l",
13966
- "description": "Maximum concurrent executions",
13967
- "name": "limit",
13856
+ "executor": {
13857
+ "char": "e",
13858
+ "description": "Override executor",
13859
+ "name": "executor",
13968
13860
  "hasDynamicHelp": false,
13969
13861
  "multiple": false,
13862
+ "options": [
13863
+ "claude-code",
13864
+ "codex",
13865
+ "aider",
13866
+ "custom"
13867
+ ],
13970
13868
  "type": "option"
13971
13869
  },
13972
- "interval": {
13973
- "char": "i",
13974
- "description": "Polling interval in seconds",
13975
- "name": "interval",
13976
- "default": 5,
13870
+ "force": {
13871
+ "char": "f",
13872
+ "description": "Start even if work already in progress",
13873
+ "name": "force",
13874
+ "allowNo": false,
13875
+ "type": "boolean"
13876
+ },
13877
+ "run-on-host": {
13878
+ "description": "Run on host even if devcontainer exists (bypasses sandbox)",
13879
+ "name": "run-on-host",
13880
+ "allowNo": false,
13881
+ "type": "boolean"
13882
+ },
13883
+ "limit": {
13884
+ "char": "l",
13885
+ "description": "Maximum number of tickets to spawn",
13886
+ "name": "limit",
13977
13887
  "hasDynamicHelp": false,
13978
13888
  "multiple": false,
13979
13889
  "type": "option"
13980
13890
  },
13981
- "once": {
13982
- "description": "Check once and exit (no continuous watching)",
13983
- "name": "once",
13891
+ "yes": {
13892
+ "char": "y",
13893
+ "description": "Skip confirmation prompt",
13894
+ "name": "yes",
13984
13895
  "allowNo": false,
13985
13896
  "type": "boolean"
13986
13897
  },
13987
- "mode": {
13988
- "char": "d",
13989
- "description": "Display mode for agent output",
13990
- "name": "mode",
13898
+ "per-ticket": {
13899
+ "description": "Prompt for settings per ticket (default: batch mode with same settings for all)",
13900
+ "name": "per-ticket",
13901
+ "allowNo": false,
13902
+ "type": "boolean"
13903
+ },
13904
+ "output": {
13905
+ "char": "o",
13906
+ "description": "Output mode (batch mode only)",
13907
+ "name": "output",
13991
13908
  "hasDynamicHelp": false,
13992
13909
  "multiple": false,
13993
13910
  "options": [
13994
- "terminal",
13995
- "background"
13911
+ "interactive",
13912
+ "print"
13996
13913
  ],
13997
13914
  "type": "option"
13998
13915
  },
13999
13916
  "skip-permissions": {
14000
- "description": "Skip permission prompts (danger mode)",
13917
+ "description": "Skip permission prompts - danger mode (batch mode only)",
14001
13918
  "name": "skip-permissions",
14002
13919
  "allowNo": false,
14003
13920
  "type": "boolean"
14004
13921
  },
14005
13922
  "create-pr": {
14006
- "description": "Create PR when work is ready (canonical flag for PR behavior)",
13923
+ "description": "Create PR when work is ready (canonical flag for PR behavior, batch mode only)",
14007
13924
  "name": "create-pr",
14008
13925
  "allowNo": false,
14009
13926
  "type": "boolean"
14010
- }
14011
- },
14012
- "hasDynamicHelp": false,
14013
- "hiddenAliases": [],
14014
- "id": "work:watch",
14015
- "pluginAlias": "@proletariat/cli",
14016
- "pluginName": "@proletariat/cli",
14017
- "pluginType": "core",
14018
- "strict": true,
14019
- "isESM": true,
14020
- "relativePath": [
14021
- "dist",
14022
- "commands",
14023
- "work",
14024
- "watch.js"
14025
- ]
14026
- },
14027
- "workflow:create": {
14028
- "aliases": [],
14029
- "args": {
14030
- "name": {
14031
- "description": "Workflow name",
14032
- "name": "name",
14033
- "required": false
14034
- }
14035
- },
14036
- "description": "Create a new custom workflow",
14037
- "examples": [
14038
- "<%= config.bin %> <%= command.id %> \"My Workflow\"",
14039
- "<%= config.bin %> <%= command.id %> \"Sprint Board\" --description \"Agile sprint workflow\"",
14040
- "<%= config.bin %> <%= command.id %> \"Simple\" --statuses \"Todo,In Progress,Done\"",
14041
- "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
14042
- ],
14043
- "flags": {
14044
- "project": {
14045
- "char": "P",
14046
- "description": "Project ID (uses first project if only one exists)",
14047
- "name": "project",
13927
+ },
13928
+ "no-pr": {
13929
+ "description": "[deprecated: use --create-pr instead] Skip PR creation (batch mode only)",
13930
+ "name": "no-pr",
13931
+ "allowNo": false,
13932
+ "type": "boolean"
13933
+ },
13934
+ "action": {
13935
+ "description": "Action to perform (e.g., groom, implement, review, custom). Prompts if not provided.",
13936
+ "name": "action",
14048
13937
  "hasDynamicHelp": false,
14049
13938
  "multiple": false,
14050
13939
  "type": "option"
14051
13940
  },
14052
- "json": {
14053
- "description": "Output as JSON for AI agents/scripts",
14054
- "name": "json",
13941
+ "message": {
13942
+ "description": "Additional instructions for the agent (appended to any action prompt)",
13943
+ "name": "message",
13944
+ "hasDynamicHelp": false,
13945
+ "multiple": false,
13946
+ "type": "option"
13947
+ },
13948
+ "session": {
13949
+ "description": "Session manager inside container (tmux runs agent in tmux inside container)",
13950
+ "name": "session",
13951
+ "default": "tmux",
13952
+ "hasDynamicHelp": false,
13953
+ "multiple": false,
13954
+ "options": [
13955
+ "tmux",
13956
+ "direct"
13957
+ ],
13958
+ "type": "option"
13959
+ },
13960
+ "focus": {
13961
+ "description": "Bring terminal to foreground when opening new tabs (default: opens in background)",
13962
+ "name": "focus",
14055
13963
  "allowNo": false,
14056
13964
  "type": "boolean"
14057
13965
  },
14058
- "machine": {
14059
- "char": "m",
14060
- "description": "Output as JSON for AI agents/scripts",
14061
- "name": "machine",
13966
+ "clone": {
13967
+ "description": "Use independent git clone instead of worktree (more isolation, no real-time sync)",
13968
+ "name": "clone",
14062
13969
  "allowNo": false,
14063
13970
  "type": "boolean"
14064
13971
  },
14065
- "description": {
14066
- "char": "d",
14067
- "description": "Workflow description",
14068
- "name": "description",
13972
+ "count": {
13973
+ "char": "n",
13974
+ "description": "Number of tickets to spawn (selects top N by rank)",
13975
+ "name": "count",
14069
13976
  "hasDynamicHelp": false,
14070
13977
  "multiple": false,
14071
13978
  "type": "option"
14072
13979
  },
14073
- "statuses": {
14074
- "char": "s",
14075
- "description": "Comma-separated list of status names (uses default categories)",
14076
- "name": "statuses",
13980
+ "diet": {
13981
+ "description": "Apply diet-balanced category weighting when selecting tickets",
13982
+ "name": "diet",
13983
+ "allowNo": false,
13984
+ "type": "boolean"
13985
+ },
13986
+ "category": {
13987
+ "description": "Filter tickets by category (comma-separated, e.g., ship,grow)",
13988
+ "name": "category",
13989
+ "hasDynamicHelp": false,
13990
+ "multiple": false,
13991
+ "type": "option"
13992
+ },
13993
+ "priority": {
13994
+ "description": "Filter tickets by priority (comma-separated, e.g., P0,P1)",
13995
+ "name": "priority",
13996
+ "hasDynamicHelp": false,
13997
+ "multiple": false,
13998
+ "type": "option"
13999
+ },
14000
+ "epic": {
14001
+ "description": "Filter tickets by epic ID",
14002
+ "name": "epic",
14003
+ "hasDynamicHelp": false,
14004
+ "multiple": false,
14005
+ "type": "option"
14006
+ },
14007
+ "status": {
14008
+ "description": "Filter tickets by status name (e.g., Backlog, Ready)",
14009
+ "name": "status",
14077
14010
  "hasDynamicHelp": false,
14078
14011
  "multiple": false,
14079
14012
  "type": "option"
@@ -14081,34 +14014,38 @@
14081
14014
  },
14082
14015
  "hasDynamicHelp": false,
14083
14016
  "hiddenAliases": [],
14084
- "id": "workflow:create",
14017
+ "id": "work:spawn",
14085
14018
  "pluginAlias": "@proletariat/cli",
14086
14019
  "pluginName": "@proletariat/cli",
14087
14020
  "pluginType": "core",
14088
- "strict": true,
14021
+ "strict": false,
14089
14022
  "isESM": true,
14090
14023
  "relativePath": [
14091
14024
  "dist",
14092
14025
  "commands",
14093
- "workflow",
14094
- "create.js"
14026
+ "work",
14027
+ "spawn.js"
14095
14028
  ]
14096
14029
  },
14097
- "workflow:delete": {
14030
+ "work:start": {
14098
14031
  "aliases": [],
14099
14032
  "args": {
14100
- "id": {
14101
- "description": "Workflow ID to delete - prompts with dropdown if not provided",
14102
- "name": "id",
14033
+ "ticketId": {
14034
+ "description": "Ticket ID - prompts with dropdown if not provided",
14035
+ "name": "ticketId",
14103
14036
  "required": false
14104
14037
  }
14105
14038
  },
14106
- "description": "Delete a custom workflow",
14039
+ "description": "Start work on a ticket (launches an agent to implement it)",
14107
14040
  "examples": [
14108
- "<%= config.bin %> <%= command.id %> my-workflow",
14109
- "<%= config.bin %> <%= command.id %> my-workflow --force # Skip confirmation",
14110
- "<%= config.bin %> <%= command.id %> # Interactive selection",
14111
- "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
14041
+ "<%= config.bin %> <%= command.id %> TKT-001",
14042
+ "<%= config.bin %> <%= command.id %> TKT-001 --create-pr # Create PR when work is ready",
14043
+ "<%= config.bin %> <%= command.id %> TKT-001 --mode foreground",
14044
+ "<%= config.bin %> <%= command.id %> TKT-001 --mode tmux",
14045
+ "<%= config.bin %> <%= command.id %> TKT-001 --mode terminal",
14046
+ "<%= config.bin %> <%= command.id %> # Interactive mode",
14047
+ "<%= config.bin %> <%= command.id %> --all # Spawn all backlog tickets",
14048
+ "<%= config.bin %> <%= command.id %> TKT-001 --prompt \"Add unit tests for the API\" # Custom prompt"
14112
14049
  ],
14113
14050
  "flags": {
14114
14051
  "project": {
@@ -14132,76 +14069,193 @@
14132
14069
  "allowNo": false,
14133
14070
  "type": "boolean"
14134
14071
  },
14072
+ "all": {
14073
+ "char": "a",
14074
+ "description": "Start work on all unassigned backlog tickets (batch mode)",
14075
+ "name": "all",
14076
+ "allowNo": false,
14077
+ "type": "boolean"
14078
+ },
14079
+ "executor": {
14080
+ "char": "e",
14081
+ "description": "Override executor",
14082
+ "name": "executor",
14083
+ "hasDynamicHelp": false,
14084
+ "multiple": false,
14085
+ "options": [
14086
+ "claude-code",
14087
+ "codex",
14088
+ "aider",
14089
+ "custom"
14090
+ ],
14091
+ "type": "option"
14092
+ },
14093
+ "action": {
14094
+ "char": "A",
14095
+ "description": "Action to perform (e.g., implement, groom, review)",
14096
+ "name": "action",
14097
+ "hasDynamicHelp": false,
14098
+ "multiple": false,
14099
+ "type": "option"
14100
+ },
14101
+ "prompt": {
14102
+ "char": "p",
14103
+ "description": "Custom prompt (overrides action)",
14104
+ "name": "prompt",
14105
+ "hasDynamicHelp": false,
14106
+ "multiple": false,
14107
+ "type": "option"
14108
+ },
14109
+ "message": {
14110
+ "description": "Additional instructions appended to any action prompt",
14111
+ "name": "message",
14112
+ "hasDynamicHelp": false,
14113
+ "multiple": false,
14114
+ "type": "option"
14115
+ },
14116
+ "watch": {
14117
+ "char": "w",
14118
+ "description": "Stream output in real-time",
14119
+ "name": "watch",
14120
+ "allowNo": false,
14121
+ "type": "boolean"
14122
+ },
14135
14123
  "force": {
14136
14124
  "char": "f",
14137
- "description": "Skip confirmation prompt",
14125
+ "description": "Start even if work already in progress",
14138
14126
  "name": "force",
14139
14127
  "allowNo": false,
14140
14128
  "type": "boolean"
14141
- }
14142
- },
14143
- "hasDynamicHelp": false,
14144
- "hiddenAliases": [],
14145
- "id": "workflow:delete",
14146
- "pluginAlias": "@proletariat/cli",
14147
- "pluginName": "@proletariat/cli",
14148
- "pluginType": "core",
14149
- "strict": true,
14150
- "isESM": true,
14151
- "relativePath": [
14152
- "dist",
14153
- "commands",
14154
- "workflow",
14155
- "delete.js"
14156
- ]
14157
- },
14158
- "workflow": {
14159
- "aliases": [],
14160
- "args": {},
14161
- "description": "List all available workflows (alias for workflow list)",
14162
- "examples": [
14163
- "<%= config.bin %> <%= command.id %>",
14164
- "<%= config.bin %> <%= command.id %> --builtin",
14165
- "<%= config.bin %> <%= command.id %> --json"
14166
- ],
14167
- "flags": {
14168
- "project": {
14169
- "char": "P",
14170
- "description": "Project ID (uses first project if only one exists)",
14171
- "name": "project",
14129
+ },
14130
+ "vm-host": {
14131
+ "description": "VM host for vm mode",
14132
+ "name": "vm-host",
14133
+ "hasDynamicHelp": false,
14134
+ "multiple": false,
14135
+ "type": "option"
14136
+ },
14137
+ "run-on-host": {
14138
+ "description": "Run on host even if devcontainer exists (bypasses sandbox)",
14139
+ "name": "run-on-host",
14140
+ "allowNo": false,
14141
+ "type": "boolean"
14142
+ },
14143
+ "reconfigure": {
14144
+ "description": "Re-prompt for terminal app preference",
14145
+ "name": "reconfigure",
14146
+ "allowNo": false,
14147
+ "type": "boolean"
14148
+ },
14149
+ "permission-mode": {
14150
+ "description": "Permission mode for Claude Code (danger=skip checks, safe=require approval)",
14151
+ "name": "permission-mode",
14152
+ "hasDynamicHelp": false,
14153
+ "multiple": false,
14154
+ "options": [
14155
+ "danger",
14156
+ "safe"
14157
+ ],
14158
+ "type": "option"
14159
+ },
14160
+ "skip-permissions": {
14161
+ "description": "Skip permission checks (shorthand for --permission-mode danger)",
14162
+ "name": "skip-permissions",
14163
+ "allowNo": false,
14164
+ "type": "boolean"
14165
+ },
14166
+ "create-pr": {
14167
+ "description": "Create PR when work is ready (canonical flag for PR behavior)",
14168
+ "name": "create-pr",
14169
+ "allowNo": false,
14170
+ "type": "boolean"
14171
+ },
14172
+ "no-pr": {
14173
+ "description": "[deprecated: use --create-pr instead] Skip PR creation when work is ready",
14174
+ "name": "no-pr",
14175
+ "allowNo": false,
14176
+ "type": "boolean"
14177
+ },
14178
+ "output": {
14179
+ "char": "o",
14180
+ "description": "Output mode",
14181
+ "name": "output",
14182
+ "hasDynamicHelp": false,
14183
+ "multiple": false,
14184
+ "options": [
14185
+ "interactive",
14186
+ "print"
14187
+ ],
14188
+ "type": "option"
14189
+ },
14190
+ "display": {
14191
+ "char": "d",
14192
+ "description": "Display mode (foreground=current terminal, terminal=new tab, background=detached)",
14193
+ "name": "display",
14194
+ "hasDynamicHelp": false,
14195
+ "multiple": false,
14196
+ "options": [
14197
+ "foreground",
14198
+ "terminal",
14199
+ "background"
14200
+ ],
14201
+ "type": "option"
14202
+ },
14203
+ "session": {
14204
+ "char": "s",
14205
+ "description": "Session manager inside container (tmux runs agent in tmux inside container)",
14206
+ "name": "session",
14207
+ "default": "tmux",
14208
+ "hasDynamicHelp": false,
14209
+ "multiple": false,
14210
+ "options": [
14211
+ "tmux",
14212
+ "direct"
14213
+ ],
14214
+ "type": "option"
14215
+ },
14216
+ "agent": {
14217
+ "description": "Agent to assign (skips interactive selection)",
14218
+ "name": "agent",
14172
14219
  "hasDynamicHelp": false,
14173
14220
  "multiple": false,
14174
14221
  "type": "option"
14175
14222
  },
14176
- "json": {
14177
- "description": "Output as JSON for AI agents/scripts",
14178
- "name": "json",
14223
+ "ephemeral": {
14224
+ "description": "Create an ephemeral agent on-demand (auto-generates name)",
14225
+ "name": "ephemeral",
14179
14226
  "allowNo": false,
14180
14227
  "type": "boolean"
14181
14228
  },
14182
- "machine": {
14183
- "char": "m",
14184
- "description": "Output as JSON for AI agents/scripts",
14185
- "name": "machine",
14229
+ "focus": {
14230
+ "description": "Bring terminal to foreground when opening new tabs (default: opens in background)",
14231
+ "name": "focus",
14186
14232
  "allowNo": false,
14187
14233
  "type": "boolean"
14188
14234
  },
14189
- "builtin": {
14190
- "description": "Show only built-in workflows",
14191
- "name": "builtin",
14235
+ "clone": {
14236
+ "description": "Use independent git clone instead of worktree (more isolation, no real-time sync)",
14237
+ "name": "clone",
14192
14238
  "allowNo": false,
14193
14239
  "type": "boolean"
14194
14240
  },
14195
- "custom": {
14196
- "description": "Show only custom workflows",
14197
- "name": "custom",
14241
+ "yes": {
14242
+ "char": "y",
14243
+ "description": "Skip confirmation prompt (for non-TTY/scripted execution)",
14244
+ "name": "yes",
14245
+ "allowNo": false,
14246
+ "type": "boolean"
14247
+ },
14248
+ "use-api-key": {
14249
+ "description": "Use ANTHROPIC_API_KEY for Docker containers instead of OAuth credentials",
14250
+ "hidden": true,
14251
+ "name": "use-api-key",
14198
14252
  "allowNo": false,
14199
14253
  "type": "boolean"
14200
14254
  }
14201
14255
  },
14202
14256
  "hasDynamicHelp": false,
14203
14257
  "hiddenAliases": [],
14204
- "id": "workflow",
14258
+ "id": "work:start",
14205
14259
  "pluginAlias": "@proletariat/cli",
14206
14260
  "pluginName": "@proletariat/cli",
14207
14261
  "pluginType": "core",
@@ -14210,18 +14264,17 @@
14210
14264
  "relativePath": [
14211
14265
  "dist",
14212
14266
  "commands",
14213
- "workflow",
14214
- "index.js"
14267
+ "work",
14268
+ "start.js"
14215
14269
  ]
14216
14270
  },
14217
- "workflow:list": {
14271
+ "work:status": {
14218
14272
  "aliases": [],
14219
14273
  "args": {},
14220
- "description": "List all available workflows",
14274
+ "description": "Show current work status (in-progress tickets)",
14221
14275
  "examples": [
14222
14276
  "<%= config.bin %> <%= command.id %>",
14223
- "<%= config.bin %> <%= command.id %> --builtin",
14224
- "<%= config.bin %> <%= command.id %> --machine"
14277
+ "<%= config.bin %> <%= command.id %> --json"
14225
14278
  ],
14226
14279
  "flags": {
14227
14280
  "project": {
@@ -14244,23 +14297,11 @@
14244
14297
  "name": "machine",
14245
14298
  "allowNo": false,
14246
14299
  "type": "boolean"
14247
- },
14248
- "builtin": {
14249
- "description": "Show only built-in workflows",
14250
- "name": "builtin",
14251
- "allowNo": false,
14252
- "type": "boolean"
14253
- },
14254
- "custom": {
14255
- "description": "Show only custom workflows",
14256
- "name": "custom",
14257
- "allowNo": false,
14258
- "type": "boolean"
14259
14300
  }
14260
14301
  },
14261
14302
  "hasDynamicHelp": false,
14262
14303
  "hiddenAliases": [],
14263
- "id": "workflow:list",
14304
+ "id": "work:status",
14264
14305
  "pluginAlias": "@proletariat/cli",
14265
14306
  "pluginName": "@proletariat/cli",
14266
14307
  "pluginType": "core",
@@ -14269,24 +14310,20 @@
14269
14310
  "relativePath": [
14270
14311
  "dist",
14271
14312
  "commands",
14272
- "workflow",
14273
- "list.js"
14313
+ "work",
14314
+ "status.js"
14274
14315
  ]
14275
14316
  },
14276
- "workflow:show": {
14317
+ "work:watch": {
14277
14318
  "aliases": [],
14278
- "args": {
14279
- "id": {
14280
- "description": "Workflow ID - prompts with dropdown if not provided",
14281
- "name": "id",
14282
- "required": false
14283
- }
14284
- },
14285
- "description": "View details of a workflow (alias for workflow view)",
14319
+ "args": {},
14320
+ "description": "Watch a column and auto-spawn agents for new tickets",
14286
14321
  "examples": [
14287
- "<%= config.bin %> <%= command.id %> default",
14288
- "<%= config.bin %> <%= command.id %> # Interactive selection",
14289
- "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
14322
+ "<%= config.bin %> <%= command.id %>",
14323
+ "<%= config.bin %> <%= command.id %> --column Ready",
14324
+ "<%= config.bin %> <%= command.id %> --column Ready --strategy round-robin",
14325
+ "<%= config.bin %> <%= command.id %> --column Ready --interval 10",
14326
+ "<%= config.bin %> <%= command.id %> --column Ready --once"
14290
14327
  ],
14291
14328
  "flags": {
14292
14329
  "project": {
@@ -14309,125 +14346,88 @@
14309
14346
  "name": "machine",
14310
14347
  "allowNo": false,
14311
14348
  "type": "boolean"
14312
- }
14313
- },
14314
- "hasDynamicHelp": false,
14315
- "hidden": true,
14316
- "hiddenAliases": [],
14317
- "id": "workflow:show",
14318
- "pluginAlias": "@proletariat/cli",
14319
- "pluginName": "@proletariat/cli",
14320
- "pluginType": "core",
14321
- "isESM": true,
14322
- "relativePath": [
14323
- "dist",
14324
- "commands",
14325
- "workflow",
14326
- "show.js"
14327
- ]
14328
- },
14329
- "workflow:switch": {
14330
- "aliases": [],
14331
- "args": {
14332
- "workflow": {
14333
- "description": "Workflow ID to switch to",
14334
- "name": "workflow",
14335
- "required": false
14336
- }
14337
- },
14338
- "description": "Switch a project to use a different workflow",
14339
- "examples": [
14340
- "<%= config.bin %> <%= command.id %> kanban",
14341
- "<%= config.bin %> <%= command.id %> linear --project my-project",
14342
- "<%= config.bin %> <%= command.id %> --force # Skip confirmation",
14343
- "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
14344
- ],
14345
- "flags": {
14346
- "project": {
14347
- "char": "P",
14348
- "description": "Project ID (uses first project if only one exists)",
14349
- "name": "project",
14349
+ },
14350
+ "column": {
14351
+ "char": "c",
14352
+ "description": "Column to watch for new tickets (prompts if not provided)",
14353
+ "name": "column",
14350
14354
  "hasDynamicHelp": false,
14351
14355
  "multiple": false,
14352
14356
  "type": "option"
14353
14357
  },
14354
- "json": {
14355
- "description": "Output as JSON for AI agents/scripts",
14356
- "name": "json",
14357
- "allowNo": false,
14358
- "type": "boolean"
14358
+ "strategy": {
14359
+ "char": "s",
14360
+ "description": "Agent selection strategy",
14361
+ "name": "strategy",
14362
+ "default": "round-robin",
14363
+ "hasDynamicHelp": false,
14364
+ "multiple": false,
14365
+ "options": [
14366
+ "round-robin",
14367
+ "least-busy",
14368
+ "random"
14369
+ ],
14370
+ "type": "option"
14359
14371
  },
14360
- "machine": {
14361
- "char": "m",
14362
- "description": "Output as JSON for AI agents/scripts",
14363
- "name": "machine",
14364
- "allowNo": false,
14365
- "type": "boolean"
14372
+ "agent": {
14373
+ "char": "a",
14374
+ "description": "Use specific agent for all tickets",
14375
+ "name": "agent",
14376
+ "hasDynamicHelp": false,
14377
+ "multiple": false,
14378
+ "type": "option"
14366
14379
  },
14367
- "force": {
14368
- "char": "f",
14369
- "description": "Skip confirmation prompt",
14370
- "name": "force",
14380
+ "limit": {
14381
+ "char": "l",
14382
+ "description": "Maximum concurrent executions",
14383
+ "name": "limit",
14384
+ "hasDynamicHelp": false,
14385
+ "multiple": false,
14386
+ "type": "option"
14387
+ },
14388
+ "interval": {
14389
+ "char": "i",
14390
+ "description": "Polling interval in seconds",
14391
+ "name": "interval",
14392
+ "default": 5,
14393
+ "hasDynamicHelp": false,
14394
+ "multiple": false,
14395
+ "type": "option"
14396
+ },
14397
+ "once": {
14398
+ "description": "Check once and exit (no continuous watching)",
14399
+ "name": "once",
14371
14400
  "allowNo": false,
14372
14401
  "type": "boolean"
14373
- }
14374
- },
14375
- "hasDynamicHelp": false,
14376
- "hiddenAliases": [],
14377
- "id": "workflow:switch",
14378
- "pluginAlias": "@proletariat/cli",
14379
- "pluginName": "@proletariat/cli",
14380
- "pluginType": "core",
14381
- "strict": true,
14382
- "isESM": true,
14383
- "relativePath": [
14384
- "dist",
14385
- "commands",
14386
- "workflow",
14387
- "switch.js"
14388
- ]
14389
- },
14390
- "workflow:view": {
14391
- "aliases": [],
14392
- "args": {
14393
- "id": {
14394
- "description": "Workflow ID - prompts with dropdown if not provided",
14395
- "name": "id",
14396
- "required": false
14397
- }
14398
- },
14399
- "description": "View details of a workflow",
14400
- "examples": [
14401
- "<%= config.bin %> <%= command.id %> default",
14402
- "<%= config.bin %> <%= command.id %> # Interactive selection",
14403
- "<%= config.bin %> <%= command.id %> --machine # JSON output for AI agents"
14404
- ],
14405
- "flags": {
14406
- "project": {
14407
- "char": "P",
14408
- "description": "Project ID (uses first project if only one exists)",
14409
- "name": "project",
14402
+ },
14403
+ "mode": {
14404
+ "char": "d",
14405
+ "description": "Display mode for agent output",
14406
+ "name": "mode",
14410
14407
  "hasDynamicHelp": false,
14411
14408
  "multiple": false,
14409
+ "options": [
14410
+ "terminal",
14411
+ "background"
14412
+ ],
14412
14413
  "type": "option"
14413
14414
  },
14414
- "json": {
14415
- "description": "Output as JSON for AI agents/scripts",
14416
- "name": "json",
14415
+ "skip-permissions": {
14416
+ "description": "Skip permission prompts (danger mode)",
14417
+ "name": "skip-permissions",
14417
14418
  "allowNo": false,
14418
14419
  "type": "boolean"
14419
14420
  },
14420
- "machine": {
14421
- "char": "m",
14422
- "description": "Output as JSON for AI agents/scripts",
14423
- "name": "machine",
14421
+ "create-pr": {
14422
+ "description": "Create PR when work is ready (canonical flag for PR behavior)",
14423
+ "name": "create-pr",
14424
14424
  "allowNo": false,
14425
14425
  "type": "boolean"
14426
14426
  }
14427
14427
  },
14428
14428
  "hasDynamicHelp": false,
14429
14429
  "hiddenAliases": [],
14430
- "id": "workflow:view",
14430
+ "id": "work:watch",
14431
14431
  "pluginAlias": "@proletariat/cli",
14432
14432
  "pluginName": "@proletariat/cli",
14433
14433
  "pluginType": "core",
@@ -14436,8 +14436,8 @@
14436
14436
  "relativePath": [
14437
14437
  "dist",
14438
14438
  "commands",
14439
- "workflow",
14440
- "view.js"
14439
+ "work",
14440
+ "watch.js"
14441
14441
  ]
14442
14442
  },
14443
14443
  "workspace:add": {
@@ -16518,5 +16518,5 @@
16518
16518
  ]
16519
16519
  }
16520
16520
  },
16521
- "version": "0.3.41"
16521
+ "version": "0.3.43"
16522
16522
  }