@proletariat/cli 0.3.14 → 0.3.15

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.
@@ -1231,86 +1231,6 @@
1231
1231
  "visit.js"
1232
1232
  ]
1233
1233
  },
1234
- "board": {
1235
- "aliases": [],
1236
- "args": {},
1237
- "description": "Interactive menu for board operations",
1238
- "examples": [
1239
- "<%= config.bin %> <%= command.id %>"
1240
- ],
1241
- "flags": {
1242
- "project": {
1243
- "char": "P",
1244
- "description": "Project ID (uses first project if only one exists)",
1245
- "name": "project",
1246
- "hasDynamicHelp": false,
1247
- "multiple": false,
1248
- "type": "option"
1249
- },
1250
- "json": {
1251
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
1252
- "name": "json",
1253
- "allowNo": false,
1254
- "type": "boolean"
1255
- }
1256
- },
1257
- "hasDynamicHelp": false,
1258
- "hiddenAliases": [],
1259
- "id": "board",
1260
- "pluginAlias": "@proletariat/cli",
1261
- "pluginName": "@proletariat/cli",
1262
- "pluginType": "core",
1263
- "strict": true,
1264
- "isESM": true,
1265
- "relativePath": [
1266
- "dist",
1267
- "commands",
1268
- "board",
1269
- "index.js"
1270
- ]
1271
- },
1272
- "board:watch": {
1273
- "aliases": [],
1274
- "args": {},
1275
- "description": "Watch board.md for changes and auto-sync to SQLite",
1276
- "examples": [
1277
- "<%= config.bin %> <%= command.id %>",
1278
- "<%= config.bin %> <%= command.id %> --debounce 1000"
1279
- ],
1280
- "flags": {
1281
- "project": {
1282
- "char": "P",
1283
- "description": "Project ID (uses first project if only one exists)",
1284
- "name": "project",
1285
- "hasDynamicHelp": false,
1286
- "multiple": false,
1287
- "type": "option"
1288
- },
1289
- "debounce": {
1290
- "char": "d",
1291
- "description": "Debounce delay in milliseconds",
1292
- "name": "debounce",
1293
- "default": 500,
1294
- "hasDynamicHelp": false,
1295
- "multiple": false,
1296
- "type": "option"
1297
- }
1298
- },
1299
- "hasDynamicHelp": false,
1300
- "hiddenAliases": [],
1301
- "id": "board:watch",
1302
- "pluginAlias": "@proletariat/cli",
1303
- "pluginName": "@proletariat/cli",
1304
- "pluginType": "core",
1305
- "strict": true,
1306
- "isESM": true,
1307
- "relativePath": [
1308
- "dist",
1309
- "commands",
1310
- "board",
1311
- "watch.js"
1312
- ]
1313
- },
1314
1234
  "autocomplete:setup": {
1315
1235
  "aliases": [],
1316
1236
  "args": {},
@@ -1691,6 +1611,86 @@
1691
1611
  "where.js"
1692
1612
  ]
1693
1613
  },
1614
+ "board": {
1615
+ "aliases": [],
1616
+ "args": {},
1617
+ "description": "Interactive menu for board operations",
1618
+ "examples": [
1619
+ "<%= config.bin %> <%= command.id %>"
1620
+ ],
1621
+ "flags": {
1622
+ "project": {
1623
+ "char": "P",
1624
+ "description": "Project ID (uses first project if only one exists)",
1625
+ "name": "project",
1626
+ "hasDynamicHelp": false,
1627
+ "multiple": false,
1628
+ "type": "option"
1629
+ },
1630
+ "json": {
1631
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
1632
+ "name": "json",
1633
+ "allowNo": false,
1634
+ "type": "boolean"
1635
+ }
1636
+ },
1637
+ "hasDynamicHelp": false,
1638
+ "hiddenAliases": [],
1639
+ "id": "board",
1640
+ "pluginAlias": "@proletariat/cli",
1641
+ "pluginName": "@proletariat/cli",
1642
+ "pluginType": "core",
1643
+ "strict": true,
1644
+ "isESM": true,
1645
+ "relativePath": [
1646
+ "dist",
1647
+ "commands",
1648
+ "board",
1649
+ "index.js"
1650
+ ]
1651
+ },
1652
+ "board:watch": {
1653
+ "aliases": [],
1654
+ "args": {},
1655
+ "description": "Watch board.md for changes and auto-sync to SQLite",
1656
+ "examples": [
1657
+ "<%= config.bin %> <%= command.id %>",
1658
+ "<%= config.bin %> <%= command.id %> --debounce 1000"
1659
+ ],
1660
+ "flags": {
1661
+ "project": {
1662
+ "char": "P",
1663
+ "description": "Project ID (uses first project if only one exists)",
1664
+ "name": "project",
1665
+ "hasDynamicHelp": false,
1666
+ "multiple": false,
1667
+ "type": "option"
1668
+ },
1669
+ "debounce": {
1670
+ "char": "d",
1671
+ "description": "Debounce delay in milliseconds",
1672
+ "name": "debounce",
1673
+ "default": 500,
1674
+ "hasDynamicHelp": false,
1675
+ "multiple": false,
1676
+ "type": "option"
1677
+ }
1678
+ },
1679
+ "hasDynamicHelp": false,
1680
+ "hiddenAliases": [],
1681
+ "id": "board:watch",
1682
+ "pluginAlias": "@proletariat/cli",
1683
+ "pluginName": "@proletariat/cli",
1684
+ "pluginType": "core",
1685
+ "strict": true,
1686
+ "isESM": true,
1687
+ "relativePath": [
1688
+ "dist",
1689
+ "commands",
1690
+ "board",
1691
+ "watch.js"
1692
+ ]
1693
+ },
1694
1694
  "config": {
1695
1695
  "aliases": [],
1696
1696
  "args": {},
@@ -2266,14 +2266,19 @@
2266
2266
  "sync.js"
2267
2267
  ]
2268
2268
  },
2269
- "execution": {
2269
+ "epic:activate": {
2270
2270
  "aliases": [],
2271
- "args": {},
2272
- "description": "Single execution operations (logs, stop)",
2271
+ "args": {
2272
+ "id": {
2273
+ "description": "Epic ID",
2274
+ "name": "id",
2275
+ "required": false
2276
+ }
2277
+ },
2278
+ "description": "Activate a draft or archived epic",
2273
2279
  "examples": [
2274
- "<%= config.bin %> <%= command.id %>",
2275
- "<%= config.bin %> <%= command.id %> logs WORK-001",
2276
- "<%= config.bin %> <%= command.id %> stop WORK-001"
2280
+ "<%= config.bin %> <%= command.id %> EPIC-004",
2281
+ "<%= config.bin %> <%= command.id %>"
2277
2282
  ],
2278
2283
  "flags": {
2279
2284
  "project": {
@@ -2293,7 +2298,7 @@
2293
2298
  },
2294
2299
  "hasDynamicHelp": false,
2295
2300
  "hiddenAliases": [],
2296
- "id": "execution",
2301
+ "id": "epic:activate",
2297
2302
  "pluginAlias": "@proletariat/cli",
2298
2303
  "pluginName": "@proletariat/cli",
2299
2304
  "pluginType": "core",
@@ -2302,19 +2307,23 @@
2302
2307
  "relativePath": [
2303
2308
  "dist",
2304
2309
  "commands",
2305
- "execution",
2306
- "index.js"
2310
+ "epic",
2311
+ "activate.js"
2307
2312
  ]
2308
2313
  },
2309
- "execution:list": {
2314
+ "epic:archive": {
2310
2315
  "aliases": [],
2311
- "args": {},
2312
- "description": "List running and recent executions",
2316
+ "args": {
2317
+ "id": {
2318
+ "description": "Epic ID",
2319
+ "name": "id",
2320
+ "required": false
2321
+ }
2322
+ },
2323
+ "description": "Archive a completed epic",
2313
2324
  "examples": [
2314
- "<%= config.bin %> <%= command.id %>",
2315
- "<%= config.bin %> <%= command.id %> --status running",
2316
- "<%= config.bin %> <%= command.id %> --agent alice",
2317
- "<%= config.bin %> <%= command.id %> --limit 50"
2325
+ "<%= config.bin %> <%= command.id %> EPIC-002",
2326
+ "<%= config.bin %> <%= command.id %> --force"
2318
2327
  ],
2319
2328
  "flags": {
2320
2329
  "project": {
@@ -2325,42 +2334,23 @@
2325
2334
  "multiple": false,
2326
2335
  "type": "option"
2327
2336
  },
2328
- "status": {
2329
- "char": "s",
2330
- "description": "Filter by status",
2331
- "name": "status",
2332
- "hasDynamicHelp": false,
2333
- "multiple": false,
2334
- "options": [
2335
- "starting",
2336
- "running",
2337
- "completed",
2338
- "failed",
2339
- "stopped"
2340
- ],
2341
- "type": "option"
2342
- },
2343
- "agent": {
2344
- "char": "a",
2345
- "description": "Filter by agent name",
2346
- "name": "agent",
2347
- "hasDynamicHelp": false,
2348
- "multiple": false,
2349
- "type": "option"
2337
+ "json": {
2338
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
2339
+ "name": "json",
2340
+ "allowNo": false,
2341
+ "type": "boolean"
2350
2342
  },
2351
- "limit": {
2352
- "char": "l",
2353
- "description": "Number of results",
2354
- "name": "limit",
2355
- "default": 20,
2356
- "hasDynamicHelp": false,
2357
- "multiple": false,
2358
- "type": "option"
2343
+ "force": {
2344
+ "char": "f",
2345
+ "description": "Skip ticket completion check",
2346
+ "name": "force",
2347
+ "allowNo": false,
2348
+ "type": "boolean"
2359
2349
  }
2360
2350
  },
2361
2351
  "hasDynamicHelp": false,
2362
2352
  "hiddenAliases": [],
2363
- "id": "execution:list",
2353
+ "id": "epic:archive",
2364
2354
  "pluginAlias": "@proletariat/cli",
2365
2355
  "pluginName": "@proletariat/cli",
2366
2356
  "pluginType": "core",
@@ -2369,240 +2359,11 @@
2369
2359
  "relativePath": [
2370
2360
  "dist",
2371
2361
  "commands",
2372
- "execution",
2373
- "list.js"
2362
+ "epic",
2363
+ "archive.js"
2374
2364
  ]
2375
2365
  },
2376
- "execution:logs": {
2377
- "aliases": [],
2378
- "args": {
2379
- "id": {
2380
- "description": "Execution ID - prompts if not provided",
2381
- "name": "id",
2382
- "required": false
2383
- }
2384
- },
2385
- "description": "View execution logs",
2386
- "examples": [
2387
- "<%= config.bin %> <%= command.id %> WORK-001",
2388
- "<%= config.bin %> <%= command.id %> WORK-001 --follow",
2389
- "<%= config.bin %> <%= command.id %> WORK-001 --tail 50",
2390
- "<%= config.bin %> <%= command.id %> # Interactive mode"
2391
- ],
2392
- "flags": {
2393
- "project": {
2394
- "char": "P",
2395
- "description": "Project ID (uses first project if only one exists)",
2396
- "name": "project",
2397
- "hasDynamicHelp": false,
2398
- "multiple": false,
2399
- "type": "option"
2400
- },
2401
- "follow": {
2402
- "char": "f",
2403
- "description": "Stream logs in real-time",
2404
- "name": "follow",
2405
- "allowNo": false,
2406
- "type": "boolean"
2407
- },
2408
- "tail": {
2409
- "char": "n",
2410
- "description": "Show last n lines",
2411
- "name": "tail",
2412
- "hasDynamicHelp": false,
2413
- "multiple": false,
2414
- "type": "option"
2415
- },
2416
- "json": {
2417
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
2418
- "name": "json",
2419
- "allowNo": false,
2420
- "type": "boolean"
2421
- }
2422
- },
2423
- "hasDynamicHelp": false,
2424
- "hiddenAliases": [],
2425
- "id": "execution:logs",
2426
- "pluginAlias": "@proletariat/cli",
2427
- "pluginName": "@proletariat/cli",
2428
- "pluginType": "core",
2429
- "strict": true,
2430
- "isESM": true,
2431
- "relativePath": [
2432
- "dist",
2433
- "commands",
2434
- "execution",
2435
- "logs.js"
2436
- ]
2437
- },
2438
- "execution:stop": {
2439
- "aliases": [],
2440
- "args": {
2441
- "id": {
2442
- "description": "Execution ID - prompts if not provided (ignored if --all or --agent used)",
2443
- "name": "id",
2444
- "required": false
2445
- }
2446
- },
2447
- "description": "Stop running execution(s)",
2448
- "examples": [
2449
- "<%= config.bin %> <%= command.id %> WORK-001",
2450
- "<%= config.bin %> <%= command.id %> WORK-001 --force",
2451
- "<%= config.bin %> <%= command.id %> # Interactive mode",
2452
- "<%= config.bin %> <%= command.id %> --all",
2453
- "<%= config.bin %> <%= command.id %> --all --force",
2454
- "<%= config.bin %> <%= command.id %> --agent altman"
2455
- ],
2456
- "flags": {
2457
- "project": {
2458
- "char": "P",
2459
- "description": "Project ID (uses first project if only one exists)",
2460
- "name": "project",
2461
- "hasDynamicHelp": false,
2462
- "multiple": false,
2463
- "type": "option"
2464
- },
2465
- "force": {
2466
- "char": "f",
2467
- "description": "Force kill (SIGKILL instead of SIGTERM)",
2468
- "name": "force",
2469
- "allowNo": false,
2470
- "type": "boolean"
2471
- },
2472
- "all": {
2473
- "description": "Stop all running executions",
2474
- "name": "all",
2475
- "allowNo": false,
2476
- "type": "boolean"
2477
- },
2478
- "agent": {
2479
- "char": "a",
2480
- "description": "Stop all executions for a specific agent",
2481
- "name": "agent",
2482
- "hasDynamicHelp": false,
2483
- "multiple": false,
2484
- "type": "option"
2485
- },
2486
- "json": {
2487
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
2488
- "name": "json",
2489
- "allowNo": false,
2490
- "type": "boolean"
2491
- }
2492
- },
2493
- "hasDynamicHelp": false,
2494
- "hiddenAliases": [],
2495
- "id": "execution:stop",
2496
- "pluginAlias": "@proletariat/cli",
2497
- "pluginName": "@proletariat/cli",
2498
- "pluginType": "core",
2499
- "strict": true,
2500
- "isESM": true,
2501
- "relativePath": [
2502
- "dist",
2503
- "commands",
2504
- "execution",
2505
- "stop.js"
2506
- ]
2507
- },
2508
- "epic:activate": {
2509
- "aliases": [],
2510
- "args": {
2511
- "id": {
2512
- "description": "Epic ID",
2513
- "name": "id",
2514
- "required": false
2515
- }
2516
- },
2517
- "description": "Activate a draft or archived epic",
2518
- "examples": [
2519
- "<%= config.bin %> <%= command.id %> EPIC-004",
2520
- "<%= config.bin %> <%= command.id %>"
2521
- ],
2522
- "flags": {
2523
- "project": {
2524
- "char": "P",
2525
- "description": "Project ID (uses first project if only one exists)",
2526
- "name": "project",
2527
- "hasDynamicHelp": false,
2528
- "multiple": false,
2529
- "type": "option"
2530
- },
2531
- "json": {
2532
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
2533
- "name": "json",
2534
- "allowNo": false,
2535
- "type": "boolean"
2536
- }
2537
- },
2538
- "hasDynamicHelp": false,
2539
- "hiddenAliases": [],
2540
- "id": "epic:activate",
2541
- "pluginAlias": "@proletariat/cli",
2542
- "pluginName": "@proletariat/cli",
2543
- "pluginType": "core",
2544
- "strict": true,
2545
- "isESM": true,
2546
- "relativePath": [
2547
- "dist",
2548
- "commands",
2549
- "epic",
2550
- "activate.js"
2551
- ]
2552
- },
2553
- "epic:archive": {
2554
- "aliases": [],
2555
- "args": {
2556
- "id": {
2557
- "description": "Epic ID",
2558
- "name": "id",
2559
- "required": false
2560
- }
2561
- },
2562
- "description": "Archive a completed epic",
2563
- "examples": [
2564
- "<%= config.bin %> <%= command.id %> EPIC-002",
2565
- "<%= config.bin %> <%= command.id %> --force"
2566
- ],
2567
- "flags": {
2568
- "project": {
2569
- "char": "P",
2570
- "description": "Project ID (uses first project if only one exists)",
2571
- "name": "project",
2572
- "hasDynamicHelp": false,
2573
- "multiple": false,
2574
- "type": "option"
2575
- },
2576
- "json": {
2577
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
2578
- "name": "json",
2579
- "allowNo": false,
2580
- "type": "boolean"
2581
- },
2582
- "force": {
2583
- "char": "f",
2584
- "description": "Skip ticket completion check",
2585
- "name": "force",
2586
- "allowNo": false,
2587
- "type": "boolean"
2588
- }
2589
- },
2590
- "hasDynamicHelp": false,
2591
- "hiddenAliases": [],
2592
- "id": "epic:archive",
2593
- "pluginAlias": "@proletariat/cli",
2594
- "pluginName": "@proletariat/cli",
2595
- "pluginType": "core",
2596
- "strict": true,
2597
- "isESM": true,
2598
- "relativePath": [
2599
- "dist",
2600
- "commands",
2601
- "epic",
2602
- "archive.js"
2603
- ]
2604
- },
2605
- "epic:create": {
2366
+ "epic:create": {
2606
2367
  "aliases": [],
2607
2368
  "args": {},
2608
2369
  "description": "Create a new epic",
@@ -3215,17 +2976,24 @@
3215
2976
  "view.js"
3216
2977
  ]
3217
2978
  },
3218
- "gh": {
2979
+ "execution": {
3219
2980
  "aliases": [],
3220
2981
  "args": {},
3221
- "description": "GitHub CLI setup and status for PR workflow",
2982
+ "description": "Single execution operations (logs, stop)",
3222
2983
  "examples": [
3223
2984
  "<%= config.bin %> <%= command.id %>",
3224
- "<%= config.bin %> <%= command.id %> status",
3225
- "<%= config.bin %> <%= command.id %> login",
3226
- "<%= config.bin %> <%= command.id %> token"
2985
+ "<%= config.bin %> <%= command.id %> logs WORK-001",
2986
+ "<%= config.bin %> <%= command.id %> stop WORK-001"
3227
2987
  ],
3228
2988
  "flags": {
2989
+ "project": {
2990
+ "char": "P",
2991
+ "description": "Project ID (uses first project if only one exists)",
2992
+ "name": "project",
2993
+ "hasDynamicHelp": false,
2994
+ "multiple": false,
2995
+ "type": "option"
2996
+ },
3229
2997
  "json": {
3230
2998
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
3231
2999
  "name": "json",
@@ -3235,29 +3003,261 @@
3235
3003
  },
3236
3004
  "hasDynamicHelp": false,
3237
3005
  "hiddenAliases": [],
3238
- "id": "gh",
3006
+ "id": "execution",
3239
3007
  "pluginAlias": "@proletariat/cli",
3240
3008
  "pluginName": "@proletariat/cli",
3241
3009
  "pluginType": "core",
3242
3010
  "strict": true,
3243
- "enableJsonFlag": false,
3244
3011
  "isESM": true,
3245
3012
  "relativePath": [
3246
3013
  "dist",
3247
3014
  "commands",
3248
- "gh",
3015
+ "execution",
3249
3016
  "index.js"
3250
3017
  ]
3251
3018
  },
3252
- "gh:login": {
3019
+ "execution:list": {
3253
3020
  "aliases": [],
3254
3021
  "args": {},
3255
- "description": "Login to GitHub CLI for PR workflow",
3022
+ "description": "List running and recent executions",
3256
3023
  "examples": [
3257
- "<%= config.bin %> <%= command.id %>"
3024
+ "<%= config.bin %> <%= command.id %>",
3025
+ "<%= config.bin %> <%= command.id %> --status running",
3026
+ "<%= config.bin %> <%= command.id %> --agent alice",
3027
+ "<%= config.bin %> <%= command.id %> --limit 50"
3258
3028
  ],
3259
- "flags": {},
3260
- "hasDynamicHelp": false,
3029
+ "flags": {
3030
+ "project": {
3031
+ "char": "P",
3032
+ "description": "Project ID (uses first project if only one exists)",
3033
+ "name": "project",
3034
+ "hasDynamicHelp": false,
3035
+ "multiple": false,
3036
+ "type": "option"
3037
+ },
3038
+ "status": {
3039
+ "char": "s",
3040
+ "description": "Filter by status",
3041
+ "name": "status",
3042
+ "hasDynamicHelp": false,
3043
+ "multiple": false,
3044
+ "options": [
3045
+ "starting",
3046
+ "running",
3047
+ "completed",
3048
+ "failed",
3049
+ "stopped"
3050
+ ],
3051
+ "type": "option"
3052
+ },
3053
+ "agent": {
3054
+ "char": "a",
3055
+ "description": "Filter by agent name",
3056
+ "name": "agent",
3057
+ "hasDynamicHelp": false,
3058
+ "multiple": false,
3059
+ "type": "option"
3060
+ },
3061
+ "limit": {
3062
+ "char": "l",
3063
+ "description": "Number of results",
3064
+ "name": "limit",
3065
+ "default": 20,
3066
+ "hasDynamicHelp": false,
3067
+ "multiple": false,
3068
+ "type": "option"
3069
+ }
3070
+ },
3071
+ "hasDynamicHelp": false,
3072
+ "hiddenAliases": [],
3073
+ "id": "execution:list",
3074
+ "pluginAlias": "@proletariat/cli",
3075
+ "pluginName": "@proletariat/cli",
3076
+ "pluginType": "core",
3077
+ "strict": true,
3078
+ "isESM": true,
3079
+ "relativePath": [
3080
+ "dist",
3081
+ "commands",
3082
+ "execution",
3083
+ "list.js"
3084
+ ]
3085
+ },
3086
+ "execution:logs": {
3087
+ "aliases": [],
3088
+ "args": {
3089
+ "id": {
3090
+ "description": "Execution ID - prompts if not provided",
3091
+ "name": "id",
3092
+ "required": false
3093
+ }
3094
+ },
3095
+ "description": "View execution logs",
3096
+ "examples": [
3097
+ "<%= config.bin %> <%= command.id %> WORK-001",
3098
+ "<%= config.bin %> <%= command.id %> WORK-001 --follow",
3099
+ "<%= config.bin %> <%= command.id %> WORK-001 --tail 50",
3100
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
3101
+ ],
3102
+ "flags": {
3103
+ "project": {
3104
+ "char": "P",
3105
+ "description": "Project ID (uses first project if only one exists)",
3106
+ "name": "project",
3107
+ "hasDynamicHelp": false,
3108
+ "multiple": false,
3109
+ "type": "option"
3110
+ },
3111
+ "follow": {
3112
+ "char": "f",
3113
+ "description": "Stream logs in real-time",
3114
+ "name": "follow",
3115
+ "allowNo": false,
3116
+ "type": "boolean"
3117
+ },
3118
+ "tail": {
3119
+ "char": "n",
3120
+ "description": "Show last n lines",
3121
+ "name": "tail",
3122
+ "hasDynamicHelp": false,
3123
+ "multiple": false,
3124
+ "type": "option"
3125
+ },
3126
+ "json": {
3127
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
3128
+ "name": "json",
3129
+ "allowNo": false,
3130
+ "type": "boolean"
3131
+ }
3132
+ },
3133
+ "hasDynamicHelp": false,
3134
+ "hiddenAliases": [],
3135
+ "id": "execution:logs",
3136
+ "pluginAlias": "@proletariat/cli",
3137
+ "pluginName": "@proletariat/cli",
3138
+ "pluginType": "core",
3139
+ "strict": true,
3140
+ "isESM": true,
3141
+ "relativePath": [
3142
+ "dist",
3143
+ "commands",
3144
+ "execution",
3145
+ "logs.js"
3146
+ ]
3147
+ },
3148
+ "execution:stop": {
3149
+ "aliases": [],
3150
+ "args": {
3151
+ "id": {
3152
+ "description": "Execution ID - prompts if not provided (ignored if --all or --agent used)",
3153
+ "name": "id",
3154
+ "required": false
3155
+ }
3156
+ },
3157
+ "description": "Stop running execution(s)",
3158
+ "examples": [
3159
+ "<%= config.bin %> <%= command.id %> WORK-001",
3160
+ "<%= config.bin %> <%= command.id %> WORK-001 --force",
3161
+ "<%= config.bin %> <%= command.id %> # Interactive mode",
3162
+ "<%= config.bin %> <%= command.id %> --all",
3163
+ "<%= config.bin %> <%= command.id %> --all --force",
3164
+ "<%= config.bin %> <%= command.id %> --agent altman"
3165
+ ],
3166
+ "flags": {
3167
+ "project": {
3168
+ "char": "P",
3169
+ "description": "Project ID (uses first project if only one exists)",
3170
+ "name": "project",
3171
+ "hasDynamicHelp": false,
3172
+ "multiple": false,
3173
+ "type": "option"
3174
+ },
3175
+ "force": {
3176
+ "char": "f",
3177
+ "description": "Force kill (SIGKILL instead of SIGTERM)",
3178
+ "name": "force",
3179
+ "allowNo": false,
3180
+ "type": "boolean"
3181
+ },
3182
+ "all": {
3183
+ "description": "Stop all running executions",
3184
+ "name": "all",
3185
+ "allowNo": false,
3186
+ "type": "boolean"
3187
+ },
3188
+ "agent": {
3189
+ "char": "a",
3190
+ "description": "Stop all executions for a specific agent",
3191
+ "name": "agent",
3192
+ "hasDynamicHelp": false,
3193
+ "multiple": false,
3194
+ "type": "option"
3195
+ },
3196
+ "json": {
3197
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
3198
+ "name": "json",
3199
+ "allowNo": false,
3200
+ "type": "boolean"
3201
+ }
3202
+ },
3203
+ "hasDynamicHelp": false,
3204
+ "hiddenAliases": [],
3205
+ "id": "execution:stop",
3206
+ "pluginAlias": "@proletariat/cli",
3207
+ "pluginName": "@proletariat/cli",
3208
+ "pluginType": "core",
3209
+ "strict": true,
3210
+ "isESM": true,
3211
+ "relativePath": [
3212
+ "dist",
3213
+ "commands",
3214
+ "execution",
3215
+ "stop.js"
3216
+ ]
3217
+ },
3218
+ "gh": {
3219
+ "aliases": [],
3220
+ "args": {},
3221
+ "description": "GitHub CLI setup and status for PR workflow",
3222
+ "examples": [
3223
+ "<%= config.bin %> <%= command.id %>",
3224
+ "<%= config.bin %> <%= command.id %> status",
3225
+ "<%= config.bin %> <%= command.id %> login",
3226
+ "<%= config.bin %> <%= command.id %> token"
3227
+ ],
3228
+ "flags": {
3229
+ "json": {
3230
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
3231
+ "name": "json",
3232
+ "allowNo": false,
3233
+ "type": "boolean"
3234
+ }
3235
+ },
3236
+ "hasDynamicHelp": false,
3237
+ "hiddenAliases": [],
3238
+ "id": "gh",
3239
+ "pluginAlias": "@proletariat/cli",
3240
+ "pluginName": "@proletariat/cli",
3241
+ "pluginType": "core",
3242
+ "strict": true,
3243
+ "enableJsonFlag": false,
3244
+ "isESM": true,
3245
+ "relativePath": [
3246
+ "dist",
3247
+ "commands",
3248
+ "gh",
3249
+ "index.js"
3250
+ ]
3251
+ },
3252
+ "gh:login": {
3253
+ "aliases": [],
3254
+ "args": {},
3255
+ "description": "Login to GitHub CLI for PR workflow",
3256
+ "examples": [
3257
+ "<%= config.bin %> <%= command.id %>"
3258
+ ],
3259
+ "flags": {},
3260
+ "hasDynamicHelp": false,
3261
3261
  "hiddenAliases": [],
3262
3262
  "id": "gh:login",
3263
3263
  "pluginAlias": "@proletariat/cli",
@@ -4362,21 +4362,20 @@
4362
4362
  "view.js"
4363
4363
  ]
4364
4364
  },
4365
- "repo:add": {
4365
+ "session:attach": {
4366
4366
  "aliases": [],
4367
4367
  "args": {
4368
- "path": {
4369
- "description": "Repository path or Git URL",
4370
- "name": "path",
4368
+ "session": {
4369
+ "description": "Session name or ticket ID to attach to (optional - will prompt if not provided)",
4370
+ "name": "session",
4371
4371
  "required": false
4372
4372
  }
4373
4373
  },
4374
- "description": "Add a repository to the HQ",
4374
+ "description": "Attach to an active tmux session",
4375
4375
  "examples": [
4376
- "<%= config.bin %> <%= command.id %> /path/to/repo",
4377
- "<%= config.bin %> <%= command.id %> git@github.com:user/repo.git",
4378
4376
  "<%= config.bin %> <%= command.id %>",
4379
- "<%= config.bin %> <%= command.id %> --bulk"
4377
+ "<%= config.bin %> <%= command.id %> TKT-347-implement-altman",
4378
+ "<%= config.bin %> <%= command.id %> --current-terminal"
4380
4379
  ],
4381
4380
  "flags": {
4382
4381
  "project": {
@@ -4387,15 +4386,165 @@
4387
4386
  "multiple": false,
4388
4387
  "type": "option"
4389
4388
  },
4390
- "action": {
4391
- "char": "a",
4392
- "description": "Action for local paths",
4393
- "name": "action",
4394
- "default": "clone",
4395
- "hasDynamicHelp": false,
4396
- "multiple": false,
4397
- "options": [
4398
- "clone",
4389
+ "json": {
4390
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4391
+ "name": "json",
4392
+ "allowNo": false,
4393
+ "type": "boolean"
4394
+ },
4395
+ "new-tab": {
4396
+ "char": "n",
4397
+ "description": "Open in a new terminal tab (default: true)",
4398
+ "name": "new-tab",
4399
+ "allowNo": false,
4400
+ "type": "boolean"
4401
+ },
4402
+ "current-terminal": {
4403
+ "char": "c",
4404
+ "description": "Attach in current terminal instead of new tab",
4405
+ "name": "current-terminal",
4406
+ "allowNo": false,
4407
+ "type": "boolean"
4408
+ },
4409
+ "terminal": {
4410
+ "char": "t",
4411
+ "description": "Terminal app to use (iTerm, Terminal, Ghostty)",
4412
+ "name": "terminal",
4413
+ "default": "iTerm",
4414
+ "hasDynamicHelp": false,
4415
+ "multiple": false,
4416
+ "type": "option"
4417
+ }
4418
+ },
4419
+ "hasDynamicHelp": false,
4420
+ "hiddenAliases": [],
4421
+ "id": "session:attach",
4422
+ "pluginAlias": "@proletariat/cli",
4423
+ "pluginName": "@proletariat/cli",
4424
+ "pluginType": "core",
4425
+ "strict": true,
4426
+ "isESM": true,
4427
+ "relativePath": [
4428
+ "dist",
4429
+ "commands",
4430
+ "session",
4431
+ "attach.js"
4432
+ ]
4433
+ },
4434
+ "session": {
4435
+ "aliases": [],
4436
+ "args": {},
4437
+ "description": "Manage agent tmux sessions (list, attach, detach)",
4438
+ "examples": [
4439
+ "<%= config.bin %> <%= command.id %>",
4440
+ "<%= config.bin %> <%= command.id %> list",
4441
+ "<%= config.bin %> <%= command.id %> attach TKT-347-implement"
4442
+ ],
4443
+ "flags": {
4444
+ "project": {
4445
+ "char": "P",
4446
+ "description": "Project ID (uses first project if only one exists)",
4447
+ "name": "project",
4448
+ "hasDynamicHelp": false,
4449
+ "multiple": false,
4450
+ "type": "option"
4451
+ },
4452
+ "json": {
4453
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4454
+ "name": "json",
4455
+ "allowNo": false,
4456
+ "type": "boolean"
4457
+ }
4458
+ },
4459
+ "hasDynamicHelp": false,
4460
+ "hiddenAliases": [],
4461
+ "id": "session",
4462
+ "pluginAlias": "@proletariat/cli",
4463
+ "pluginName": "@proletariat/cli",
4464
+ "pluginType": "core",
4465
+ "strict": true,
4466
+ "isESM": true,
4467
+ "relativePath": [
4468
+ "dist",
4469
+ "commands",
4470
+ "session",
4471
+ "index.js"
4472
+ ]
4473
+ },
4474
+ "session:list": {
4475
+ "aliases": [],
4476
+ "args": {},
4477
+ "description": "List active tmux sessions (host and container)",
4478
+ "examples": [
4479
+ "<%= config.bin %> <%= command.id %>",
4480
+ "<%= config.bin %> <%= command.id %> --all"
4481
+ ],
4482
+ "flags": {
4483
+ "project": {
4484
+ "char": "P",
4485
+ "description": "Project ID (uses first project if only one exists)",
4486
+ "name": "project",
4487
+ "hasDynamicHelp": false,
4488
+ "multiple": false,
4489
+ "type": "option"
4490
+ },
4491
+ "all": {
4492
+ "char": "a",
4493
+ "description": "Show all sessions including stale DB records",
4494
+ "name": "all",
4495
+ "allowNo": false,
4496
+ "type": "boolean"
4497
+ }
4498
+ },
4499
+ "hasDynamicHelp": false,
4500
+ "hiddenAliases": [],
4501
+ "id": "session:list",
4502
+ "pluginAlias": "@proletariat/cli",
4503
+ "pluginName": "@proletariat/cli",
4504
+ "pluginType": "core",
4505
+ "strict": true,
4506
+ "isESM": true,
4507
+ "relativePath": [
4508
+ "dist",
4509
+ "commands",
4510
+ "session",
4511
+ "list.js"
4512
+ ]
4513
+ },
4514
+ "repo:add": {
4515
+ "aliases": [],
4516
+ "args": {
4517
+ "path": {
4518
+ "description": "Repository path or Git URL",
4519
+ "name": "path",
4520
+ "required": false
4521
+ }
4522
+ },
4523
+ "description": "Add a repository to the HQ",
4524
+ "examples": [
4525
+ "<%= config.bin %> <%= command.id %> /path/to/repo",
4526
+ "<%= config.bin %> <%= command.id %> git@github.com:user/repo.git",
4527
+ "<%= config.bin %> <%= command.id %>",
4528
+ "<%= config.bin %> <%= command.id %> --bulk"
4529
+ ],
4530
+ "flags": {
4531
+ "project": {
4532
+ "char": "P",
4533
+ "description": "Project ID (uses first project if only one exists)",
4534
+ "name": "project",
4535
+ "hasDynamicHelp": false,
4536
+ "multiple": false,
4537
+ "type": "option"
4538
+ },
4539
+ "action": {
4540
+ "char": "a",
4541
+ "description": "Action for local paths",
4542
+ "name": "action",
4543
+ "default": "clone",
4544
+ "hasDynamicHelp": false,
4545
+ "multiple": false,
4546
+ "options": [
4547
+ "clone",
4399
4548
  "move"
4400
4549
  ],
4401
4550
  "type": "option"
@@ -4618,25 +4767,15 @@
4618
4767
  "view.js"
4619
4768
  ]
4620
4769
  },
4621
- "roadmap:add-project": {
4770
+ "template:delete": {
4622
4771
  "aliases": [],
4623
- "args": {
4624
- "roadmap": {
4625
- "description": "Roadmap ID",
4626
- "name": "roadmap",
4627
- "required": false
4628
- },
4629
- "project": {
4630
- "description": "Project ID to add",
4631
- "name": "project",
4632
- "required": false
4633
- }
4634
- },
4635
- "description": "Add a project to a roadmap",
4772
+ "args": {},
4773
+ "description": "Delete templates (ticket or phase)",
4636
4774
  "examples": [
4637
- "<%= config.bin %> <%= command.id %> my-roadmap my-project",
4638
- "<%= config.bin %> <%= command.id %> my-roadmap # Interactive project selection",
4639
- "<%= config.bin %> <%= command.id %> # Interactive selection for both"
4775
+ "<%= config.bin %> <%= command.id %>",
4776
+ "<%= config.bin %> <%= command.id %> --type ticket",
4777
+ "<%= config.bin %> <%= command.id %> --type phase",
4778
+ "<%= config.bin %> <%= command.id %> --force"
4640
4779
  ],
4641
4780
  "flags": {
4642
4781
  "project": {
@@ -4647,14 +4786,25 @@
4647
4786
  "multiple": false,
4648
4787
  "type": "option"
4649
4788
  },
4650
- "position": {
4651
- "char": "p",
4652
- "description": "Position in the roadmap (0-indexed)",
4653
- "name": "position",
4789
+ "type": {
4790
+ "char": "t",
4791
+ "description": "Template type to delete",
4792
+ "name": "type",
4654
4793
  "hasDynamicHelp": false,
4655
4794
  "multiple": false,
4795
+ "options": [
4796
+ "ticket",
4797
+ "phase"
4798
+ ],
4656
4799
  "type": "option"
4657
4800
  },
4801
+ "force": {
4802
+ "char": "f",
4803
+ "description": "Skip confirmation",
4804
+ "name": "force",
4805
+ "allowNo": false,
4806
+ "type": "boolean"
4807
+ },
4658
4808
  "json": {
4659
4809
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4660
4810
  "name": "json",
@@ -4664,7 +4814,7 @@
4664
4814
  },
4665
4815
  "hasDynamicHelp": false,
4666
4816
  "hiddenAliases": [],
4667
- "id": "roadmap:add-project",
4817
+ "id": "template:delete",
4668
4818
  "pluginAlias": "@proletariat/cli",
4669
4819
  "pluginName": "@proletariat/cli",
4670
4820
  "pluginType": "core",
@@ -4673,50 +4823,218 @@
4673
4823
  "relativePath": [
4674
4824
  "dist",
4675
4825
  "commands",
4676
- "roadmap",
4677
- "add-project.js"
4826
+ "template",
4827
+ "delete.js"
4678
4828
  ]
4679
4829
  },
4680
- "roadmap:create": {
4681
- "aliases": [],
4682
- "args": {
4683
- "name": {
4684
- "description": "Roadmap name",
4685
- "name": "name",
4686
- "required": false
4687
- }
4688
- },
4689
- "description": "Create a new roadmap",
4830
+ "template": {
4831
+ "aliases": [
4832
+ "templates"
4833
+ ],
4834
+ "args": {},
4835
+ "description": "Manage templates (ticket and phase)",
4690
4836
  "examples": [
4691
- "<%= config.bin %> <%= command.id %> \"Public Roadmap\"",
4692
- "<%= config.bin %> <%= command.id %> --name \"Internal Roadmap\" --description \"Full project list\"",
4693
- "<%= config.bin %> <%= command.id %> -i # Interactive mode"
4837
+ "<%= config.bin %> <%= command.id %>",
4838
+ "<%= config.bin %> <%= command.id %> list",
4839
+ "<%= config.bin %> <%= command.id %> list --type ticket",
4840
+ "<%= config.bin %> <%= command.id %> ticket",
4841
+ "<%= config.bin %> <%= command.id %> phase"
4694
4842
  ],
4695
4843
  "flags": {
4696
- "project": {
4697
- "char": "P",
4698
- "description": "Project ID (uses first project if only one exists)",
4699
- "name": "project",
4700
- "hasDynamicHelp": false,
4701
- "multiple": false,
4702
- "type": "option"
4703
- },
4704
- "name": {
4705
- "char": "n",
4706
- "description": "Roadmap name",
4707
- "name": "name",
4708
- "hasDynamicHelp": false,
4709
- "multiple": false,
4710
- "type": "option"
4711
- },
4712
- "id": {
4713
- "description": "Custom roadmap ID (auto-generated from name if not provided)",
4714
- "name": "id",
4715
- "hasDynamicHelp": false,
4716
- "multiple": false,
4717
- "type": "option"
4718
- },
4719
- "description": {
4844
+ "json": {
4845
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4846
+ "name": "json",
4847
+ "allowNo": false,
4848
+ "type": "boolean"
4849
+ }
4850
+ },
4851
+ "hasDynamicHelp": false,
4852
+ "hiddenAliases": [],
4853
+ "id": "template",
4854
+ "pluginAlias": "@proletariat/cli",
4855
+ "pluginName": "@proletariat/cli",
4856
+ "pluginType": "core",
4857
+ "strict": true,
4858
+ "enableJsonFlag": false,
4859
+ "isESM": true,
4860
+ "relativePath": [
4861
+ "dist",
4862
+ "commands",
4863
+ "template",
4864
+ "index.js"
4865
+ ]
4866
+ },
4867
+ "template:list": {
4868
+ "aliases": [],
4869
+ "args": {},
4870
+ "description": "List all templates (ticket and phase)",
4871
+ "examples": [
4872
+ "<%= config.bin %> <%= command.id %>",
4873
+ "<%= config.bin %> <%= command.id %> --type ticket",
4874
+ "<%= config.bin %> <%= command.id %> --type phase",
4875
+ "<%= config.bin %> <%= command.id %> --builtin",
4876
+ "<%= config.bin %> <%= command.id %> --json"
4877
+ ],
4878
+ "flags": {
4879
+ "project": {
4880
+ "char": "P",
4881
+ "description": "Project ID (uses first project if only one exists)",
4882
+ "name": "project",
4883
+ "hasDynamicHelp": false,
4884
+ "multiple": false,
4885
+ "type": "option"
4886
+ },
4887
+ "type": {
4888
+ "char": "t",
4889
+ "description": "Filter by template type",
4890
+ "name": "type",
4891
+ "hasDynamicHelp": false,
4892
+ "multiple": false,
4893
+ "options": [
4894
+ "ticket",
4895
+ "phase"
4896
+ ],
4897
+ "type": "option"
4898
+ },
4899
+ "builtin": {
4900
+ "description": "Show only built-in templates",
4901
+ "exclusive": [
4902
+ "custom"
4903
+ ],
4904
+ "name": "builtin",
4905
+ "allowNo": false,
4906
+ "type": "boolean"
4907
+ },
4908
+ "custom": {
4909
+ "description": "Show only custom templates",
4910
+ "exclusive": [
4911
+ "builtin"
4912
+ ],
4913
+ "name": "custom",
4914
+ "allowNo": false,
4915
+ "type": "boolean"
4916
+ },
4917
+ "json": {
4918
+ "description": "Output as JSON",
4919
+ "name": "json",
4920
+ "allowNo": false,
4921
+ "type": "boolean"
4922
+ }
4923
+ },
4924
+ "hasDynamicHelp": false,
4925
+ "hiddenAliases": [],
4926
+ "id": "template:list",
4927
+ "pluginAlias": "@proletariat/cli",
4928
+ "pluginName": "@proletariat/cli",
4929
+ "pluginType": "core",
4930
+ "strict": true,
4931
+ "isESM": true,
4932
+ "relativePath": [
4933
+ "dist",
4934
+ "commands",
4935
+ "template",
4936
+ "list.js"
4937
+ ]
4938
+ },
4939
+ "roadmap:add-project": {
4940
+ "aliases": [],
4941
+ "args": {
4942
+ "roadmap": {
4943
+ "description": "Roadmap ID",
4944
+ "name": "roadmap",
4945
+ "required": false
4946
+ },
4947
+ "project": {
4948
+ "description": "Project ID to add",
4949
+ "name": "project",
4950
+ "required": false
4951
+ }
4952
+ },
4953
+ "description": "Add a project to a roadmap",
4954
+ "examples": [
4955
+ "<%= config.bin %> <%= command.id %> my-roadmap my-project",
4956
+ "<%= config.bin %> <%= command.id %> my-roadmap # Interactive project selection",
4957
+ "<%= config.bin %> <%= command.id %> # Interactive selection for both"
4958
+ ],
4959
+ "flags": {
4960
+ "project": {
4961
+ "char": "P",
4962
+ "description": "Project ID (uses first project if only one exists)",
4963
+ "name": "project",
4964
+ "hasDynamicHelp": false,
4965
+ "multiple": false,
4966
+ "type": "option"
4967
+ },
4968
+ "position": {
4969
+ "char": "p",
4970
+ "description": "Position in the roadmap (0-indexed)",
4971
+ "name": "position",
4972
+ "hasDynamicHelp": false,
4973
+ "multiple": false,
4974
+ "type": "option"
4975
+ },
4976
+ "json": {
4977
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4978
+ "name": "json",
4979
+ "allowNo": false,
4980
+ "type": "boolean"
4981
+ }
4982
+ },
4983
+ "hasDynamicHelp": false,
4984
+ "hiddenAliases": [],
4985
+ "id": "roadmap:add-project",
4986
+ "pluginAlias": "@proletariat/cli",
4987
+ "pluginName": "@proletariat/cli",
4988
+ "pluginType": "core",
4989
+ "strict": true,
4990
+ "isESM": true,
4991
+ "relativePath": [
4992
+ "dist",
4993
+ "commands",
4994
+ "roadmap",
4995
+ "add-project.js"
4996
+ ]
4997
+ },
4998
+ "roadmap:create": {
4999
+ "aliases": [],
5000
+ "args": {
5001
+ "name": {
5002
+ "description": "Roadmap name",
5003
+ "name": "name",
5004
+ "required": false
5005
+ }
5006
+ },
5007
+ "description": "Create a new roadmap",
5008
+ "examples": [
5009
+ "<%= config.bin %> <%= command.id %> \"Public Roadmap\"",
5010
+ "<%= config.bin %> <%= command.id %> --name \"Internal Roadmap\" --description \"Full project list\"",
5011
+ "<%= config.bin %> <%= command.id %> -i # Interactive mode"
5012
+ ],
5013
+ "flags": {
5014
+ "project": {
5015
+ "char": "P",
5016
+ "description": "Project ID (uses first project if only one exists)",
5017
+ "name": "project",
5018
+ "hasDynamicHelp": false,
5019
+ "multiple": false,
5020
+ "type": "option"
5021
+ },
5022
+ "name": {
5023
+ "char": "n",
5024
+ "description": "Roadmap name",
5025
+ "name": "name",
5026
+ "hasDynamicHelp": false,
5027
+ "multiple": false,
5028
+ "type": "option"
5029
+ },
5030
+ "id": {
5031
+ "description": "Custom roadmap ID (auto-generated from name if not provided)",
5032
+ "name": "id",
5033
+ "hasDynamicHelp": false,
5034
+ "multiple": false,
5035
+ "type": "option"
5036
+ },
5037
+ "description": {
4720
5038
  "char": "d",
4721
5039
  "description": "Roadmap description",
4722
5040
  "name": "description",
@@ -5166,20 +5484,20 @@
5166
5484
  "view.js"
5167
5485
  ]
5168
5486
  },
5169
- "session:attach": {
5487
+ "status:create": {
5170
5488
  "aliases": [],
5171
5489
  "args": {
5172
- "session": {
5173
- "description": "Session name or ticket ID to attach to (optional - will prompt if not provided)",
5174
- "name": "session",
5490
+ "name": {
5491
+ "description": "Status name",
5492
+ "name": "name",
5175
5493
  "required": false
5176
5494
  }
5177
5495
  },
5178
- "description": "Attach to an active tmux session",
5496
+ "description": "Create a new workflow status",
5179
5497
  "examples": [
5180
- "<%= config.bin %> <%= command.id %>",
5181
- "<%= config.bin %> <%= command.id %> TKT-347-implement-altman",
5182
- "<%= config.bin %> <%= command.id %> --current-terminal"
5498
+ "<%= config.bin %> <%= command.id %> \"In Review\" --category started",
5499
+ "<%= config.bin %> <%= command.id %> --name \"Blocked\" --category started --color \"#EF4444\"",
5500
+ "<%= config.bin %> <%= command.id %> -i # Interactive mode"
5183
5501
  ],
5184
5502
  "flags": {
5185
5503
  "project": {
@@ -5190,181 +5508,32 @@
5190
5508
  "multiple": false,
5191
5509
  "type": "option"
5192
5510
  },
5193
- "json": {
5194
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5195
- "name": "json",
5196
- "allowNo": false,
5197
- "type": "boolean"
5198
- },
5199
- "new-tab": {
5511
+ "name": {
5200
5512
  "char": "n",
5201
- "description": "Open in a new terminal tab (default: true)",
5202
- "name": "new-tab",
5203
- "allowNo": false,
5204
- "type": "boolean"
5513
+ "description": "Status name",
5514
+ "name": "name",
5515
+ "hasDynamicHelp": false,
5516
+ "multiple": false,
5517
+ "type": "option"
5205
5518
  },
5206
- "current-terminal": {
5519
+ "category": {
5207
5520
  "char": "c",
5208
- "description": "Attach in current terminal instead of new tab",
5209
- "name": "current-terminal",
5210
- "allowNo": false,
5211
- "type": "boolean"
5521
+ "description": "Status category",
5522
+ "name": "category",
5523
+ "hasDynamicHelp": false,
5524
+ "multiple": false,
5525
+ "options": [
5526
+ "backlog",
5527
+ "unstarted",
5528
+ "started",
5529
+ "completed",
5530
+ "canceled"
5531
+ ],
5532
+ "type": "option"
5212
5533
  },
5213
- "terminal": {
5214
- "char": "t",
5215
- "description": "Terminal app to use (iTerm, Terminal, Ghostty)",
5216
- "name": "terminal",
5217
- "default": "iTerm",
5218
- "hasDynamicHelp": false,
5219
- "multiple": false,
5220
- "type": "option"
5221
- }
5222
- },
5223
- "hasDynamicHelp": false,
5224
- "hiddenAliases": [],
5225
- "id": "session:attach",
5226
- "pluginAlias": "@proletariat/cli",
5227
- "pluginName": "@proletariat/cli",
5228
- "pluginType": "core",
5229
- "strict": true,
5230
- "isESM": true,
5231
- "relativePath": [
5232
- "dist",
5233
- "commands",
5234
- "session",
5235
- "attach.js"
5236
- ]
5237
- },
5238
- "session": {
5239
- "aliases": [],
5240
- "args": {},
5241
- "description": "Manage agent tmux sessions (list, attach, detach)",
5242
- "examples": [
5243
- "<%= config.bin %> <%= command.id %>",
5244
- "<%= config.bin %> <%= command.id %> list",
5245
- "<%= config.bin %> <%= command.id %> attach TKT-347-implement"
5246
- ],
5247
- "flags": {
5248
- "project": {
5249
- "char": "P",
5250
- "description": "Project ID (uses first project if only one exists)",
5251
- "name": "project",
5252
- "hasDynamicHelp": false,
5253
- "multiple": false,
5254
- "type": "option"
5255
- },
5256
- "json": {
5257
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5258
- "name": "json",
5259
- "allowNo": false,
5260
- "type": "boolean"
5261
- }
5262
- },
5263
- "hasDynamicHelp": false,
5264
- "hiddenAliases": [],
5265
- "id": "session",
5266
- "pluginAlias": "@proletariat/cli",
5267
- "pluginName": "@proletariat/cli",
5268
- "pluginType": "core",
5269
- "strict": true,
5270
- "isESM": true,
5271
- "relativePath": [
5272
- "dist",
5273
- "commands",
5274
- "session",
5275
- "index.js"
5276
- ]
5277
- },
5278
- "session:list": {
5279
- "aliases": [],
5280
- "args": {},
5281
- "description": "List active tmux sessions (host and container)",
5282
- "examples": [
5283
- "<%= config.bin %> <%= command.id %>",
5284
- "<%= config.bin %> <%= command.id %> --all"
5285
- ],
5286
- "flags": {
5287
- "project": {
5288
- "char": "P",
5289
- "description": "Project ID (uses first project if only one exists)",
5290
- "name": "project",
5291
- "hasDynamicHelp": false,
5292
- "multiple": false,
5293
- "type": "option"
5294
- },
5295
- "all": {
5296
- "char": "a",
5297
- "description": "Show all sessions including stale DB records",
5298
- "name": "all",
5299
- "allowNo": false,
5300
- "type": "boolean"
5301
- }
5302
- },
5303
- "hasDynamicHelp": false,
5304
- "hiddenAliases": [],
5305
- "id": "session:list",
5306
- "pluginAlias": "@proletariat/cli",
5307
- "pluginName": "@proletariat/cli",
5308
- "pluginType": "core",
5309
- "strict": true,
5310
- "isESM": true,
5311
- "relativePath": [
5312
- "dist",
5313
- "commands",
5314
- "session",
5315
- "list.js"
5316
- ]
5317
- },
5318
- "status:create": {
5319
- "aliases": [],
5320
- "args": {
5321
- "name": {
5322
- "description": "Status name",
5323
- "name": "name",
5324
- "required": false
5325
- }
5326
- },
5327
- "description": "Create a new workflow status",
5328
- "examples": [
5329
- "<%= config.bin %> <%= command.id %> \"In Review\" --category started",
5330
- "<%= config.bin %> <%= command.id %> --name \"Blocked\" --category started --color \"#EF4444\"",
5331
- "<%= config.bin %> <%= command.id %> -i # Interactive mode"
5332
- ],
5333
- "flags": {
5334
- "project": {
5335
- "char": "P",
5336
- "description": "Project ID (uses first project if only one exists)",
5337
- "name": "project",
5338
- "hasDynamicHelp": false,
5339
- "multiple": false,
5340
- "type": "option"
5341
- },
5342
- "name": {
5343
- "char": "n",
5344
- "description": "Status name",
5345
- "name": "name",
5346
- "hasDynamicHelp": false,
5347
- "multiple": false,
5348
- "type": "option"
5349
- },
5350
- "category": {
5351
- "char": "c",
5352
- "description": "Status category",
5353
- "name": "category",
5354
- "hasDynamicHelp": false,
5355
- "multiple": false,
5356
- "options": [
5357
- "backlog",
5358
- "unstarted",
5359
- "started",
5360
- "completed",
5361
- "canceled"
5362
- ],
5363
- "type": "option"
5364
- },
5365
- "color": {
5366
- "description": "Hex color code (e.g., #FF0000)",
5367
- "name": "color",
5534
+ "color": {
5535
+ "description": "Hex color code (e.g., #FF0000)",
5536
+ "name": "color",
5368
5537
  "hasDynamicHelp": false,
5369
5538
  "multiple": false,
5370
5539
  "type": "option"
@@ -6090,90 +6259,74 @@
6090
6259
  "view.js"
6091
6260
  ]
6092
6261
  },
6093
- "template:delete": {
6262
+ "terminal:title": {
6094
6263
  "aliases": [],
6095
- "args": {},
6096
- "description": "Delete templates (ticket or phase)",
6264
+ "args": {
6265
+ "title": {
6266
+ "description": "Title to set for the terminal tab/window",
6267
+ "name": "title",
6268
+ "required": false
6269
+ }
6270
+ },
6271
+ "description": "Set the terminal tab/window title",
6097
6272
  "examples": [
6098
- "<%= config.bin %> <%= command.id %>",
6099
- "<%= config.bin %> <%= command.id %> --type ticket",
6100
- "<%= config.bin %> <%= command.id %> --type phase",
6101
- "<%= config.bin %> <%= command.id %> --force"
6273
+ "<%= config.bin %> <%= command.id %> \"My Custom Name\"",
6274
+ "<%= config.bin %> <%= command.id %> # Interactive prompt",
6275
+ "<%= config.bin %> <%= command.id %> --reset"
6102
6276
  ],
6103
6277
  "flags": {
6104
- "project": {
6105
- "char": "P",
6106
- "description": "Project ID (uses first project if only one exists)",
6107
- "name": "project",
6108
- "hasDynamicHelp": false,
6109
- "multiple": false,
6110
- "type": "option"
6111
- },
6112
- "type": {
6113
- "char": "t",
6114
- "description": "Template type to delete",
6115
- "name": "type",
6116
- "hasDynamicHelp": false,
6117
- "multiple": false,
6118
- "options": [
6119
- "ticket",
6120
- "phase"
6121
- ],
6122
- "type": "option"
6123
- },
6124
- "force": {
6125
- "char": "f",
6126
- "description": "Skip confirmation",
6127
- "name": "force",
6128
- "allowNo": false,
6129
- "type": "boolean"
6130
- },
6131
- "json": {
6132
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6133
- "name": "json",
6278
+ "reset": {
6279
+ "char": "r",
6280
+ "description": "Reset terminal title to default",
6281
+ "name": "reset",
6134
6282
  "allowNo": false,
6135
6283
  "type": "boolean"
6136
6284
  }
6137
6285
  },
6138
6286
  "hasDynamicHelp": false,
6139
6287
  "hiddenAliases": [],
6140
- "id": "template:delete",
6288
+ "id": "terminal:title",
6141
6289
  "pluginAlias": "@proletariat/cli",
6142
6290
  "pluginName": "@proletariat/cli",
6143
6291
  "pluginType": "core",
6144
6292
  "strict": true,
6293
+ "enableJsonFlag": false,
6145
6294
  "isESM": true,
6146
6295
  "relativePath": [
6147
6296
  "dist",
6148
6297
  "commands",
6149
- "template",
6150
- "delete.js"
6298
+ "terminal",
6299
+ "title.js"
6151
6300
  ]
6152
6301
  },
6153
- "template": {
6154
- "aliases": [
6155
- "templates"
6156
- ],
6157
- "args": {},
6158
- "description": "Manage templates (ticket and phase)",
6302
+ "workspace:add": {
6303
+ "aliases": [],
6304
+ "args": {
6305
+ "path": {
6306
+ "description": "Path to the workspace to register",
6307
+ "name": "path",
6308
+ "required": true
6309
+ }
6310
+ },
6311
+ "description": "Register an existing workspace in the machine config",
6159
6312
  "examples": [
6160
- "<%= config.bin %> <%= command.id %>",
6161
- "<%= config.bin %> <%= command.id %> list",
6162
- "<%= config.bin %> <%= command.id %> list --type ticket",
6163
- "<%= config.bin %> <%= command.id %> ticket",
6164
- "<%= config.bin %> <%= command.id %> phase"
6313
+ "<%= config.bin %> <%= command.id %> /path/to/workspace",
6314
+ "<%= config.bin %> <%= command.id %> . --name my-workspace",
6315
+ "<%= config.bin %> <%= command.id %> ~/projects/my-hq"
6165
6316
  ],
6166
6317
  "flags": {
6167
- "json": {
6168
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6169
- "name": "json",
6170
- "allowNo": false,
6171
- "type": "boolean"
6318
+ "name": {
6319
+ "char": "n",
6320
+ "description": "Custom name for the workspace (defaults to directory basename or workspace config name)",
6321
+ "name": "name",
6322
+ "hasDynamicHelp": false,
6323
+ "multiple": false,
6324
+ "type": "option"
6172
6325
  }
6173
6326
  },
6174
6327
  "hasDynamicHelp": false,
6175
6328
  "hiddenAliases": [],
6176
- "id": "template",
6329
+ "id": "workspace:add",
6177
6330
  "pluginAlias": "@proletariat/cli",
6178
6331
  "pluginName": "@proletariat/cli",
6179
6332
  "pluginType": "core",
@@ -6183,62 +6336,59 @@
6183
6336
  "relativePath": [
6184
6337
  "dist",
6185
6338
  "commands",
6186
- "template",
6187
- "index.js"
6339
+ "workspace",
6340
+ "add.js"
6188
6341
  ]
6189
6342
  },
6190
- "template:list": {
6343
+ "workspace:list": {
6191
6344
  "aliases": [],
6192
6345
  "args": {},
6193
- "description": "List all templates (ticket and phase)",
6346
+ "description": "List all registered and discovered HQ workspaces",
6194
6347
  "examples": [
6195
6348
  "<%= config.bin %> <%= command.id %>",
6196
- "<%= config.bin %> <%= command.id %> --type ticket",
6197
- "<%= config.bin %> <%= command.id %> --type phase",
6198
- "<%= config.bin %> <%= command.id %> --builtin",
6199
6349
  "<%= config.bin %> <%= command.id %> --json"
6200
6350
  ],
6201
6351
  "flags": {
6202
- "project": {
6203
- "char": "P",
6204
- "description": "Project ID (uses first project if only one exists)",
6205
- "name": "project",
6206
- "hasDynamicHelp": false,
6207
- "multiple": false,
6208
- "type": "option"
6209
- },
6210
- "type": {
6211
- "char": "t",
6212
- "description": "Filter by template type",
6213
- "name": "type",
6214
- "hasDynamicHelp": false,
6215
- "multiple": false,
6216
- "options": [
6217
- "ticket",
6218
- "phase"
6219
- ],
6220
- "type": "option"
6221
- },
6222
- "builtin": {
6223
- "description": "Show only built-in templates",
6224
- "exclusive": [
6225
- "custom"
6226
- ],
6227
- "name": "builtin",
6228
- "allowNo": false,
6229
- "type": "boolean"
6230
- },
6231
- "custom": {
6232
- "description": "Show only custom templates",
6233
- "exclusive": [
6234
- "builtin"
6235
- ],
6236
- "name": "custom",
6352
+ "json": {
6353
+ "description": "Output as JSON for machine-readable format",
6354
+ "name": "json",
6237
6355
  "allowNo": false,
6238
6356
  "type": "boolean"
6239
- },
6357
+ }
6358
+ },
6359
+ "hasDynamicHelp": false,
6360
+ "hiddenAliases": [],
6361
+ "id": "workspace:list",
6362
+ "pluginAlias": "@proletariat/cli",
6363
+ "pluginName": "@proletariat/cli",
6364
+ "pluginType": "core",
6365
+ "strict": true,
6366
+ "enableJsonFlag": false,
6367
+ "isESM": true,
6368
+ "relativePath": [
6369
+ "dist",
6370
+ "commands",
6371
+ "workspace",
6372
+ "list.js"
6373
+ ]
6374
+ },
6375
+ "workspace:remove": {
6376
+ "aliases": [],
6377
+ "args": {
6378
+ "nameOrPath": {
6379
+ "description": "Workspace name or path to unregister",
6380
+ "name": "nameOrPath",
6381
+ "required": true
6382
+ }
6383
+ },
6384
+ "description": "Unregister a workspace from the machine config (does NOT delete files)",
6385
+ "examples": [
6386
+ "<%= config.bin %> <%= command.id %> my-workspace",
6387
+ "<%= config.bin %> <%= command.id %> /path/to/workspace"
6388
+ ],
6389
+ "flags": {
6240
6390
  "json": {
6241
- "description": "Output as JSON",
6391
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6242
6392
  "name": "json",
6243
6393
  "allowNo": false,
6244
6394
  "type": "boolean"
@@ -6246,46 +6396,45 @@
6246
6396
  },
6247
6397
  "hasDynamicHelp": false,
6248
6398
  "hiddenAliases": [],
6249
- "id": "template:list",
6399
+ "id": "workspace:remove",
6250
6400
  "pluginAlias": "@proletariat/cli",
6251
6401
  "pluginName": "@proletariat/cli",
6252
6402
  "pluginType": "core",
6253
6403
  "strict": true,
6404
+ "enableJsonFlag": false,
6254
6405
  "isESM": true,
6255
6406
  "relativePath": [
6256
6407
  "dist",
6257
6408
  "commands",
6258
- "template",
6259
- "list.js"
6409
+ "workspace",
6410
+ "remove.js"
6260
6411
  ]
6261
6412
  },
6262
- "terminal:title": {
6413
+ "workspace:use": {
6263
6414
  "aliases": [],
6264
6415
  "args": {
6265
- "title": {
6266
- "description": "Title to set for the terminal tab/window",
6267
- "name": "title",
6268
- "required": false
6416
+ "nameOrPath": {
6417
+ "description": "Workspace name or path",
6418
+ "name": "nameOrPath",
6419
+ "required": true
6269
6420
  }
6270
6421
  },
6271
- "description": "Set the terminal tab/window title",
6422
+ "description": "Set the active workspace",
6272
6423
  "examples": [
6273
- "<%= config.bin %> <%= command.id %> \"My Custom Name\"",
6274
- "<%= config.bin %> <%= command.id %> # Interactive prompt",
6275
- "<%= config.bin %> <%= command.id %> --reset"
6424
+ "<%= config.bin %> <%= command.id %> my-workspace",
6425
+ "<%= config.bin %> <%= command.id %> /path/to/workspace"
6276
6426
  ],
6277
6427
  "flags": {
6278
- "reset": {
6279
- "char": "r",
6280
- "description": "Reset terminal title to default",
6281
- "name": "reset",
6428
+ "json": {
6429
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6430
+ "name": "json",
6282
6431
  "allowNo": false,
6283
6432
  "type": "boolean"
6284
6433
  }
6285
6434
  },
6286
6435
  "hasDynamicHelp": false,
6287
6436
  "hiddenAliases": [],
6288
- "id": "terminal:title",
6437
+ "id": "workspace:use",
6289
6438
  "pluginAlias": "@proletariat/cli",
6290
6439
  "pluginName": "@proletariat/cli",
6291
6440
  "pluginType": "core",
@@ -6295,23 +6444,24 @@
6295
6444
  "relativePath": [
6296
6445
  "dist",
6297
6446
  "commands",
6298
- "terminal",
6299
- "title.js"
6447
+ "workspace",
6448
+ "use.js"
6300
6449
  ]
6301
6450
  },
6302
- "work:complete": {
6451
+ "workflow:create": {
6303
6452
  "aliases": [],
6304
6453
  "args": {
6305
- "ticketId": {
6306
- "description": "Ticket ID - prompts with dropdown if not provided",
6307
- "name": "ticketId",
6454
+ "name": {
6455
+ "description": "Workflow name",
6456
+ "name": "name",
6308
6457
  "required": false
6309
6458
  }
6310
6459
  },
6311
- "description": "Mark work as complete (moves ticket to Done column)",
6460
+ "description": "Create a new custom workflow",
6312
6461
  "examples": [
6313
- "<%= config.bin %> <%= command.id %>",
6314
- "<%= config.bin %> <%= command.id %> TKT-001"
6462
+ "<%= config.bin %> <%= command.id %> \"My Workflow\"",
6463
+ "<%= config.bin %> <%= command.id %> \"Sprint Board\" --description \"Agile sprint workflow\"",
6464
+ "<%= config.bin %> <%= command.id %> \"Simple\" --statuses \"Todo,In Progress,Done\""
6315
6465
  ],
6316
6466
  "flags": {
6317
6467
  "project": {
@@ -6322,6 +6472,22 @@
6322
6472
  "multiple": false,
6323
6473
  "type": "option"
6324
6474
  },
6475
+ "description": {
6476
+ "char": "d",
6477
+ "description": "Workflow description",
6478
+ "name": "description",
6479
+ "hasDynamicHelp": false,
6480
+ "multiple": false,
6481
+ "type": "option"
6482
+ },
6483
+ "statuses": {
6484
+ "char": "s",
6485
+ "description": "Comma-separated list of status names (uses default categories)",
6486
+ "name": "statuses",
6487
+ "hasDynamicHelp": false,
6488
+ "multiple": false,
6489
+ "type": "option"
6490
+ },
6325
6491
  "json": {
6326
6492
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6327
6493
  "name": "json",
@@ -6331,7 +6497,7 @@
6331
6497
  },
6332
6498
  "hasDynamicHelp": false,
6333
6499
  "hiddenAliases": [],
6334
- "id": "work:complete",
6500
+ "id": "workflow:create",
6335
6501
  "pluginAlias": "@proletariat/cli",
6336
6502
  "pluginName": "@proletariat/cli",
6337
6503
  "pluginType": "core",
@@ -6340,16 +6506,24 @@
6340
6506
  "relativePath": [
6341
6507
  "dist",
6342
6508
  "commands",
6343
- "work",
6344
- "complete.js"
6509
+ "workflow",
6510
+ "create.js"
6345
6511
  ]
6346
6512
  },
6347
- "work": {
6513
+ "workflow:delete": {
6348
6514
  "aliases": [],
6349
- "args": {},
6350
- "description": "Interactive menu for work operations (ownership, assignment, execution)",
6515
+ "args": {
6516
+ "id": {
6517
+ "description": "Workflow ID to delete - prompts with dropdown if not provided",
6518
+ "name": "id",
6519
+ "required": false
6520
+ }
6521
+ },
6522
+ "description": "Delete a custom workflow",
6351
6523
  "examples": [
6352
- "<%= config.bin %> <%= command.id %>"
6524
+ "<%= config.bin %> <%= command.id %> my-workflow",
6525
+ "<%= config.bin %> <%= command.id %> my-workflow --force # Skip confirmation",
6526
+ "<%= config.bin %> <%= command.id %> # Interactive selection"
6353
6527
  ],
6354
6528
  "flags": {
6355
6529
  "project": {
@@ -6360,6 +6534,13 @@
6360
6534
  "multiple": false,
6361
6535
  "type": "option"
6362
6536
  },
6537
+ "force": {
6538
+ "char": "f",
6539
+ "description": "Skip confirmation prompt",
6540
+ "name": "force",
6541
+ "allowNo": false,
6542
+ "type": "boolean"
6543
+ },
6363
6544
  "json": {
6364
6545
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6365
6546
  "name": "json",
@@ -6369,7 +6550,7 @@
6369
6550
  },
6370
6551
  "hasDynamicHelp": false,
6371
6552
  "hiddenAliases": [],
6372
- "id": "work",
6553
+ "id": "workflow:delete",
6373
6554
  "pluginAlias": "@proletariat/cli",
6374
6555
  "pluginName": "@proletariat/cli",
6375
6556
  "pluginType": "core",
@@ -6378,26 +6559,18 @@
6378
6559
  "relativePath": [
6379
6560
  "dist",
6380
6561
  "commands",
6381
- "work",
6382
- "index.js"
6562
+ "workflow",
6563
+ "delete.js"
6383
6564
  ]
6384
6565
  },
6385
- "work:ready": {
6566
+ "workflow": {
6386
6567
  "aliases": [],
6387
- "args": {
6388
- "ticketId": {
6389
- "description": "Ticket ID - prompts with dropdown if not provided",
6390
- "name": "ticketId",
6391
- "required": false
6392
- }
6393
- },
6394
- "description": "Mark work as ready for review (moves ticket to In Review column)",
6568
+ "args": {},
6569
+ "description": "List all available workflows (alias for workflow list)",
6395
6570
  "examples": [
6396
6571
  "<%= config.bin %> <%= command.id %>",
6397
- "<%= config.bin %> <%= command.id %> TKT-001",
6398
- "<%= config.bin %> <%= command.id %> --pr",
6399
- "<%= config.bin %> <%= command.id %> TKT-001 --pr --draft",
6400
- "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
6572
+ "<%= config.bin %> <%= command.id %> --builtin",
6573
+ "<%= config.bin %> <%= command.id %> --json"
6401
6574
  ],
6402
6575
  "flags": {
6403
6576
  "project": {
@@ -6408,34 +6581,28 @@
6408
6581
  "multiple": false,
6409
6582
  "type": "option"
6410
6583
  },
6411
- "json": {
6412
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6413
- "name": "json",
6414
- "allowNo": false,
6415
- "type": "boolean"
6416
- },
6417
- "pr": {
6418
- "description": "Create a pull request for this work",
6419
- "name": "pr",
6584
+ "builtin": {
6585
+ "description": "Show only built-in workflows",
6586
+ "name": "builtin",
6420
6587
  "allowNo": false,
6421
6588
  "type": "boolean"
6422
6589
  },
6423
- "draft": {
6424
- "description": "Create PR as draft (only with --pr)",
6425
- "name": "draft",
6590
+ "custom": {
6591
+ "description": "Show only custom workflows",
6592
+ "name": "custom",
6426
6593
  "allowNo": false,
6427
6594
  "type": "boolean"
6428
6595
  },
6429
- "no-pr": {
6430
- "description": "Skip PR creation prompt",
6431
- "name": "no-pr",
6596
+ "json": {
6597
+ "description": "Output as JSON",
6598
+ "name": "json",
6432
6599
  "allowNo": false,
6433
6600
  "type": "boolean"
6434
6601
  }
6435
6602
  },
6436
6603
  "hasDynamicHelp": false,
6437
6604
  "hiddenAliases": [],
6438
- "id": "work:ready",
6605
+ "id": "workflow",
6439
6606
  "pluginAlias": "@proletariat/cli",
6440
6607
  "pluginName": "@proletariat/cli",
6441
6608
  "pluginType": "core",
@@ -6444,24 +6611,18 @@
6444
6611
  "relativePath": [
6445
6612
  "dist",
6446
6613
  "commands",
6447
- "work",
6448
- "ready.js"
6614
+ "workflow",
6615
+ "index.js"
6449
6616
  ]
6450
6617
  },
6451
- "work:revise": {
6618
+ "workflow:list": {
6452
6619
  "aliases": [],
6453
- "args": {
6454
- "ticketId": {
6455
- "description": "Ticket ID - prompts with dropdown if not provided",
6456
- "name": "ticketId",
6457
- "required": false
6458
- }
6459
- },
6460
- "description": "Address PR feedback on a ticket (fetches reviews/comments and spawns agent)",
6620
+ "args": {},
6621
+ "description": "List all available workflows",
6461
6622
  "examples": [
6462
- "<%= config.bin %> <%= command.id %> TKT-001",
6463
- "<%= config.bin %> <%= command.id %> # Interactive mode",
6464
- "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
6623
+ "<%= config.bin %> <%= command.id %>",
6624
+ "<%= config.bin %> <%= command.id %> --builtin",
6625
+ "<%= config.bin %> <%= command.id %> --json"
6465
6626
  ],
6466
6627
  "flags": {
6467
6628
  "project": {
@@ -6472,71 +6633,166 @@
6472
6633
  "multiple": false,
6473
6634
  "type": "option"
6474
6635
  },
6475
- "json": {
6476
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6477
- "name": "json",
6636
+ "builtin": {
6637
+ "description": "Show only built-in workflows",
6638
+ "name": "builtin",
6478
6639
  "allowNo": false,
6479
6640
  "type": "boolean"
6480
6641
  },
6481
- "mode": {
6482
- "char": "m",
6483
- "description": "Runtime mode",
6484
- "name": "mode",
6485
- "hasDynamicHelp": false,
6486
- "multiple": false,
6487
- "options": [
6488
- "foreground",
6489
- "background",
6490
- "tmux",
6491
- "terminal",
6492
- "devcontainer"
6493
- ],
6494
- "type": "option"
6642
+ "custom": {
6643
+ "description": "Show only custom workflows",
6644
+ "name": "custom",
6645
+ "allowNo": false,
6646
+ "type": "boolean"
6495
6647
  },
6496
- "executor": {
6497
- "char": "e",
6498
- "description": "Override executor",
6499
- "name": "executor",
6648
+ "json": {
6649
+ "description": "Output as JSON",
6650
+ "name": "json",
6651
+ "allowNo": false,
6652
+ "type": "boolean"
6653
+ }
6654
+ },
6655
+ "hasDynamicHelp": false,
6656
+ "hiddenAliases": [],
6657
+ "id": "workflow:list",
6658
+ "pluginAlias": "@proletariat/cli",
6659
+ "pluginName": "@proletariat/cli",
6660
+ "pluginType": "core",
6661
+ "strict": true,
6662
+ "isESM": true,
6663
+ "relativePath": [
6664
+ "dist",
6665
+ "commands",
6666
+ "workflow",
6667
+ "list.js"
6668
+ ]
6669
+ },
6670
+ "workflow:switch": {
6671
+ "aliases": [],
6672
+ "args": {
6673
+ "workflow": {
6674
+ "description": "Workflow ID to switch to",
6675
+ "name": "workflow",
6676
+ "required": false
6677
+ }
6678
+ },
6679
+ "description": "Switch a project to use a different workflow",
6680
+ "examples": [
6681
+ "<%= config.bin %> <%= command.id %> kanban",
6682
+ "<%= config.bin %> <%= command.id %> linear --project my-project",
6683
+ "<%= config.bin %> <%= command.id %> --force # Skip confirmation"
6684
+ ],
6685
+ "flags": {
6686
+ "project": {
6687
+ "char": "P",
6688
+ "description": "Project ID (uses first project if only one exists)",
6689
+ "name": "project",
6500
6690
  "hasDynamicHelp": false,
6501
6691
  "multiple": false,
6502
- "options": [
6503
- "claude-code",
6504
- "codex",
6505
- "aider",
6506
- "custom"
6507
- ],
6508
6692
  "type": "option"
6509
6693
  },
6510
6694
  "force": {
6511
6695
  "char": "f",
6512
- "description": "Start even if no pending feedback",
6696
+ "description": "Skip confirmation prompt",
6513
6697
  "name": "force",
6514
6698
  "allowNo": false,
6515
6699
  "type": "boolean"
6700
+ }
6701
+ },
6702
+ "hasDynamicHelp": false,
6703
+ "hiddenAliases": [],
6704
+ "id": "workflow:switch",
6705
+ "pluginAlias": "@proletariat/cli",
6706
+ "pluginName": "@proletariat/cli",
6707
+ "pluginType": "core",
6708
+ "strict": true,
6709
+ "isESM": true,
6710
+ "relativePath": [
6711
+ "dist",
6712
+ "commands",
6713
+ "workflow",
6714
+ "switch.js"
6715
+ ]
6716
+ },
6717
+ "workflow:view": {
6718
+ "aliases": [],
6719
+ "args": {
6720
+ "id": {
6721
+ "description": "Workflow ID - prompts with dropdown if not provided",
6722
+ "name": "id",
6723
+ "required": false
6724
+ }
6725
+ },
6726
+ "description": "View details of a workflow",
6727
+ "examples": [
6728
+ "<%= config.bin %> <%= command.id %> default",
6729
+ "<%= config.bin %> <%= command.id %> # Interactive selection",
6730
+ "<%= config.bin %> <%= command.id %> --json"
6731
+ ],
6732
+ "flags": {
6733
+ "project": {
6734
+ "char": "P",
6735
+ "description": "Project ID (uses first project if only one exists)",
6736
+ "name": "project",
6737
+ "hasDynamicHelp": false,
6738
+ "multiple": false,
6739
+ "type": "option"
6516
6740
  },
6517
- "run-on-host": {
6518
- "description": "Run on host even if devcontainer exists (bypasses sandbox)",
6519
- "name": "run-on-host",
6741
+ "json": {
6742
+ "description": "Output as JSON",
6743
+ "name": "json",
6520
6744
  "allowNo": false,
6521
6745
  "type": "boolean"
6522
- },
6523
- "session": {
6524
- "char": "s",
6525
- "description": "Session manager inside container (tmux runs agent in tmux inside container)",
6526
- "name": "session",
6527
- "default": "tmux",
6746
+ }
6747
+ },
6748
+ "hasDynamicHelp": false,
6749
+ "hiddenAliases": [],
6750
+ "id": "workflow:view",
6751
+ "pluginAlias": "@proletariat/cli",
6752
+ "pluginName": "@proletariat/cli",
6753
+ "pluginType": "core",
6754
+ "strict": true,
6755
+ "isESM": true,
6756
+ "relativePath": [
6757
+ "dist",
6758
+ "commands",
6759
+ "workflow",
6760
+ "view.js"
6761
+ ]
6762
+ },
6763
+ "work:complete": {
6764
+ "aliases": [],
6765
+ "args": {
6766
+ "ticketId": {
6767
+ "description": "Ticket ID - prompts with dropdown if not provided",
6768
+ "name": "ticketId",
6769
+ "required": false
6770
+ }
6771
+ },
6772
+ "description": "Mark work as complete (moves ticket to Done column)",
6773
+ "examples": [
6774
+ "<%= config.bin %> <%= command.id %>",
6775
+ "<%= config.bin %> <%= command.id %> TKT-001"
6776
+ ],
6777
+ "flags": {
6778
+ "project": {
6779
+ "char": "P",
6780
+ "description": "Project ID (uses first project if only one exists)",
6781
+ "name": "project",
6528
6782
  "hasDynamicHelp": false,
6529
6783
  "multiple": false,
6530
- "options": [
6531
- "tmux",
6532
- "direct"
6533
- ],
6534
6784
  "type": "option"
6785
+ },
6786
+ "json": {
6787
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6788
+ "name": "json",
6789
+ "allowNo": false,
6790
+ "type": "boolean"
6535
6791
  }
6536
6792
  },
6537
6793
  "hasDynamicHelp": false,
6538
6794
  "hiddenAliases": [],
6539
- "id": "work:revise",
6795
+ "id": "work:complete",
6540
6796
  "pluginAlias": "@proletariat/cli",
6541
6797
  "pluginName": "@proletariat/cli",
6542
6798
  "pluginType": "core",
@@ -6546,17 +6802,15 @@
6546
6802
  "dist",
6547
6803
  "commands",
6548
6804
  "work",
6549
- "revise.js"
6805
+ "complete.js"
6550
6806
  ]
6551
6807
  },
6552
- "work:spawn-all": {
6808
+ "work": {
6553
6809
  "aliases": [],
6554
6810
  "args": {},
6555
- "description": "Spawn work on all backlog tickets (alias for \"work start --all\")",
6811
+ "description": "Interactive menu for work operations (ownership, assignment, execution)",
6556
6812
  "examples": [
6557
- "<%= config.bin %> <%= command.id %>",
6558
- "<%= config.bin %> <%= command.id %> --skip-permissions",
6559
- "<%= config.bin %> <%= command.id %> --create-pr"
6813
+ "<%= config.bin %> <%= command.id %>"
6560
6814
  ],
6561
6815
  "flags": {
6562
6816
  "project": {
@@ -6567,49 +6821,16 @@
6567
6821
  "multiple": false,
6568
6822
  "type": "option"
6569
6823
  },
6570
- "force": {
6571
- "char": "f",
6572
- "description": "Start even if work already in progress",
6573
- "name": "force",
6574
- "allowNo": false,
6575
- "type": "boolean"
6576
- },
6577
- "run-on-host": {
6578
- "description": "Run on host even if devcontainer exists (bypasses sandbox)",
6579
- "name": "run-on-host",
6580
- "allowNo": false,
6581
- "type": "boolean"
6582
- },
6583
- "skip-permissions": {
6584
- "description": "Skip permission prompts (danger mode)",
6585
- "name": "skip-permissions",
6586
- "allowNo": false,
6587
- "type": "boolean"
6588
- },
6589
- "create-pr": {
6590
- "description": "Create PR when work is ready",
6591
- "name": "create-pr",
6824
+ "json": {
6825
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6826
+ "name": "json",
6592
6827
  "allowNo": false,
6593
6828
  "type": "boolean"
6594
- },
6595
- "executor": {
6596
- "char": "e",
6597
- "description": "Override executor",
6598
- "name": "executor",
6599
- "hasDynamicHelp": false,
6600
- "multiple": false,
6601
- "options": [
6602
- "claude-code",
6603
- "codex",
6604
- "aider",
6605
- "custom"
6606
- ],
6607
- "type": "option"
6608
6829
  }
6609
6830
  },
6610
6831
  "hasDynamicHelp": false,
6611
6832
  "hiddenAliases": [],
6612
- "id": "work:spawn-all",
6833
+ "id": "work",
6613
6834
  "pluginAlias": "@proletariat/cli",
6614
6835
  "pluginName": "@proletariat/cli",
6615
6836
  "pluginType": "core",
@@ -6619,21 +6840,25 @@
6619
6840
  "dist",
6620
6841
  "commands",
6621
6842
  "work",
6622
- "spawn-all.js"
6843
+ "index.js"
6623
6844
  ]
6624
6845
  },
6625
- "work:spawn": {
6846
+ "work:ready": {
6626
6847
  "aliases": [],
6627
- "args": {},
6628
- "description": "Spawn work for multiple tickets by column (batch mode)",
6848
+ "args": {
6849
+ "ticketId": {
6850
+ "description": "Ticket ID - prompts with dropdown if not provided",
6851
+ "name": "ticketId",
6852
+ "required": false
6853
+ }
6854
+ },
6855
+ "description": "Mark work as ready for review (moves ticket to In Review column)",
6629
6856
  "examples": [
6630
- "<%= config.bin %> <%= command.id %> # Interactive: All or Many",
6631
- "<%= config.bin %> <%= command.id %> --all # All tickets in selected column",
6632
- "<%= config.bin %> <%= command.id %> --column Backlog # All tickets in Backlog",
6633
- "<%= config.bin %> <%= command.id %> --many # Multi-select specific tickets",
6634
- "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 # Spawn specific tickets by ID",
6635
- "<%= config.bin %> <%= command.id %> --dry-run # Preview without executing",
6636
- "<%= config.bin %> <%= command.id %> --many --json # Output ticket choices as JSON (for agents)"
6857
+ "<%= config.bin %> <%= command.id %>",
6858
+ "<%= config.bin %> <%= command.id %> TKT-001",
6859
+ "<%= config.bin %> <%= command.id %> --pr",
6860
+ "<%= config.bin %> <%= command.id %> TKT-001 --pr --draft",
6861
+ "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
6637
6862
  ],
6638
6863
  "flags": {
6639
6864
  "project": {
@@ -6650,16 +6875,252 @@
6650
6875
  "allowNo": false,
6651
6876
  "type": "boolean"
6652
6877
  },
6653
- "all": {
6654
- "char": "a",
6655
- "description": "Spawn all tickets tickets in a column",
6656
- "name": "all",
6878
+ "pr": {
6879
+ "description": "Create a pull request for this work",
6880
+ "name": "pr",
6657
6881
  "allowNo": false,
6658
6882
  "type": "boolean"
6659
6883
  },
6660
- "many": {
6661
- "description": "Multi-select specific tickets to spawn",
6662
- "name": "many",
6884
+ "draft": {
6885
+ "description": "Create PR as draft (only with --pr)",
6886
+ "name": "draft",
6887
+ "allowNo": false,
6888
+ "type": "boolean"
6889
+ },
6890
+ "no-pr": {
6891
+ "description": "Skip PR creation prompt",
6892
+ "name": "no-pr",
6893
+ "allowNo": false,
6894
+ "type": "boolean"
6895
+ }
6896
+ },
6897
+ "hasDynamicHelp": false,
6898
+ "hiddenAliases": [],
6899
+ "id": "work:ready",
6900
+ "pluginAlias": "@proletariat/cli",
6901
+ "pluginName": "@proletariat/cli",
6902
+ "pluginType": "core",
6903
+ "strict": true,
6904
+ "isESM": true,
6905
+ "relativePath": [
6906
+ "dist",
6907
+ "commands",
6908
+ "work",
6909
+ "ready.js"
6910
+ ]
6911
+ },
6912
+ "work:revise": {
6913
+ "aliases": [],
6914
+ "args": {
6915
+ "ticketId": {
6916
+ "description": "Ticket ID - prompts with dropdown if not provided",
6917
+ "name": "ticketId",
6918
+ "required": false
6919
+ }
6920
+ },
6921
+ "description": "Address PR feedback on a ticket (fetches reviews/comments and spawns agent)",
6922
+ "examples": [
6923
+ "<%= config.bin %> <%= command.id %> TKT-001",
6924
+ "<%= config.bin %> <%= command.id %> # Interactive mode",
6925
+ "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
6926
+ ],
6927
+ "flags": {
6928
+ "project": {
6929
+ "char": "P",
6930
+ "description": "Project ID (uses first project if only one exists)",
6931
+ "name": "project",
6932
+ "hasDynamicHelp": false,
6933
+ "multiple": false,
6934
+ "type": "option"
6935
+ },
6936
+ "json": {
6937
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6938
+ "name": "json",
6939
+ "allowNo": false,
6940
+ "type": "boolean"
6941
+ },
6942
+ "mode": {
6943
+ "char": "m",
6944
+ "description": "Runtime mode",
6945
+ "name": "mode",
6946
+ "hasDynamicHelp": false,
6947
+ "multiple": false,
6948
+ "options": [
6949
+ "foreground",
6950
+ "background",
6951
+ "tmux",
6952
+ "terminal",
6953
+ "devcontainer"
6954
+ ],
6955
+ "type": "option"
6956
+ },
6957
+ "executor": {
6958
+ "char": "e",
6959
+ "description": "Override executor",
6960
+ "name": "executor",
6961
+ "hasDynamicHelp": false,
6962
+ "multiple": false,
6963
+ "options": [
6964
+ "claude-code",
6965
+ "codex",
6966
+ "aider",
6967
+ "custom"
6968
+ ],
6969
+ "type": "option"
6970
+ },
6971
+ "force": {
6972
+ "char": "f",
6973
+ "description": "Start even if no pending feedback",
6974
+ "name": "force",
6975
+ "allowNo": false,
6976
+ "type": "boolean"
6977
+ },
6978
+ "run-on-host": {
6979
+ "description": "Run on host even if devcontainer exists (bypasses sandbox)",
6980
+ "name": "run-on-host",
6981
+ "allowNo": false,
6982
+ "type": "boolean"
6983
+ },
6984
+ "session": {
6985
+ "char": "s",
6986
+ "description": "Session manager inside container (tmux runs agent in tmux inside container)",
6987
+ "name": "session",
6988
+ "default": "tmux",
6989
+ "hasDynamicHelp": false,
6990
+ "multiple": false,
6991
+ "options": [
6992
+ "tmux",
6993
+ "direct"
6994
+ ],
6995
+ "type": "option"
6996
+ }
6997
+ },
6998
+ "hasDynamicHelp": false,
6999
+ "hiddenAliases": [],
7000
+ "id": "work:revise",
7001
+ "pluginAlias": "@proletariat/cli",
7002
+ "pluginName": "@proletariat/cli",
7003
+ "pluginType": "core",
7004
+ "strict": true,
7005
+ "isESM": true,
7006
+ "relativePath": [
7007
+ "dist",
7008
+ "commands",
7009
+ "work",
7010
+ "revise.js"
7011
+ ]
7012
+ },
7013
+ "work:spawn-all": {
7014
+ "aliases": [],
7015
+ "args": {},
7016
+ "description": "Spawn work on all backlog tickets (alias for \"work start --all\")",
7017
+ "examples": [
7018
+ "<%= config.bin %> <%= command.id %>",
7019
+ "<%= config.bin %> <%= command.id %> --skip-permissions",
7020
+ "<%= config.bin %> <%= command.id %> --create-pr"
7021
+ ],
7022
+ "flags": {
7023
+ "project": {
7024
+ "char": "P",
7025
+ "description": "Project ID (uses first project if only one exists)",
7026
+ "name": "project",
7027
+ "hasDynamicHelp": false,
7028
+ "multiple": false,
7029
+ "type": "option"
7030
+ },
7031
+ "force": {
7032
+ "char": "f",
7033
+ "description": "Start even if work already in progress",
7034
+ "name": "force",
7035
+ "allowNo": false,
7036
+ "type": "boolean"
7037
+ },
7038
+ "run-on-host": {
7039
+ "description": "Run on host even if devcontainer exists (bypasses sandbox)",
7040
+ "name": "run-on-host",
7041
+ "allowNo": false,
7042
+ "type": "boolean"
7043
+ },
7044
+ "skip-permissions": {
7045
+ "description": "Skip permission prompts (danger mode)",
7046
+ "name": "skip-permissions",
7047
+ "allowNo": false,
7048
+ "type": "boolean"
7049
+ },
7050
+ "create-pr": {
7051
+ "description": "Create PR when work is ready",
7052
+ "name": "create-pr",
7053
+ "allowNo": false,
7054
+ "type": "boolean"
7055
+ },
7056
+ "executor": {
7057
+ "char": "e",
7058
+ "description": "Override executor",
7059
+ "name": "executor",
7060
+ "hasDynamicHelp": false,
7061
+ "multiple": false,
7062
+ "options": [
7063
+ "claude-code",
7064
+ "codex",
7065
+ "aider",
7066
+ "custom"
7067
+ ],
7068
+ "type": "option"
7069
+ }
7070
+ },
7071
+ "hasDynamicHelp": false,
7072
+ "hiddenAliases": [],
7073
+ "id": "work:spawn-all",
7074
+ "pluginAlias": "@proletariat/cli",
7075
+ "pluginName": "@proletariat/cli",
7076
+ "pluginType": "core",
7077
+ "strict": true,
7078
+ "isESM": true,
7079
+ "relativePath": [
7080
+ "dist",
7081
+ "commands",
7082
+ "work",
7083
+ "spawn-all.js"
7084
+ ]
7085
+ },
7086
+ "work:spawn": {
7087
+ "aliases": [],
7088
+ "args": {},
7089
+ "description": "Spawn work for multiple tickets by column (batch mode)",
7090
+ "examples": [
7091
+ "<%= config.bin %> <%= command.id %> # Interactive: All or Many",
7092
+ "<%= config.bin %> <%= command.id %> --all # All tickets in selected column",
7093
+ "<%= config.bin %> <%= command.id %> --column Backlog # All tickets in Backlog",
7094
+ "<%= config.bin %> <%= command.id %> --many # Multi-select specific tickets",
7095
+ "<%= config.bin %> <%= command.id %> TKT-001 TKT-002 # Spawn specific tickets by ID",
7096
+ "<%= config.bin %> <%= command.id %> --dry-run # Preview without executing",
7097
+ "<%= config.bin %> <%= command.id %> --many --json # Output ticket choices as JSON (for agents)"
7098
+ ],
7099
+ "flags": {
7100
+ "project": {
7101
+ "char": "P",
7102
+ "description": "Project ID (uses first project if only one exists)",
7103
+ "name": "project",
7104
+ "hasDynamicHelp": false,
7105
+ "multiple": false,
7106
+ "type": "option"
7107
+ },
7108
+ "json": {
7109
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
7110
+ "name": "json",
7111
+ "allowNo": false,
7112
+ "type": "boolean"
7113
+ },
7114
+ "all": {
7115
+ "char": "a",
7116
+ "description": "Spawn all tickets tickets in a column",
7117
+ "name": "all",
7118
+ "allowNo": false,
7119
+ "type": "boolean"
7120
+ },
7121
+ "many": {
7122
+ "description": "Multi-select specific tickets to spawn",
7123
+ "name": "many",
6663
7124
  "allowNo": false,
6664
7125
  "type": "boolean"
6665
7126
  },
@@ -6805,6 +7266,12 @@
6805
7266
  "name": "focus",
6806
7267
  "allowNo": false,
6807
7268
  "type": "boolean"
7269
+ },
7270
+ "clone": {
7271
+ "description": "Use independent git clone instead of worktree (more isolation, no real-time sync)",
7272
+ "name": "clone",
7273
+ "allowNo": false,
7274
+ "type": "boolean"
6808
7275
  }
6809
7276
  },
6810
7277
  "hasDynamicHelp": false,
@@ -6994,617 +7461,162 @@
6994
7461
  },
6995
7462
  "agent": {
6996
7463
  "description": "Agent to assign (skips interactive selection)",
6997
- "name": "agent",
6998
- "hasDynamicHelp": false,
6999
- "multiple": false,
7000
- "type": "option"
7001
- },
7002
- "ephemeral": {
7003
- "description": "Create an ephemeral agent on-demand (auto-generates name)",
7004
- "name": "ephemeral",
7005
- "allowNo": false,
7006
- "type": "boolean"
7007
- },
7008
- "focus": {
7009
- "description": "Bring terminal to foreground when opening new tabs (default: opens in background)",
7010
- "name": "focus",
7011
- "allowNo": false,
7012
- "type": "boolean"
7013
- }
7014
- },
7015
- "hasDynamicHelp": false,
7016
- "hiddenAliases": [],
7017
- "id": "work:start",
7018
- "pluginAlias": "@proletariat/cli",
7019
- "pluginName": "@proletariat/cli",
7020
- "pluginType": "core",
7021
- "strict": true,
7022
- "isESM": true,
7023
- "relativePath": [
7024
- "dist",
7025
- "commands",
7026
- "work",
7027
- "start.js"
7028
- ]
7029
- },
7030
- "work:watch": {
7031
- "aliases": [],
7032
- "args": {},
7033
- "description": "Watch a column and auto-spawn agents for new tickets",
7034
- "examples": [
7035
- "<%= config.bin %> <%= command.id %>",
7036
- "<%= config.bin %> <%= command.id %> --column Ready",
7037
- "<%= config.bin %> <%= command.id %> --column Ready --strategy round-robin",
7038
- "<%= config.bin %> <%= command.id %> --column Ready --interval 10",
7039
- "<%= config.bin %> <%= command.id %> --column Ready --once"
7040
- ],
7041
- "flags": {
7042
- "project": {
7043
- "char": "P",
7044
- "description": "Project ID (uses first project if only one exists)",
7045
- "name": "project",
7046
- "hasDynamicHelp": false,
7047
- "multiple": false,
7048
- "type": "option"
7049
- },
7050
- "json": {
7051
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
7052
- "name": "json",
7053
- "allowNo": false,
7054
- "type": "boolean"
7055
- },
7056
- "column": {
7057
- "char": "c",
7058
- "description": "Column to watch for new tickets (prompts if not provided)",
7059
- "name": "column",
7060
- "hasDynamicHelp": false,
7061
- "multiple": false,
7062
- "type": "option"
7063
- },
7064
- "strategy": {
7065
- "char": "s",
7066
- "description": "Agent selection strategy",
7067
- "name": "strategy",
7068
- "default": "round-robin",
7069
- "hasDynamicHelp": false,
7070
- "multiple": false,
7071
- "options": [
7072
- "round-robin",
7073
- "least-busy",
7074
- "random"
7075
- ],
7076
- "type": "option"
7077
- },
7078
- "agent": {
7079
- "char": "a",
7080
- "description": "Use specific agent for all tickets",
7081
- "name": "agent",
7082
- "hasDynamicHelp": false,
7083
- "multiple": false,
7084
- "type": "option"
7085
- },
7086
- "limit": {
7087
- "char": "l",
7088
- "description": "Maximum concurrent executions",
7089
- "name": "limit",
7090
- "hasDynamicHelp": false,
7091
- "multiple": false,
7092
- "type": "option"
7093
- },
7094
- "interval": {
7095
- "char": "i",
7096
- "description": "Polling interval in seconds",
7097
- "name": "interval",
7098
- "default": 5,
7099
- "hasDynamicHelp": false,
7100
- "multiple": false,
7101
- "type": "option"
7102
- },
7103
- "once": {
7104
- "description": "Check once and exit (no continuous watching)",
7105
- "name": "once",
7106
- "allowNo": false,
7107
- "type": "boolean"
7108
- },
7109
- "mode": {
7110
- "char": "m",
7111
- "description": "Display mode for agent output",
7112
- "name": "mode",
7113
- "hasDynamicHelp": false,
7114
- "multiple": false,
7115
- "options": [
7116
- "terminal",
7117
- "background"
7118
- ],
7119
- "type": "option"
7120
- },
7121
- "skip-permissions": {
7122
- "description": "Skip permission prompts (danger mode)",
7123
- "name": "skip-permissions",
7124
- "allowNo": false,
7125
- "type": "boolean"
7126
- },
7127
- "create-pr": {
7128
- "description": "Create PR when work is ready",
7129
- "name": "create-pr",
7130
- "allowNo": false,
7131
- "type": "boolean"
7132
- }
7133
- },
7134
- "hasDynamicHelp": false,
7135
- "hiddenAliases": [],
7136
- "id": "work:watch",
7137
- "pluginAlias": "@proletariat/cli",
7138
- "pluginName": "@proletariat/cli",
7139
- "pluginType": "core",
7140
- "strict": true,
7141
- "isESM": true,
7142
- "relativePath": [
7143
- "dist",
7144
- "commands",
7145
- "work",
7146
- "watch.js"
7147
- ]
7148
- },
7149
- "workflow:create": {
7150
- "aliases": [],
7151
- "args": {
7152
- "name": {
7153
- "description": "Workflow name",
7154
- "name": "name",
7155
- "required": false
7156
- }
7157
- },
7158
- "description": "Create a new custom workflow",
7159
- "examples": [
7160
- "<%= config.bin %> <%= command.id %> \"My Workflow\"",
7161
- "<%= config.bin %> <%= command.id %> \"Sprint Board\" --description \"Agile sprint workflow\"",
7162
- "<%= config.bin %> <%= command.id %> \"Simple\" --statuses \"Todo,In Progress,Done\""
7163
- ],
7164
- "flags": {
7165
- "project": {
7166
- "char": "P",
7167
- "description": "Project ID (uses first project if only one exists)",
7168
- "name": "project",
7169
- "hasDynamicHelp": false,
7170
- "multiple": false,
7171
- "type": "option"
7172
- },
7173
- "description": {
7174
- "char": "d",
7175
- "description": "Workflow description",
7176
- "name": "description",
7177
- "hasDynamicHelp": false,
7178
- "multiple": false,
7179
- "type": "option"
7180
- },
7181
- "statuses": {
7182
- "char": "s",
7183
- "description": "Comma-separated list of status names (uses default categories)",
7184
- "name": "statuses",
7185
- "hasDynamicHelp": false,
7186
- "multiple": false,
7187
- "type": "option"
7188
- },
7189
- "json": {
7190
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
7191
- "name": "json",
7192
- "allowNo": false,
7193
- "type": "boolean"
7194
- }
7195
- },
7196
- "hasDynamicHelp": false,
7197
- "hiddenAliases": [],
7198
- "id": "workflow:create",
7199
- "pluginAlias": "@proletariat/cli",
7200
- "pluginName": "@proletariat/cli",
7201
- "pluginType": "core",
7202
- "strict": true,
7203
- "isESM": true,
7204
- "relativePath": [
7205
- "dist",
7206
- "commands",
7207
- "workflow",
7208
- "create.js"
7209
- ]
7210
- },
7211
- "workflow:delete": {
7212
- "aliases": [],
7213
- "args": {
7214
- "id": {
7215
- "description": "Workflow ID to delete - prompts with dropdown if not provided",
7216
- "name": "id",
7217
- "required": false
7218
- }
7219
- },
7220
- "description": "Delete a custom workflow",
7221
- "examples": [
7222
- "<%= config.bin %> <%= command.id %> my-workflow",
7223
- "<%= config.bin %> <%= command.id %> my-workflow --force # Skip confirmation",
7224
- "<%= config.bin %> <%= command.id %> # Interactive selection"
7225
- ],
7226
- "flags": {
7227
- "project": {
7228
- "char": "P",
7229
- "description": "Project ID (uses first project if only one exists)",
7230
- "name": "project",
7231
- "hasDynamicHelp": false,
7232
- "multiple": false,
7233
- "type": "option"
7234
- },
7235
- "force": {
7236
- "char": "f",
7237
- "description": "Skip confirmation prompt",
7238
- "name": "force",
7239
- "allowNo": false,
7240
- "type": "boolean"
7241
- },
7242
- "json": {
7243
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
7244
- "name": "json",
7245
- "allowNo": false,
7246
- "type": "boolean"
7247
- }
7248
- },
7249
- "hasDynamicHelp": false,
7250
- "hiddenAliases": [],
7251
- "id": "workflow:delete",
7252
- "pluginAlias": "@proletariat/cli",
7253
- "pluginName": "@proletariat/cli",
7254
- "pluginType": "core",
7255
- "strict": true,
7256
- "isESM": true,
7257
- "relativePath": [
7258
- "dist",
7259
- "commands",
7260
- "workflow",
7261
- "delete.js"
7262
- ]
7263
- },
7264
- "workflow": {
7265
- "aliases": [],
7266
- "args": {},
7267
- "description": "List all available workflows (alias for workflow list)",
7268
- "examples": [
7269
- "<%= config.bin %> <%= command.id %>",
7270
- "<%= config.bin %> <%= command.id %> --builtin",
7271
- "<%= config.bin %> <%= command.id %> --json"
7272
- ],
7273
- "flags": {
7274
- "project": {
7275
- "char": "P",
7276
- "description": "Project ID (uses first project if only one exists)",
7277
- "name": "project",
7278
- "hasDynamicHelp": false,
7279
- "multiple": false,
7280
- "type": "option"
7281
- },
7282
- "builtin": {
7283
- "description": "Show only built-in workflows",
7284
- "name": "builtin",
7285
- "allowNo": false,
7286
- "type": "boolean"
7287
- },
7288
- "custom": {
7289
- "description": "Show only custom workflows",
7290
- "name": "custom",
7291
- "allowNo": false,
7292
- "type": "boolean"
7293
- },
7294
- "json": {
7295
- "description": "Output as JSON",
7296
- "name": "json",
7297
- "allowNo": false,
7298
- "type": "boolean"
7299
- }
7300
- },
7301
- "hasDynamicHelp": false,
7302
- "hiddenAliases": [],
7303
- "id": "workflow",
7304
- "pluginAlias": "@proletariat/cli",
7305
- "pluginName": "@proletariat/cli",
7306
- "pluginType": "core",
7307
- "strict": true,
7308
- "isESM": true,
7309
- "relativePath": [
7310
- "dist",
7311
- "commands",
7312
- "workflow",
7313
- "index.js"
7314
- ]
7315
- },
7316
- "workflow:list": {
7317
- "aliases": [],
7318
- "args": {},
7319
- "description": "List all available workflows",
7320
- "examples": [
7321
- "<%= config.bin %> <%= command.id %>",
7322
- "<%= config.bin %> <%= command.id %> --builtin",
7323
- "<%= config.bin %> <%= command.id %> --json"
7324
- ],
7325
- "flags": {
7326
- "project": {
7327
- "char": "P",
7328
- "description": "Project ID (uses first project if only one exists)",
7329
- "name": "project",
7330
- "hasDynamicHelp": false,
7331
- "multiple": false,
7332
- "type": "option"
7333
- },
7334
- "builtin": {
7335
- "description": "Show only built-in workflows",
7336
- "name": "builtin",
7337
- "allowNo": false,
7338
- "type": "boolean"
7339
- },
7340
- "custom": {
7341
- "description": "Show only custom workflows",
7342
- "name": "custom",
7343
- "allowNo": false,
7344
- "type": "boolean"
7345
- },
7346
- "json": {
7347
- "description": "Output as JSON",
7348
- "name": "json",
7349
- "allowNo": false,
7350
- "type": "boolean"
7351
- }
7352
- },
7353
- "hasDynamicHelp": false,
7354
- "hiddenAliases": [],
7355
- "id": "workflow:list",
7356
- "pluginAlias": "@proletariat/cli",
7357
- "pluginName": "@proletariat/cli",
7358
- "pluginType": "core",
7359
- "strict": true,
7360
- "isESM": true,
7361
- "relativePath": [
7362
- "dist",
7363
- "commands",
7364
- "workflow",
7365
- "list.js"
7366
- ]
7367
- },
7368
- "workflow:switch": {
7369
- "aliases": [],
7370
- "args": {
7371
- "workflow": {
7372
- "description": "Workflow ID to switch to",
7373
- "name": "workflow",
7374
- "required": false
7375
- }
7376
- },
7377
- "description": "Switch a project to use a different workflow",
7378
- "examples": [
7379
- "<%= config.bin %> <%= command.id %> kanban",
7380
- "<%= config.bin %> <%= command.id %> linear --project my-project",
7381
- "<%= config.bin %> <%= command.id %> --force # Skip confirmation"
7382
- ],
7383
- "flags": {
7384
- "project": {
7385
- "char": "P",
7386
- "description": "Project ID (uses first project if only one exists)",
7387
- "name": "project",
7388
- "hasDynamicHelp": false,
7389
- "multiple": false,
7390
- "type": "option"
7391
- },
7392
- "force": {
7393
- "char": "f",
7394
- "description": "Skip confirmation prompt",
7395
- "name": "force",
7396
- "allowNo": false,
7397
- "type": "boolean"
7398
- }
7399
- },
7400
- "hasDynamicHelp": false,
7401
- "hiddenAliases": [],
7402
- "id": "workflow:switch",
7403
- "pluginAlias": "@proletariat/cli",
7404
- "pluginName": "@proletariat/cli",
7405
- "pluginType": "core",
7406
- "strict": true,
7407
- "isESM": true,
7408
- "relativePath": [
7409
- "dist",
7410
- "commands",
7411
- "workflow",
7412
- "switch.js"
7413
- ]
7414
- },
7415
- "workflow:view": {
7416
- "aliases": [],
7417
- "args": {
7418
- "id": {
7419
- "description": "Workflow ID - prompts with dropdown if not provided",
7420
- "name": "id",
7421
- "required": false
7422
- }
7423
- },
7424
- "description": "View details of a workflow",
7425
- "examples": [
7426
- "<%= config.bin %> <%= command.id %> default",
7427
- "<%= config.bin %> <%= command.id %> # Interactive selection",
7428
- "<%= config.bin %> <%= command.id %> --json"
7429
- ],
7430
- "flags": {
7431
- "project": {
7432
- "char": "P",
7433
- "description": "Project ID (uses first project if only one exists)",
7434
- "name": "project",
7435
- "hasDynamicHelp": false,
7436
- "multiple": false,
7437
- "type": "option"
7438
- },
7439
- "json": {
7440
- "description": "Output as JSON",
7441
- "name": "json",
7442
- "allowNo": false,
7443
- "type": "boolean"
7444
- }
7445
- },
7446
- "hasDynamicHelp": false,
7447
- "hiddenAliases": [],
7448
- "id": "workflow:view",
7449
- "pluginAlias": "@proletariat/cli",
7450
- "pluginName": "@proletariat/cli",
7451
- "pluginType": "core",
7452
- "strict": true,
7453
- "isESM": true,
7454
- "relativePath": [
7455
- "dist",
7456
- "commands",
7457
- "workflow",
7458
- "view.js"
7459
- ]
7460
- },
7461
- "workspace:add": {
7462
- "aliases": [],
7463
- "args": {
7464
- "path": {
7465
- "description": "Path to the workspace to register",
7466
- "name": "path",
7467
- "required": true
7468
- }
7469
- },
7470
- "description": "Register an existing workspace in the machine config",
7471
- "examples": [
7472
- "<%= config.bin %> <%= command.id %> /path/to/workspace",
7473
- "<%= config.bin %> <%= command.id %> . --name my-workspace",
7474
- "<%= config.bin %> <%= command.id %> ~/projects/my-hq"
7475
- ],
7476
- "flags": {
7477
- "name": {
7478
- "char": "n",
7479
- "description": "Custom name for the workspace (defaults to directory basename or workspace config name)",
7480
- "name": "name",
7481
- "hasDynamicHelp": false,
7482
- "multiple": false,
7483
- "type": "option"
7484
- }
7485
- },
7486
- "hasDynamicHelp": false,
7487
- "hiddenAliases": [],
7488
- "id": "workspace:add",
7489
- "pluginAlias": "@proletariat/cli",
7490
- "pluginName": "@proletariat/cli",
7491
- "pluginType": "core",
7492
- "strict": true,
7493
- "enableJsonFlag": false,
7494
- "isESM": true,
7495
- "relativePath": [
7496
- "dist",
7497
- "commands",
7498
- "workspace",
7499
- "add.js"
7500
- ]
7501
- },
7502
- "workspace:list": {
7503
- "aliases": [],
7504
- "args": {},
7505
- "description": "List all registered and discovered HQ workspaces",
7506
- "examples": [
7507
- "<%= config.bin %> <%= command.id %>",
7508
- "<%= config.bin %> <%= command.id %> --json"
7509
- ],
7510
- "flags": {
7511
- "json": {
7512
- "description": "Output as JSON for machine-readable format",
7513
- "name": "json",
7464
+ "name": "agent",
7465
+ "hasDynamicHelp": false,
7466
+ "multiple": false,
7467
+ "type": "option"
7468
+ },
7469
+ "ephemeral": {
7470
+ "description": "Create an ephemeral agent on-demand (auto-generates name)",
7471
+ "name": "ephemeral",
7514
7472
  "allowNo": false,
7515
7473
  "type": "boolean"
7516
- }
7517
- },
7518
- "hasDynamicHelp": false,
7519
- "hiddenAliases": [],
7520
- "id": "workspace:list",
7521
- "pluginAlias": "@proletariat/cli",
7522
- "pluginName": "@proletariat/cli",
7523
- "pluginType": "core",
7524
- "strict": true,
7525
- "enableJsonFlag": false,
7526
- "isESM": true,
7527
- "relativePath": [
7528
- "dist",
7529
- "commands",
7530
- "workspace",
7531
- "list.js"
7532
- ]
7533
- },
7534
- "workspace:remove": {
7535
- "aliases": [],
7536
- "args": {
7537
- "nameOrPath": {
7538
- "description": "Workspace name or path to unregister",
7539
- "name": "nameOrPath",
7540
- "required": true
7541
- }
7542
- },
7543
- "description": "Unregister a workspace from the machine config (does NOT delete files)",
7544
- "examples": [
7545
- "<%= config.bin %> <%= command.id %> my-workspace",
7546
- "<%= config.bin %> <%= command.id %> /path/to/workspace"
7547
- ],
7548
- "flags": {
7549
- "json": {
7550
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
7551
- "name": "json",
7474
+ },
7475
+ "focus": {
7476
+ "description": "Bring terminal to foreground when opening new tabs (default: opens in background)",
7477
+ "name": "focus",
7478
+ "allowNo": false,
7479
+ "type": "boolean"
7480
+ },
7481
+ "clone": {
7482
+ "description": "Use independent git clone instead of worktree (more isolation, no real-time sync)",
7483
+ "name": "clone",
7552
7484
  "allowNo": false,
7553
7485
  "type": "boolean"
7554
7486
  }
7555
7487
  },
7556
7488
  "hasDynamicHelp": false,
7557
7489
  "hiddenAliases": [],
7558
- "id": "workspace:remove",
7490
+ "id": "work:start",
7559
7491
  "pluginAlias": "@proletariat/cli",
7560
7492
  "pluginName": "@proletariat/cli",
7561
7493
  "pluginType": "core",
7562
7494
  "strict": true,
7563
- "enableJsonFlag": false,
7564
7495
  "isESM": true,
7565
7496
  "relativePath": [
7566
7497
  "dist",
7567
7498
  "commands",
7568
- "workspace",
7569
- "remove.js"
7499
+ "work",
7500
+ "start.js"
7570
7501
  ]
7571
7502
  },
7572
- "workspace:use": {
7503
+ "work:watch": {
7573
7504
  "aliases": [],
7574
- "args": {
7575
- "nameOrPath": {
7576
- "description": "Workspace name or path",
7577
- "name": "nameOrPath",
7578
- "required": true
7579
- }
7580
- },
7581
- "description": "Set the active workspace",
7505
+ "args": {},
7506
+ "description": "Watch a column and auto-spawn agents for new tickets",
7582
7507
  "examples": [
7583
- "<%= config.bin %> <%= command.id %> my-workspace",
7584
- "<%= config.bin %> <%= command.id %> /path/to/workspace"
7508
+ "<%= config.bin %> <%= command.id %>",
7509
+ "<%= config.bin %> <%= command.id %> --column Ready",
7510
+ "<%= config.bin %> <%= command.id %> --column Ready --strategy round-robin",
7511
+ "<%= config.bin %> <%= command.id %> --column Ready --interval 10",
7512
+ "<%= config.bin %> <%= command.id %> --column Ready --once"
7585
7513
  ],
7586
7514
  "flags": {
7515
+ "project": {
7516
+ "char": "P",
7517
+ "description": "Project ID (uses first project if only one exists)",
7518
+ "name": "project",
7519
+ "hasDynamicHelp": false,
7520
+ "multiple": false,
7521
+ "type": "option"
7522
+ },
7587
7523
  "json": {
7588
7524
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
7589
7525
  "name": "json",
7590
7526
  "allowNo": false,
7591
7527
  "type": "boolean"
7528
+ },
7529
+ "column": {
7530
+ "char": "c",
7531
+ "description": "Column to watch for new tickets (prompts if not provided)",
7532
+ "name": "column",
7533
+ "hasDynamicHelp": false,
7534
+ "multiple": false,
7535
+ "type": "option"
7536
+ },
7537
+ "strategy": {
7538
+ "char": "s",
7539
+ "description": "Agent selection strategy",
7540
+ "name": "strategy",
7541
+ "default": "round-robin",
7542
+ "hasDynamicHelp": false,
7543
+ "multiple": false,
7544
+ "options": [
7545
+ "round-robin",
7546
+ "least-busy",
7547
+ "random"
7548
+ ],
7549
+ "type": "option"
7550
+ },
7551
+ "agent": {
7552
+ "char": "a",
7553
+ "description": "Use specific agent for all tickets",
7554
+ "name": "agent",
7555
+ "hasDynamicHelp": false,
7556
+ "multiple": false,
7557
+ "type": "option"
7558
+ },
7559
+ "limit": {
7560
+ "char": "l",
7561
+ "description": "Maximum concurrent executions",
7562
+ "name": "limit",
7563
+ "hasDynamicHelp": false,
7564
+ "multiple": false,
7565
+ "type": "option"
7566
+ },
7567
+ "interval": {
7568
+ "char": "i",
7569
+ "description": "Polling interval in seconds",
7570
+ "name": "interval",
7571
+ "default": 5,
7572
+ "hasDynamicHelp": false,
7573
+ "multiple": false,
7574
+ "type": "option"
7575
+ },
7576
+ "once": {
7577
+ "description": "Check once and exit (no continuous watching)",
7578
+ "name": "once",
7579
+ "allowNo": false,
7580
+ "type": "boolean"
7581
+ },
7582
+ "mode": {
7583
+ "char": "m",
7584
+ "description": "Display mode for agent output",
7585
+ "name": "mode",
7586
+ "hasDynamicHelp": false,
7587
+ "multiple": false,
7588
+ "options": [
7589
+ "terminal",
7590
+ "background"
7591
+ ],
7592
+ "type": "option"
7593
+ },
7594
+ "skip-permissions": {
7595
+ "description": "Skip permission prompts (danger mode)",
7596
+ "name": "skip-permissions",
7597
+ "allowNo": false,
7598
+ "type": "boolean"
7599
+ },
7600
+ "create-pr": {
7601
+ "description": "Create PR when work is ready",
7602
+ "name": "create-pr",
7603
+ "allowNo": false,
7604
+ "type": "boolean"
7592
7605
  }
7593
7606
  },
7594
7607
  "hasDynamicHelp": false,
7595
7608
  "hiddenAliases": [],
7596
- "id": "workspace:use",
7609
+ "id": "work:watch",
7597
7610
  "pluginAlias": "@proletariat/cli",
7598
7611
  "pluginName": "@proletariat/cli",
7599
7612
  "pluginType": "core",
7600
7613
  "strict": true,
7601
- "enableJsonFlag": false,
7602
7614
  "isESM": true,
7603
7615
  "relativePath": [
7604
7616
  "dist",
7605
7617
  "commands",
7606
- "workspace",
7607
- "use.js"
7618
+ "work",
7619
+ "watch.js"
7608
7620
  ]
7609
7621
  },
7610
7622
  "ticket:bulk": {
@@ -8792,6 +8804,12 @@
8792
8804
  "name": "json",
8793
8805
  "allowNo": false,
8794
8806
  "type": "boolean"
8807
+ },
8808
+ "clone": {
8809
+ "description": "Use independent git clone instead of worktree (more isolation, no real-time sync)",
8810
+ "name": "clone",
8811
+ "allowNo": false,
8812
+ "type": "boolean"
8795
8813
  }
8796
8814
  },
8797
8815
  "hasDynamicHelp": false,
@@ -9885,33 +9903,60 @@
9885
9903
  "update.js"
9886
9904
  ]
9887
9905
  },
9888
- "spec:link:depends": {
9906
+ "template:ticket:apply": {
9889
9907
  "aliases": [],
9890
9908
  "args": {
9891
- "id": {
9892
- "description": "Spec ID that depends on another",
9893
- "name": "id",
9909
+ "template": {
9910
+ "description": "Template ID to use",
9911
+ "name": "template",
9894
9912
  "required": true
9895
- },
9896
- "target": {
9897
- "description": "Spec ID that this spec depends on",
9898
- "name": "target",
9899
- "required": false
9900
9913
  }
9901
9914
  },
9902
- "description": "Add a depends_on dependency (spec requires another to be completed first)",
9915
+ "description": "Create a new ticket from a template",
9903
9916
  "examples": [
9904
- "<%= config.bin %> <%= command.id %> my-feature other-spec"
9917
+ "<%= config.bin %> <%= command.id %> bug-report",
9918
+ "<%= config.bin %> <%= command.id %> feature-request --title \"Add dark mode\"",
9919
+ "<%= config.bin %> <%= command.id %> bug-report --project my-project"
9905
9920
  ],
9906
9921
  "flags": {
9907
9922
  "project": {
9908
- "char": "P",
9909
- "description": "Project ID (uses first project if only one exists)",
9923
+ "char": "p",
9924
+ "description": "Project ID or name",
9910
9925
  "name": "project",
9911
9926
  "hasDynamicHelp": false,
9912
9927
  "multiple": false,
9913
9928
  "type": "option"
9914
9929
  },
9930
+ "title": {
9931
+ "char": "t",
9932
+ "description": "Ticket title (overrides template pattern)",
9933
+ "name": "title",
9934
+ "hasDynamicHelp": false,
9935
+ "multiple": false,
9936
+ "type": "option"
9937
+ },
9938
+ "column": {
9939
+ "char": "c",
9940
+ "description": "Column to place the ticket in",
9941
+ "name": "column",
9942
+ "hasDynamicHelp": false,
9943
+ "multiple": false,
9944
+ "type": "option"
9945
+ },
9946
+ "priority": {
9947
+ "description": "Priority (overrides template default)",
9948
+ "name": "priority",
9949
+ "hasDynamicHelp": false,
9950
+ "multiple": false,
9951
+ "type": "option"
9952
+ },
9953
+ "interactive": {
9954
+ "char": "i",
9955
+ "description": "Interactive mode - prompt for values",
9956
+ "name": "interactive",
9957
+ "allowNo": false,
9958
+ "type": "boolean"
9959
+ },
9915
9960
  "json": {
9916
9961
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9917
9962
  "name": "json",
@@ -9921,46 +9966,42 @@
9921
9966
  },
9922
9967
  "hasDynamicHelp": false,
9923
9968
  "hiddenAliases": [],
9924
- "id": "spec:link:depends",
9969
+ "id": "template:ticket:apply",
9925
9970
  "pluginAlias": "@proletariat/cli",
9926
9971
  "pluginName": "@proletariat/cli",
9927
9972
  "pluginType": "core",
9928
9973
  "strict": true,
9974
+ "enableJsonFlag": false,
9929
9975
  "isESM": true,
9930
9976
  "relativePath": [
9931
9977
  "dist",
9932
9978
  "commands",
9933
- "spec",
9934
- "link",
9935
- "depends.js"
9979
+ "template",
9980
+ "ticket",
9981
+ "apply.js"
9936
9982
  ]
9937
9983
  },
9938
- "spec:link:duplicates": {
9984
+ "template:ticket:delete": {
9939
9985
  "aliases": [],
9940
9986
  "args": {
9941
9987
  "id": {
9942
- "description": "Duplicate spec ID",
9988
+ "description": "Template ID to delete",
9943
9989
  "name": "id",
9944
9990
  "required": true
9945
- },
9946
- "original": {
9947
- "description": "Original spec ID",
9948
- "name": "original",
9949
- "required": false
9950
9991
  }
9951
9992
  },
9952
- "description": "Mark a spec as duplicate of another",
9953
- "examples": [
9954
- "<%= config.bin %> <%= command.id %> my-feature other-spec"
9955
- ],
9956
- "flags": {
9957
- "project": {
9958
- "char": "P",
9959
- "description": "Project ID (uses first project if only one exists)",
9960
- "name": "project",
9961
- "hasDynamicHelp": false,
9962
- "multiple": false,
9963
- "type": "option"
9993
+ "description": "Delete a ticket template",
9994
+ "examples": [
9995
+ "<%= config.bin %> <%= command.id %> my-template",
9996
+ "<%= config.bin %> <%= command.id %> my-template --force"
9997
+ ],
9998
+ "flags": {
9999
+ "force": {
10000
+ "char": "f",
10001
+ "description": "Skip confirmation",
10002
+ "name": "force",
10003
+ "allowNo": false,
10004
+ "type": "boolean"
9964
10005
  },
9965
10006
  "json": {
9966
10007
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
@@ -9971,128 +10012,88 @@
9971
10012
  },
9972
10013
  "hasDynamicHelp": false,
9973
10014
  "hiddenAliases": [],
9974
- "id": "spec:link:duplicates",
10015
+ "id": "template:ticket:delete",
9975
10016
  "pluginAlias": "@proletariat/cli",
9976
10017
  "pluginName": "@proletariat/cli",
9977
10018
  "pluginType": "core",
9978
10019
  "strict": true,
10020
+ "enableJsonFlag": false,
9979
10021
  "isESM": true,
9980
10022
  "relativePath": [
9981
10023
  "dist",
9982
10024
  "commands",
9983
- "spec",
9984
- "link",
9985
- "duplicates.js"
10025
+ "template",
10026
+ "ticket",
10027
+ "delete.js"
9986
10028
  ]
9987
10029
  },
9988
- "spec:link": {
9989
- "aliases": [],
9990
- "args": {
9991
- "id": {
9992
- "description": "Spec ID",
9993
- "name": "id",
9994
- "required": false
9995
- }
9996
- },
9997
- "description": "Manage spec dependencies (links)",
10030
+ "template:ticket": {
10031
+ "aliases": [
10032
+ "template:tickets"
10033
+ ],
10034
+ "args": {},
10035
+ "description": "Manage ticket templates (for creating tickets from templates)",
9998
10036
  "examples": [
9999
- "<%= config.bin %> <%= command.id %> my-feature # List dependencies",
10000
- "<%= config.bin %> <%= command.id %> my-feature --depends other-spec # my-feature depends on other-spec",
10001
- "<%= config.bin %> <%= command.id %> my-feature --relates other-spec # my-feature relates to other-spec",
10002
- "<%= config.bin %> <%= command.id %> my-feature --duplicates other-spec",
10003
- "<%= config.bin %> <%= command.id %> my-feature --all # Show all links"
10037
+ "<%= config.bin %> <%= command.id %>",
10038
+ "<%= config.bin %> <%= command.id %> list",
10039
+ "<%= config.bin %> <%= command.id %> apply bug-report",
10040
+ "<%= config.bin %> <%= command.id %> save TKT-001 \"My Template\""
10004
10041
  ],
10005
10042
  "flags": {
10006
- "project": {
10007
- "char": "P",
10008
- "description": "Project ID (uses first project if only one exists)",
10009
- "name": "project",
10010
- "hasDynamicHelp": false,
10011
- "multiple": false,
10012
- "type": "option"
10013
- },
10014
10043
  "json": {
10015
10044
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10016
10045
  "name": "json",
10017
10046
  "allowNo": false,
10018
10047
  "type": "boolean"
10019
- },
10020
- "depends": {
10021
- "char": "d",
10022
- "description": "Add depends_on dependency",
10023
- "name": "depends",
10024
- "hasDynamicHelp": false,
10025
- "multiple": false,
10026
- "type": "option"
10027
- },
10028
- "relates": {
10029
- "char": "r",
10030
- "description": "Add relates_to dependency",
10031
- "name": "relates",
10032
- "hasDynamicHelp": false,
10033
- "multiple": false,
10034
- "type": "option"
10035
- },
10036
- "duplicates": {
10037
- "description": "Add duplicates dependency",
10038
- "name": "duplicates",
10039
- "hasDynamicHelp": false,
10040
- "multiple": false,
10041
- "type": "option"
10042
- },
10043
- "all": {
10044
- "char": "a",
10045
- "description": "Show all dependencies",
10046
- "name": "all",
10047
- "allowNo": false,
10048
- "type": "boolean"
10049
10048
  }
10050
10049
  },
10051
10050
  "hasDynamicHelp": false,
10052
10051
  "hiddenAliases": [],
10053
- "id": "spec:link",
10052
+ "id": "template:ticket",
10054
10053
  "pluginAlias": "@proletariat/cli",
10055
10054
  "pluginName": "@proletariat/cli",
10056
10055
  "pluginType": "core",
10057
10056
  "strict": true,
10057
+ "enableJsonFlag": false,
10058
10058
  "isESM": true,
10059
10059
  "relativePath": [
10060
10060
  "dist",
10061
10061
  "commands",
10062
- "spec",
10063
- "link",
10062
+ "template",
10063
+ "ticket",
10064
10064
  "index.js"
10065
10065
  ]
10066
10066
  },
10067
- "spec:link:relates": {
10067
+ "template:ticket:list": {
10068
10068
  "aliases": [],
10069
- "args": {
10070
- "id": {
10071
- "description": "Spec ID",
10072
- "name": "id",
10073
- "required": true
10074
- },
10075
- "target": {
10076
- "description": "Related spec ID",
10077
- "name": "target",
10078
- "required": false
10079
- }
10080
- },
10081
- "description": "Add a relates_to dependency (informational link)",
10069
+ "args": {},
10070
+ "description": "List ticket templates",
10082
10071
  "examples": [
10083
- "<%= config.bin %> <%= command.id %> my-feature other-spec"
10072
+ "<%= config.bin %> <%= command.id %>",
10073
+ "<%= config.bin %> <%= command.id %> --builtin",
10074
+ "<%= config.bin %> <%= command.id %> --json"
10084
10075
  ],
10085
10076
  "flags": {
10086
- "project": {
10087
- "char": "P",
10088
- "description": "Project ID (uses first project if only one exists)",
10089
- "name": "project",
10090
- "hasDynamicHelp": false,
10091
- "multiple": false,
10092
- "type": "option"
10077
+ "builtin": {
10078
+ "description": "Show only built-in templates",
10079
+ "exclusive": [
10080
+ "custom"
10081
+ ],
10082
+ "name": "builtin",
10083
+ "allowNo": false,
10084
+ "type": "boolean"
10085
+ },
10086
+ "custom": {
10087
+ "description": "Show only custom templates",
10088
+ "exclusive": [
10089
+ "builtin"
10090
+ ],
10091
+ "name": "custom",
10092
+ "allowNo": false,
10093
+ "type": "boolean"
10093
10094
  },
10094
10095
  "json": {
10095
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10096
+ "description": "Output as JSON",
10096
10097
  "name": "json",
10097
10098
  "allowNo": false,
10098
10099
  "type": "boolean"
@@ -10100,89 +10101,65 @@
10100
10101
  },
10101
10102
  "hasDynamicHelp": false,
10102
10103
  "hiddenAliases": [],
10103
- "id": "spec:link:relates",
10104
+ "id": "template:ticket:list",
10104
10105
  "pluginAlias": "@proletariat/cli",
10105
10106
  "pluginName": "@proletariat/cli",
10106
10107
  "pluginType": "core",
10107
10108
  "strict": true,
10109
+ "enableJsonFlag": false,
10108
10110
  "isESM": true,
10109
10111
  "relativePath": [
10110
10112
  "dist",
10111
10113
  "commands",
10112
- "spec",
10113
- "link",
10114
- "relates.js"
10114
+ "template",
10115
+ "ticket",
10116
+ "list.js"
10115
10117
  ]
10116
10118
  },
10117
- "spec:link:remove": {
10119
+ "template:ticket:save": {
10118
10120
  "aliases": [],
10119
10121
  "args": {
10120
- "id": {
10121
- "description": "Spec ID",
10122
- "name": "id",
10123
- "required": true
10122
+ "ticket": {
10123
+ "description": "Ticket ID to create template from",
10124
+ "name": "ticket",
10125
+ "required": false
10124
10126
  },
10125
- "target": {
10126
- "description": "Target spec ID to unlink",
10127
- "name": "target",
10127
+ "name": {
10128
+ "description": "Template name",
10129
+ "name": "name",
10128
10130
  "required": false
10129
10131
  }
10130
10132
  },
10131
- "description": "Remove a dependency from a spec",
10133
+ "description": "Create a template from an existing ticket",
10132
10134
  "examples": [
10133
- "<%= config.bin %> <%= command.id %> my-feature other-spec",
10134
- "<%= config.bin %> <%= command.id %> my-feature --all"
10135
+ "<%= config.bin %> <%= command.id %> TKT-001 \"Bug Report Template\"",
10136
+ "<%= config.bin %> <%= command.id %> TKT-042 \"Feature Request\" --description \"Standard feature request template\""
10135
10137
  ],
10136
10138
  "flags": {
10137
- "project": {
10138
- "char": "P",
10139
- "description": "Project ID (uses first project if only one exists)",
10140
- "name": "project",
10141
- "hasDynamicHelp": false,
10142
- "multiple": false,
10143
- "type": "option"
10144
- },
10145
- "json": {
10146
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10147
- "name": "json",
10148
- "allowNo": false,
10149
- "type": "boolean"
10150
- },
10151
- "type": {
10152
- "char": "t",
10153
- "description": "Dependency type",
10154
- "name": "type",
10139
+ "description": {
10140
+ "char": "d",
10141
+ "description": "Template description",
10142
+ "name": "description",
10155
10143
  "hasDynamicHelp": false,
10156
10144
  "multiple": false,
10157
- "options": [
10158
- "depends_on",
10159
- "relates_to",
10160
- "duplicates"
10161
- ],
10162
10145
  "type": "option"
10163
- },
10164
- "all": {
10165
- "char": "a",
10166
- "description": "Remove all dependencies",
10167
- "name": "all",
10168
- "allowNo": false,
10169
- "type": "boolean"
10170
10146
  }
10171
10147
  },
10172
10148
  "hasDynamicHelp": false,
10173
10149
  "hiddenAliases": [],
10174
- "id": "spec:link:remove",
10150
+ "id": "template:ticket:save",
10175
10151
  "pluginAlias": "@proletariat/cli",
10176
10152
  "pluginName": "@proletariat/cli",
10177
10153
  "pluginType": "core",
10178
10154
  "strict": true,
10155
+ "enableJsonFlag": false,
10179
10156
  "isESM": true,
10180
10157
  "relativePath": [
10181
10158
  "dist",
10182
10159
  "commands",
10183
- "spec",
10184
- "link",
10185
- "remove.js"
10160
+ "template",
10161
+ "ticket",
10162
+ "save.js"
10186
10163
  ]
10187
10164
  },
10188
10165
  "template:phase:apply": {
@@ -10465,60 +10442,33 @@
10465
10442
  "update.js"
10466
10443
  ]
10467
10444
  },
10468
- "template:ticket:apply": {
10445
+ "spec:link:depends": {
10469
10446
  "aliases": [],
10470
10447
  "args": {
10471
- "template": {
10472
- "description": "Template ID to use",
10473
- "name": "template",
10448
+ "id": {
10449
+ "description": "Spec ID that depends on another",
10450
+ "name": "id",
10474
10451
  "required": true
10475
- }
10476
- },
10477
- "description": "Create a new ticket from a template",
10478
- "examples": [
10479
- "<%= config.bin %> <%= command.id %> bug-report",
10480
- "<%= config.bin %> <%= command.id %> feature-request --title \"Add dark mode\"",
10481
- "<%= config.bin %> <%= command.id %> bug-report --project my-project"
10482
- ],
10483
- "flags": {
10484
- "project": {
10485
- "char": "p",
10486
- "description": "Project ID or name",
10487
- "name": "project",
10488
- "hasDynamicHelp": false,
10489
- "multiple": false,
10490
- "type": "option"
10491
- },
10492
- "title": {
10493
- "char": "t",
10494
- "description": "Ticket title (overrides template pattern)",
10495
- "name": "title",
10496
- "hasDynamicHelp": false,
10497
- "multiple": false,
10498
- "type": "option"
10499
- },
10500
- "column": {
10501
- "char": "c",
10502
- "description": "Column to place the ticket in",
10503
- "name": "column",
10504
- "hasDynamicHelp": false,
10505
- "multiple": false,
10506
- "type": "option"
10507
10452
  },
10508
- "priority": {
10509
- "description": "Priority (overrides template default)",
10510
- "name": "priority",
10453
+ "target": {
10454
+ "description": "Spec ID that this spec depends on",
10455
+ "name": "target",
10456
+ "required": false
10457
+ }
10458
+ },
10459
+ "description": "Add a depends_on dependency (spec requires another to be completed first)",
10460
+ "examples": [
10461
+ "<%= config.bin %> <%= command.id %> my-feature other-spec"
10462
+ ],
10463
+ "flags": {
10464
+ "project": {
10465
+ "char": "P",
10466
+ "description": "Project ID (uses first project if only one exists)",
10467
+ "name": "project",
10511
10468
  "hasDynamicHelp": false,
10512
10469
  "multiple": false,
10513
10470
  "type": "option"
10514
10471
  },
10515
- "interactive": {
10516
- "char": "i",
10517
- "description": "Interactive mode - prompt for values",
10518
- "name": "interactive",
10519
- "allowNo": false,
10520
- "type": "boolean"
10521
- },
10522
10472
  "json": {
10523
10473
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10524
10474
  "name": "json",
@@ -10528,42 +10478,46 @@
10528
10478
  },
10529
10479
  "hasDynamicHelp": false,
10530
10480
  "hiddenAliases": [],
10531
- "id": "template:ticket:apply",
10481
+ "id": "spec:link:depends",
10532
10482
  "pluginAlias": "@proletariat/cli",
10533
10483
  "pluginName": "@proletariat/cli",
10534
10484
  "pluginType": "core",
10535
10485
  "strict": true,
10536
- "enableJsonFlag": false,
10537
10486
  "isESM": true,
10538
10487
  "relativePath": [
10539
10488
  "dist",
10540
10489
  "commands",
10541
- "template",
10542
- "ticket",
10543
- "apply.js"
10490
+ "spec",
10491
+ "link",
10492
+ "depends.js"
10544
10493
  ]
10545
10494
  },
10546
- "template:ticket:delete": {
10495
+ "spec:link:duplicates": {
10547
10496
  "aliases": [],
10548
10497
  "args": {
10549
10498
  "id": {
10550
- "description": "Template ID to delete",
10499
+ "description": "Duplicate spec ID",
10551
10500
  "name": "id",
10552
10501
  "required": true
10502
+ },
10503
+ "original": {
10504
+ "description": "Original spec ID",
10505
+ "name": "original",
10506
+ "required": false
10553
10507
  }
10554
10508
  },
10555
- "description": "Delete a ticket template",
10509
+ "description": "Mark a spec as duplicate of another",
10556
10510
  "examples": [
10557
- "<%= config.bin %> <%= command.id %> my-template",
10558
- "<%= config.bin %> <%= command.id %> my-template --force"
10511
+ "<%= config.bin %> <%= command.id %> my-feature other-spec"
10559
10512
  ],
10560
10513
  "flags": {
10561
- "force": {
10562
- "char": "f",
10563
- "description": "Skip confirmation",
10564
- "name": "force",
10565
- "allowNo": false,
10566
- "type": "boolean"
10514
+ "project": {
10515
+ "char": "P",
10516
+ "description": "Project ID (uses first project if only one exists)",
10517
+ "name": "project",
10518
+ "hasDynamicHelp": false,
10519
+ "multiple": false,
10520
+ "type": "option"
10567
10521
  },
10568
10522
  "json": {
10569
10523
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
@@ -10574,88 +10528,128 @@
10574
10528
  },
10575
10529
  "hasDynamicHelp": false,
10576
10530
  "hiddenAliases": [],
10577
- "id": "template:ticket:delete",
10531
+ "id": "spec:link:duplicates",
10578
10532
  "pluginAlias": "@proletariat/cli",
10579
10533
  "pluginName": "@proletariat/cli",
10580
10534
  "pluginType": "core",
10581
10535
  "strict": true,
10582
- "enableJsonFlag": false,
10583
10536
  "isESM": true,
10584
10537
  "relativePath": [
10585
10538
  "dist",
10586
10539
  "commands",
10587
- "template",
10588
- "ticket",
10589
- "delete.js"
10540
+ "spec",
10541
+ "link",
10542
+ "duplicates.js"
10590
10543
  ]
10591
10544
  },
10592
- "template:ticket": {
10593
- "aliases": [
10594
- "template:tickets"
10595
- ],
10596
- "args": {},
10597
- "description": "Manage ticket templates (for creating tickets from templates)",
10545
+ "spec:link": {
10546
+ "aliases": [],
10547
+ "args": {
10548
+ "id": {
10549
+ "description": "Spec ID",
10550
+ "name": "id",
10551
+ "required": false
10552
+ }
10553
+ },
10554
+ "description": "Manage spec dependencies (links)",
10598
10555
  "examples": [
10599
- "<%= config.bin %> <%= command.id %>",
10600
- "<%= config.bin %> <%= command.id %> list",
10601
- "<%= config.bin %> <%= command.id %> apply bug-report",
10602
- "<%= config.bin %> <%= command.id %> save TKT-001 \"My Template\""
10556
+ "<%= config.bin %> <%= command.id %> my-feature # List dependencies",
10557
+ "<%= config.bin %> <%= command.id %> my-feature --depends other-spec # my-feature depends on other-spec",
10558
+ "<%= config.bin %> <%= command.id %> my-feature --relates other-spec # my-feature relates to other-spec",
10559
+ "<%= config.bin %> <%= command.id %> my-feature --duplicates other-spec",
10560
+ "<%= config.bin %> <%= command.id %> my-feature --all # Show all links"
10603
10561
  ],
10604
10562
  "flags": {
10563
+ "project": {
10564
+ "char": "P",
10565
+ "description": "Project ID (uses first project if only one exists)",
10566
+ "name": "project",
10567
+ "hasDynamicHelp": false,
10568
+ "multiple": false,
10569
+ "type": "option"
10570
+ },
10605
10571
  "json": {
10606
10572
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10607
10573
  "name": "json",
10608
10574
  "allowNo": false,
10609
10575
  "type": "boolean"
10576
+ },
10577
+ "depends": {
10578
+ "char": "d",
10579
+ "description": "Add depends_on dependency",
10580
+ "name": "depends",
10581
+ "hasDynamicHelp": false,
10582
+ "multiple": false,
10583
+ "type": "option"
10584
+ },
10585
+ "relates": {
10586
+ "char": "r",
10587
+ "description": "Add relates_to dependency",
10588
+ "name": "relates",
10589
+ "hasDynamicHelp": false,
10590
+ "multiple": false,
10591
+ "type": "option"
10592
+ },
10593
+ "duplicates": {
10594
+ "description": "Add duplicates dependency",
10595
+ "name": "duplicates",
10596
+ "hasDynamicHelp": false,
10597
+ "multiple": false,
10598
+ "type": "option"
10599
+ },
10600
+ "all": {
10601
+ "char": "a",
10602
+ "description": "Show all dependencies",
10603
+ "name": "all",
10604
+ "allowNo": false,
10605
+ "type": "boolean"
10610
10606
  }
10611
10607
  },
10612
10608
  "hasDynamicHelp": false,
10613
10609
  "hiddenAliases": [],
10614
- "id": "template:ticket",
10610
+ "id": "spec:link",
10615
10611
  "pluginAlias": "@proletariat/cli",
10616
10612
  "pluginName": "@proletariat/cli",
10617
10613
  "pluginType": "core",
10618
10614
  "strict": true,
10619
- "enableJsonFlag": false,
10620
10615
  "isESM": true,
10621
10616
  "relativePath": [
10622
10617
  "dist",
10623
10618
  "commands",
10624
- "template",
10625
- "ticket",
10619
+ "spec",
10620
+ "link",
10626
10621
  "index.js"
10627
10622
  ]
10628
10623
  },
10629
- "template:ticket:list": {
10624
+ "spec:link:relates": {
10630
10625
  "aliases": [],
10631
- "args": {},
10632
- "description": "List ticket templates",
10626
+ "args": {
10627
+ "id": {
10628
+ "description": "Spec ID",
10629
+ "name": "id",
10630
+ "required": true
10631
+ },
10632
+ "target": {
10633
+ "description": "Related spec ID",
10634
+ "name": "target",
10635
+ "required": false
10636
+ }
10637
+ },
10638
+ "description": "Add a relates_to dependency (informational link)",
10633
10639
  "examples": [
10634
- "<%= config.bin %> <%= command.id %>",
10635
- "<%= config.bin %> <%= command.id %> --builtin",
10636
- "<%= config.bin %> <%= command.id %> --json"
10640
+ "<%= config.bin %> <%= command.id %> my-feature other-spec"
10637
10641
  ],
10638
10642
  "flags": {
10639
- "builtin": {
10640
- "description": "Show only built-in templates",
10641
- "exclusive": [
10642
- "custom"
10643
- ],
10644
- "name": "builtin",
10645
- "allowNo": false,
10646
- "type": "boolean"
10647
- },
10648
- "custom": {
10649
- "description": "Show only custom templates",
10650
- "exclusive": [
10651
- "builtin"
10652
- ],
10653
- "name": "custom",
10654
- "allowNo": false,
10655
- "type": "boolean"
10643
+ "project": {
10644
+ "char": "P",
10645
+ "description": "Project ID (uses first project if only one exists)",
10646
+ "name": "project",
10647
+ "hasDynamicHelp": false,
10648
+ "multiple": false,
10649
+ "type": "option"
10656
10650
  },
10657
10651
  "json": {
10658
- "description": "Output as JSON",
10652
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10659
10653
  "name": "json",
10660
10654
  "allowNo": false,
10661
10655
  "type": "boolean"
@@ -10663,65 +10657,89 @@
10663
10657
  },
10664
10658
  "hasDynamicHelp": false,
10665
10659
  "hiddenAliases": [],
10666
- "id": "template:ticket:list",
10660
+ "id": "spec:link:relates",
10667
10661
  "pluginAlias": "@proletariat/cli",
10668
10662
  "pluginName": "@proletariat/cli",
10669
10663
  "pluginType": "core",
10670
10664
  "strict": true,
10671
- "enableJsonFlag": false,
10672
10665
  "isESM": true,
10673
10666
  "relativePath": [
10674
10667
  "dist",
10675
10668
  "commands",
10676
- "template",
10677
- "ticket",
10678
- "list.js"
10669
+ "spec",
10670
+ "link",
10671
+ "relates.js"
10679
10672
  ]
10680
10673
  },
10681
- "template:ticket:save": {
10674
+ "spec:link:remove": {
10682
10675
  "aliases": [],
10683
10676
  "args": {
10684
- "ticket": {
10685
- "description": "Ticket ID to create template from",
10686
- "name": "ticket",
10687
- "required": false
10677
+ "id": {
10678
+ "description": "Spec ID",
10679
+ "name": "id",
10680
+ "required": true
10688
10681
  },
10689
- "name": {
10690
- "description": "Template name",
10691
- "name": "name",
10682
+ "target": {
10683
+ "description": "Target spec ID to unlink",
10684
+ "name": "target",
10692
10685
  "required": false
10693
10686
  }
10694
10687
  },
10695
- "description": "Create a template from an existing ticket",
10688
+ "description": "Remove a dependency from a spec",
10696
10689
  "examples": [
10697
- "<%= config.bin %> <%= command.id %> TKT-001 \"Bug Report Template\"",
10698
- "<%= config.bin %> <%= command.id %> TKT-042 \"Feature Request\" --description \"Standard feature request template\""
10690
+ "<%= config.bin %> <%= command.id %> my-feature other-spec",
10691
+ "<%= config.bin %> <%= command.id %> my-feature --all"
10699
10692
  ],
10700
10693
  "flags": {
10701
- "description": {
10702
- "char": "d",
10703
- "description": "Template description",
10704
- "name": "description",
10694
+ "project": {
10695
+ "char": "P",
10696
+ "description": "Project ID (uses first project if only one exists)",
10697
+ "name": "project",
10698
+ "hasDynamicHelp": false,
10699
+ "multiple": false,
10700
+ "type": "option"
10701
+ },
10702
+ "json": {
10703
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10704
+ "name": "json",
10705
+ "allowNo": false,
10706
+ "type": "boolean"
10707
+ },
10708
+ "type": {
10709
+ "char": "t",
10710
+ "description": "Dependency type",
10711
+ "name": "type",
10705
10712
  "hasDynamicHelp": false,
10706
10713
  "multiple": false,
10714
+ "options": [
10715
+ "depends_on",
10716
+ "relates_to",
10717
+ "duplicates"
10718
+ ],
10707
10719
  "type": "option"
10720
+ },
10721
+ "all": {
10722
+ "char": "a",
10723
+ "description": "Remove all dependencies",
10724
+ "name": "all",
10725
+ "allowNo": false,
10726
+ "type": "boolean"
10708
10727
  }
10709
10728
  },
10710
10729
  "hasDynamicHelp": false,
10711
10730
  "hiddenAliases": [],
10712
- "id": "template:ticket:save",
10731
+ "id": "spec:link:remove",
10713
10732
  "pluginAlias": "@proletariat/cli",
10714
10733
  "pluginName": "@proletariat/cli",
10715
10734
  "pluginType": "core",
10716
10735
  "strict": true,
10717
- "enableJsonFlag": false,
10718
10736
  "isESM": true,
10719
10737
  "relativePath": [
10720
10738
  "dist",
10721
10739
  "commands",
10722
- "template",
10723
- "ticket",
10724
- "save.js"
10740
+ "spec",
10741
+ "link",
10742
+ "remove.js"
10725
10743
  ]
10726
10744
  },
10727
10745
  "ticket:link:block": {
@@ -11476,5 +11494,5 @@
11476
11494
  ]
11477
11495
  }
11478
11496
  },
11479
- "version": "0.3.14"
11497
+ "version": "0.3.15"
11480
11498
  }