@proletariat/cli 0.3.1 → 0.3.2

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.
@@ -3864,6 +3864,207 @@
3864
3864
  "init.js"
3865
3865
  ]
3866
3866
  },
3867
+ "pr:create": {
3868
+ "aliases": [],
3869
+ "args": {
3870
+ "ticketId": {
3871
+ "description": "Ticket ID to link to PR - auto-detects from branch if not provided",
3872
+ "name": "ticketId",
3873
+ "required": false
3874
+ }
3875
+ },
3876
+ "description": "Create a GitHub pull request from the current branch",
3877
+ "examples": [
3878
+ "<%= config.bin %> <%= command.id %>",
3879
+ "<%= config.bin %> <%= command.id %> TKT-001",
3880
+ "<%= config.bin %> <%= command.id %> --draft",
3881
+ "<%= config.bin %> <%= command.id %> --base develop"
3882
+ ],
3883
+ "flags": {
3884
+ "base": {
3885
+ "char": "b",
3886
+ "description": "Base branch for the PR (defaults to main/master)",
3887
+ "name": "base",
3888
+ "hasDynamicHelp": false,
3889
+ "multiple": false,
3890
+ "type": "option"
3891
+ },
3892
+ "draft": {
3893
+ "char": "d",
3894
+ "description": "Create as draft PR",
3895
+ "name": "draft",
3896
+ "allowNo": false,
3897
+ "type": "boolean"
3898
+ },
3899
+ "no-link": {
3900
+ "description": "Skip linking PR to ticket",
3901
+ "name": "no-link",
3902
+ "allowNo": false,
3903
+ "type": "boolean"
3904
+ },
3905
+ "title": {
3906
+ "char": "t",
3907
+ "description": "PR title (auto-generated from ticket if not provided)",
3908
+ "name": "title",
3909
+ "hasDynamicHelp": false,
3910
+ "multiple": false,
3911
+ "type": "option"
3912
+ },
3913
+ "body": {
3914
+ "description": "PR body/description",
3915
+ "name": "body",
3916
+ "hasDynamicHelp": false,
3917
+ "multiple": false,
3918
+ "type": "option"
3919
+ },
3920
+ "json": {
3921
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
3922
+ "name": "json",
3923
+ "allowNo": false,
3924
+ "type": "boolean"
3925
+ }
3926
+ },
3927
+ "hasDynamicHelp": false,
3928
+ "hiddenAliases": [],
3929
+ "id": "pr:create",
3930
+ "pluginAlias": "@proletariat/cli",
3931
+ "pluginName": "@proletariat/cli",
3932
+ "pluginType": "core",
3933
+ "strict": true,
3934
+ "enableJsonFlag": false,
3935
+ "isESM": true,
3936
+ "relativePath": [
3937
+ "dist",
3938
+ "commands",
3939
+ "pr",
3940
+ "create.js"
3941
+ ]
3942
+ },
3943
+ "pr": {
3944
+ "aliases": [],
3945
+ "args": {},
3946
+ "description": "Interactive menu for pull request operations",
3947
+ "examples": [
3948
+ "<%= config.bin %> <%= command.id %>"
3949
+ ],
3950
+ "flags": {
3951
+ "json": {
3952
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
3953
+ "name": "json",
3954
+ "allowNo": false,
3955
+ "type": "boolean"
3956
+ }
3957
+ },
3958
+ "hasDynamicHelp": false,
3959
+ "hiddenAliases": [],
3960
+ "id": "pr",
3961
+ "pluginAlias": "@proletariat/cli",
3962
+ "pluginName": "@proletariat/cli",
3963
+ "pluginType": "core",
3964
+ "strict": true,
3965
+ "enableJsonFlag": false,
3966
+ "isESM": true,
3967
+ "relativePath": [
3968
+ "dist",
3969
+ "commands",
3970
+ "pr",
3971
+ "index.js"
3972
+ ]
3973
+ },
3974
+ "pr:link": {
3975
+ "aliases": [],
3976
+ "args": {
3977
+ "ticketId": {
3978
+ "description": "Ticket ID to link PR to",
3979
+ "name": "ticketId",
3980
+ "required": false
3981
+ }
3982
+ },
3983
+ "description": "Link an existing GitHub pull request to a ticket",
3984
+ "examples": [
3985
+ "<%= config.bin %> <%= command.id %>",
3986
+ "<%= config.bin %> <%= command.id %> TKT-001",
3987
+ "<%= config.bin %> <%= command.id %> TKT-001 --pr 123",
3988
+ "<%= config.bin %> <%= command.id %> TKT-001 --url https://github.com/owner/repo/pull/123"
3989
+ ],
3990
+ "flags": {
3991
+ "pr": {
3992
+ "char": "p",
3993
+ "description": "PR number to link",
3994
+ "name": "pr",
3995
+ "hasDynamicHelp": false,
3996
+ "multiple": false,
3997
+ "type": "option"
3998
+ },
3999
+ "url": {
4000
+ "char": "u",
4001
+ "description": "PR URL to link",
4002
+ "name": "url",
4003
+ "hasDynamicHelp": false,
4004
+ "multiple": false,
4005
+ "type": "option"
4006
+ },
4007
+ "json": {
4008
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4009
+ "name": "json",
4010
+ "allowNo": false,
4011
+ "type": "boolean"
4012
+ }
4013
+ },
4014
+ "hasDynamicHelp": false,
4015
+ "hiddenAliases": [],
4016
+ "id": "pr:link",
4017
+ "pluginAlias": "@proletariat/cli",
4018
+ "pluginName": "@proletariat/cli",
4019
+ "pluginType": "core",
4020
+ "strict": true,
4021
+ "enableJsonFlag": false,
4022
+ "isESM": true,
4023
+ "relativePath": [
4024
+ "dist",
4025
+ "commands",
4026
+ "pr",
4027
+ "link.js"
4028
+ ]
4029
+ },
4030
+ "pr:status": {
4031
+ "aliases": [],
4032
+ "args": {
4033
+ "ticketId": {
4034
+ "description": "Ticket ID to check PR status for",
4035
+ "name": "ticketId",
4036
+ "required": false
4037
+ }
4038
+ },
4039
+ "description": "View PR status for a ticket",
4040
+ "examples": [
4041
+ "<%= config.bin %> <%= command.id %>",
4042
+ "<%= config.bin %> <%= command.id %> TKT-001"
4043
+ ],
4044
+ "flags": {
4045
+ "json": {
4046
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4047
+ "name": "json",
4048
+ "allowNo": false,
4049
+ "type": "boolean"
4050
+ }
4051
+ },
4052
+ "hasDynamicHelp": false,
4053
+ "hiddenAliases": [],
4054
+ "id": "pr:status",
4055
+ "pluginAlias": "@proletariat/cli",
4056
+ "pluginName": "@proletariat/cli",
4057
+ "pluginType": "core",
4058
+ "strict": true,
4059
+ "enableJsonFlag": false,
4060
+ "isESM": true,
4061
+ "relativePath": [
4062
+ "dist",
4063
+ "commands",
4064
+ "pr",
4065
+ "status.js"
4066
+ ]
4067
+ },
3867
4068
  "session:attach": {
3868
4069
  "aliases": [],
3869
4070
  "args": {
@@ -4269,236 +4470,35 @@
4269
4470
  "view.js"
4270
4471
  ]
4271
4472
  },
4272
- "pr:create": {
4473
+ "template:delete": {
4273
4474
  "aliases": [],
4274
- "args": {
4275
- "ticketId": {
4276
- "description": "Ticket ID to link to PR - auto-detects from branch if not provided",
4277
- "name": "ticketId",
4278
- "required": false
4279
- }
4280
- },
4281
- "description": "Create a GitHub pull request from the current branch",
4475
+ "args": {},
4476
+ "description": "Delete templates (ticket or phase)",
4282
4477
  "examples": [
4283
4478
  "<%= config.bin %> <%= command.id %>",
4284
- "<%= config.bin %> <%= command.id %> TKT-001",
4285
- "<%= config.bin %> <%= command.id %> --draft",
4286
- "<%= config.bin %> <%= command.id %> --base develop"
4479
+ "<%= config.bin %> <%= command.id %> --type ticket",
4480
+ "<%= config.bin %> <%= command.id %> --type phase",
4481
+ "<%= config.bin %> <%= command.id %> --force"
4287
4482
  ],
4288
4483
  "flags": {
4289
- "base": {
4290
- "char": "b",
4291
- "description": "Base branch for the PR (defaults to main/master)",
4292
- "name": "base",
4484
+ "project": {
4485
+ "char": "P",
4486
+ "description": "Project ID (uses first project if only one exists)",
4487
+ "name": "project",
4293
4488
  "hasDynamicHelp": false,
4294
4489
  "multiple": false,
4295
4490
  "type": "option"
4296
4491
  },
4297
- "draft": {
4298
- "char": "d",
4299
- "description": "Create as draft PR",
4300
- "name": "draft",
4301
- "allowNo": false,
4302
- "type": "boolean"
4303
- },
4304
- "no-link": {
4305
- "description": "Skip linking PR to ticket",
4306
- "name": "no-link",
4307
- "allowNo": false,
4308
- "type": "boolean"
4309
- },
4310
- "title": {
4492
+ "type": {
4311
4493
  "char": "t",
4312
- "description": "PR title (auto-generated from ticket if not provided)",
4313
- "name": "title",
4494
+ "description": "Template type to delete",
4495
+ "name": "type",
4314
4496
  "hasDynamicHelp": false,
4315
4497
  "multiple": false,
4316
- "type": "option"
4317
- },
4318
- "body": {
4319
- "description": "PR body/description",
4320
- "name": "body",
4321
- "hasDynamicHelp": false,
4322
- "multiple": false,
4323
- "type": "option"
4324
- },
4325
- "json": {
4326
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4327
- "name": "json",
4328
- "allowNo": false,
4329
- "type": "boolean"
4330
- }
4331
- },
4332
- "hasDynamicHelp": false,
4333
- "hiddenAliases": [],
4334
- "id": "pr:create",
4335
- "pluginAlias": "@proletariat/cli",
4336
- "pluginName": "@proletariat/cli",
4337
- "pluginType": "core",
4338
- "strict": true,
4339
- "enableJsonFlag": false,
4340
- "isESM": true,
4341
- "relativePath": [
4342
- "dist",
4343
- "commands",
4344
- "pr",
4345
- "create.js"
4346
- ]
4347
- },
4348
- "pr": {
4349
- "aliases": [],
4350
- "args": {},
4351
- "description": "Interactive menu for pull request operations",
4352
- "examples": [
4353
- "<%= config.bin %> <%= command.id %>"
4354
- ],
4355
- "flags": {
4356
- "json": {
4357
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4358
- "name": "json",
4359
- "allowNo": false,
4360
- "type": "boolean"
4361
- }
4362
- },
4363
- "hasDynamicHelp": false,
4364
- "hiddenAliases": [],
4365
- "id": "pr",
4366
- "pluginAlias": "@proletariat/cli",
4367
- "pluginName": "@proletariat/cli",
4368
- "pluginType": "core",
4369
- "strict": true,
4370
- "enableJsonFlag": false,
4371
- "isESM": true,
4372
- "relativePath": [
4373
- "dist",
4374
- "commands",
4375
- "pr",
4376
- "index.js"
4377
- ]
4378
- },
4379
- "pr:link": {
4380
- "aliases": [],
4381
- "args": {
4382
- "ticketId": {
4383
- "description": "Ticket ID to link PR to",
4384
- "name": "ticketId",
4385
- "required": false
4386
- }
4387
- },
4388
- "description": "Link an existing GitHub pull request to a ticket",
4389
- "examples": [
4390
- "<%= config.bin %> <%= command.id %>",
4391
- "<%= config.bin %> <%= command.id %> TKT-001",
4392
- "<%= config.bin %> <%= command.id %> TKT-001 --pr 123",
4393
- "<%= config.bin %> <%= command.id %> TKT-001 --url https://github.com/owner/repo/pull/123"
4394
- ],
4395
- "flags": {
4396
- "pr": {
4397
- "char": "p",
4398
- "description": "PR number to link",
4399
- "name": "pr",
4400
- "hasDynamicHelp": false,
4401
- "multiple": false,
4402
- "type": "option"
4403
- },
4404
- "url": {
4405
- "char": "u",
4406
- "description": "PR URL to link",
4407
- "name": "url",
4408
- "hasDynamicHelp": false,
4409
- "multiple": false,
4410
- "type": "option"
4411
- },
4412
- "json": {
4413
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4414
- "name": "json",
4415
- "allowNo": false,
4416
- "type": "boolean"
4417
- }
4418
- },
4419
- "hasDynamicHelp": false,
4420
- "hiddenAliases": [],
4421
- "id": "pr:link",
4422
- "pluginAlias": "@proletariat/cli",
4423
- "pluginName": "@proletariat/cli",
4424
- "pluginType": "core",
4425
- "strict": true,
4426
- "enableJsonFlag": false,
4427
- "isESM": true,
4428
- "relativePath": [
4429
- "dist",
4430
- "commands",
4431
- "pr",
4432
- "link.js"
4433
- ]
4434
- },
4435
- "pr:status": {
4436
- "aliases": [],
4437
- "args": {
4438
- "ticketId": {
4439
- "description": "Ticket ID to check PR status for",
4440
- "name": "ticketId",
4441
- "required": false
4442
- }
4443
- },
4444
- "description": "View PR status for a ticket",
4445
- "examples": [
4446
- "<%= config.bin %> <%= command.id %>",
4447
- "<%= config.bin %> <%= command.id %> TKT-001"
4448
- ],
4449
- "flags": {
4450
- "json": {
4451
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4452
- "name": "json",
4453
- "allowNo": false,
4454
- "type": "boolean"
4455
- }
4456
- },
4457
- "hasDynamicHelp": false,
4458
- "hiddenAliases": [],
4459
- "id": "pr:status",
4460
- "pluginAlias": "@proletariat/cli",
4461
- "pluginName": "@proletariat/cli",
4462
- "pluginType": "core",
4463
- "strict": true,
4464
- "enableJsonFlag": false,
4465
- "isESM": true,
4466
- "relativePath": [
4467
- "dist",
4468
- "commands",
4469
- "pr",
4470
- "status.js"
4471
- ]
4472
- },
4473
- "template:delete": {
4474
- "aliases": [],
4475
- "args": {},
4476
- "description": "Delete templates (ticket or phase)",
4477
- "examples": [
4478
- "<%= config.bin %> <%= command.id %>",
4479
- "<%= config.bin %> <%= command.id %> --type ticket",
4480
- "<%= config.bin %> <%= command.id %> --type phase",
4481
- "<%= config.bin %> <%= command.id %> --force"
4482
- ],
4483
- "flags": {
4484
- "project": {
4485
- "char": "P",
4486
- "description": "Project ID (uses first project if only one exists)",
4487
- "name": "project",
4488
- "hasDynamicHelp": false,
4489
- "multiple": false,
4490
- "type": "option"
4491
- },
4492
- "type": {
4493
- "char": "t",
4494
- "description": "Template type to delete",
4495
- "name": "type",
4496
- "hasDynamicHelp": false,
4497
- "multiple": false,
4498
- "options": [
4499
- "ticket",
4500
- "phase"
4501
- ],
4498
+ "options": [
4499
+ "ticket",
4500
+ "phase"
4501
+ ],
4502
4502
  "type": "option"
4503
4503
  },
4504
4504
  "force": {
@@ -5414,234 +5414,85 @@
5414
5414
  "view.js"
5415
5415
  ]
5416
5416
  },
5417
- "workspace:add": {
5417
+ "ticket:bulk": {
5418
5418
  "aliases": [],
5419
- "args": {
5420
- "path": {
5421
- "description": "Path to the workspace to register",
5422
- "name": "path",
5423
- "required": true
5424
- }
5425
- },
5426
- "description": "Register an existing workspace in the machine config",
5419
+ "args": {},
5420
+ "description": "Manage tickets in bulk (interactive menu)",
5427
5421
  "examples": [
5428
- "<%= config.bin %> <%= command.id %> /path/to/workspace",
5429
- "<%= config.bin %> <%= command.id %> . --name my-workspace",
5430
- "<%= config.bin %> <%= command.id %> ~/projects/my-hq"
5422
+ "<%= config.bin %> <%= command.id %>"
5431
5423
  ],
5432
5424
  "flags": {
5433
- "name": {
5434
- "char": "n",
5435
- "description": "Custom name for the workspace (defaults to directory basename or workspace config name)",
5436
- "name": "name",
5425
+ "project": {
5426
+ "char": "P",
5427
+ "description": "Project ID (uses first project if only one exists)",
5428
+ "name": "project",
5437
5429
  "hasDynamicHelp": false,
5438
5430
  "multiple": false,
5439
5431
  "type": "option"
5432
+ },
5433
+ "json": {
5434
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5435
+ "name": "json",
5436
+ "allowNo": false,
5437
+ "type": "boolean"
5440
5438
  }
5441
5439
  },
5442
5440
  "hasDynamicHelp": false,
5443
5441
  "hiddenAliases": [],
5444
- "id": "workspace:add",
5442
+ "id": "ticket:bulk",
5445
5443
  "pluginAlias": "@proletariat/cli",
5446
5444
  "pluginName": "@proletariat/cli",
5447
5445
  "pluginType": "core",
5448
5446
  "strict": true,
5449
- "enableJsonFlag": false,
5450
5447
  "isESM": true,
5451
5448
  "relativePath": [
5452
5449
  "dist",
5453
5450
  "commands",
5454
- "workspace",
5455
- "add.js"
5451
+ "ticket",
5452
+ "bulk.js"
5456
5453
  ]
5457
5454
  },
5458
- "workspace:list": {
5455
+ "ticket:complete": {
5459
5456
  "aliases": [],
5460
- "args": {},
5461
- "description": "List all registered and discovered HQ workspaces",
5457
+ "args": {
5458
+ "ticketId": {
5459
+ "description": "Ticket ID - prompts with dropdown if not provided",
5460
+ "name": "ticketId",
5461
+ "required": false
5462
+ }
5463
+ },
5464
+ "description": "Mark ticket(s) as complete (move to Done column)",
5462
5465
  "examples": [
5463
5466
  "<%= config.bin %> <%= command.id %>",
5464
- "<%= config.bin %> <%= command.id %> --json"
5467
+ "<%= config.bin %> <%= command.id %> TICK-001",
5468
+ "<%= config.bin %> <%= command.id %> --bulk"
5465
5469
  ],
5466
5470
  "flags": {
5471
+ "project": {
5472
+ "char": "P",
5473
+ "description": "Project ID (uses first project if only one exists)",
5474
+ "name": "project",
5475
+ "hasDynamicHelp": false,
5476
+ "multiple": false,
5477
+ "type": "option"
5478
+ },
5467
5479
  "json": {
5468
- "description": "Output as JSON for machine-readable format",
5480
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5469
5481
  "name": "json",
5470
- "allowNo": false,
5471
- "type": "boolean"
5472
- }
5473
- },
5474
- "hasDynamicHelp": false,
5475
- "hiddenAliases": [],
5476
- "id": "workspace:list",
5477
- "pluginAlias": "@proletariat/cli",
5478
- "pluginName": "@proletariat/cli",
5479
- "pluginType": "core",
5480
- "strict": true,
5481
- "enableJsonFlag": false,
5482
- "isESM": true,
5483
- "relativePath": [
5484
- "dist",
5485
- "commands",
5486
- "workspace",
5487
- "list.js"
5488
- ]
5489
- },
5490
- "workspace:remove": {
5491
- "aliases": [],
5492
- "args": {
5493
- "nameOrPath": {
5494
- "description": "Workspace name or path to unregister",
5495
- "name": "nameOrPath",
5496
- "required": true
5497
- }
5498
- },
5499
- "description": "Unregister a workspace from the machine config (does NOT delete files)",
5500
- "examples": [
5501
- "<%= config.bin %> <%= command.id %> my-workspace",
5502
- "<%= config.bin %> <%= command.id %> /path/to/workspace"
5503
- ],
5504
- "flags": {
5505
- "json": {
5506
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5507
- "name": "json",
5508
- "allowNo": false,
5509
- "type": "boolean"
5510
- }
5511
- },
5512
- "hasDynamicHelp": false,
5513
- "hiddenAliases": [],
5514
- "id": "workspace:remove",
5515
- "pluginAlias": "@proletariat/cli",
5516
- "pluginName": "@proletariat/cli",
5517
- "pluginType": "core",
5518
- "strict": true,
5519
- "enableJsonFlag": false,
5520
- "isESM": true,
5521
- "relativePath": [
5522
- "dist",
5523
- "commands",
5524
- "workspace",
5525
- "remove.js"
5526
- ]
5527
- },
5528
- "workspace:use": {
5529
- "aliases": [],
5530
- "args": {
5531
- "nameOrPath": {
5532
- "description": "Workspace name or path",
5533
- "name": "nameOrPath",
5534
- "required": true
5535
- }
5536
- },
5537
- "description": "Set the active workspace",
5538
- "examples": [
5539
- "<%= config.bin %> <%= command.id %> my-workspace",
5540
- "<%= config.bin %> <%= command.id %> /path/to/workspace"
5541
- ],
5542
- "flags": {
5543
- "json": {
5544
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5545
- "name": "json",
5546
- "allowNo": false,
5547
- "type": "boolean"
5548
- }
5549
- },
5550
- "hasDynamicHelp": false,
5551
- "hiddenAliases": [],
5552
- "id": "workspace:use",
5553
- "pluginAlias": "@proletariat/cli",
5554
- "pluginName": "@proletariat/cli",
5555
- "pluginType": "core",
5556
- "strict": true,
5557
- "enableJsonFlag": false,
5558
- "isESM": true,
5559
- "relativePath": [
5560
- "dist",
5561
- "commands",
5562
- "workspace",
5563
- "use.js"
5564
- ]
5565
- },
5566
- "ticket:bulk": {
5567
- "aliases": [],
5568
- "args": {},
5569
- "description": "Manage tickets in bulk (interactive menu)",
5570
- "examples": [
5571
- "<%= config.bin %> <%= command.id %>"
5572
- ],
5573
- "flags": {
5574
- "project": {
5575
- "char": "P",
5576
- "description": "Project ID (uses first project if only one exists)",
5577
- "name": "project",
5578
- "hasDynamicHelp": false,
5579
- "multiple": false,
5580
- "type": "option"
5581
- },
5582
- "json": {
5583
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5584
- "name": "json",
5585
- "allowNo": false,
5586
- "type": "boolean"
5587
- }
5588
- },
5589
- "hasDynamicHelp": false,
5590
- "hiddenAliases": [],
5591
- "id": "ticket:bulk",
5592
- "pluginAlias": "@proletariat/cli",
5593
- "pluginName": "@proletariat/cli",
5594
- "pluginType": "core",
5595
- "strict": true,
5596
- "isESM": true,
5597
- "relativePath": [
5598
- "dist",
5599
- "commands",
5600
- "ticket",
5601
- "bulk.js"
5602
- ]
5603
- },
5604
- "ticket:complete": {
5605
- "aliases": [],
5606
- "args": {
5607
- "ticketId": {
5608
- "description": "Ticket ID - prompts with dropdown if not provided",
5609
- "name": "ticketId",
5610
- "required": false
5611
- }
5612
- },
5613
- "description": "Mark ticket(s) as complete (move to Done column)",
5614
- "examples": [
5615
- "<%= config.bin %> <%= command.id %>",
5616
- "<%= config.bin %> <%= command.id %> TICK-001",
5617
- "<%= config.bin %> <%= command.id %> --bulk"
5618
- ],
5619
- "flags": {
5620
- "project": {
5621
- "char": "P",
5622
- "description": "Project ID (uses first project if only one exists)",
5623
- "name": "project",
5624
- "hasDynamicHelp": false,
5625
- "multiple": false,
5626
- "type": "option"
5627
- },
5628
- "json": {
5629
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5630
- "name": "json",
5631
- "allowNo": false,
5632
- "type": "boolean"
5633
- },
5634
- "bulk": {
5635
- "char": "b",
5636
- "description": "Enable bulk mode to complete multiple tickets",
5637
- "name": "bulk",
5638
- "allowNo": false,
5639
- "type": "boolean"
5640
- },
5641
- "force": {
5642
- "char": "f",
5643
- "description": "Skip confirmation prompt (bulk mode only)",
5644
- "name": "force",
5482
+ "allowNo": false,
5483
+ "type": "boolean"
5484
+ },
5485
+ "bulk": {
5486
+ "char": "b",
5487
+ "description": "Enable bulk mode to complete multiple tickets",
5488
+ "name": "bulk",
5489
+ "allowNo": false,
5490
+ "type": "boolean"
5491
+ },
5492
+ "force": {
5493
+ "char": "f",
5494
+ "description": "Skip confirmation prompt (bulk mode only)",
5495
+ "name": "force",
5645
5496
  "allowNo": false,
5646
5497
  "type": "boolean"
5647
5498
  }
@@ -6712,69 +6563,58 @@
6712
6563
  "view.js"
6713
6564
  ]
6714
6565
  },
6715
- "work:complete": {
6566
+ "workspace:add": {
6716
6567
  "aliases": [],
6717
6568
  "args": {
6718
- "ticketId": {
6719
- "description": "Ticket ID - prompts with dropdown if not provided",
6720
- "name": "ticketId",
6721
- "required": false
6569
+ "path": {
6570
+ "description": "Path to the workspace to register",
6571
+ "name": "path",
6572
+ "required": true
6722
6573
  }
6723
6574
  },
6724
- "description": "Mark work as complete (moves ticket to Done column)",
6575
+ "description": "Register an existing workspace in the machine config",
6725
6576
  "examples": [
6726
- "<%= config.bin %> <%= command.id %>",
6727
- "<%= config.bin %> <%= command.id %> TKT-001"
6577
+ "<%= config.bin %> <%= command.id %> /path/to/workspace",
6578
+ "<%= config.bin %> <%= command.id %> . --name my-workspace",
6579
+ "<%= config.bin %> <%= command.id %> ~/projects/my-hq"
6728
6580
  ],
6729
6581
  "flags": {
6730
- "project": {
6731
- "char": "P",
6732
- "description": "Project ID (uses first project if only one exists)",
6733
- "name": "project",
6582
+ "name": {
6583
+ "char": "n",
6584
+ "description": "Custom name for the workspace (defaults to directory basename or workspace config name)",
6585
+ "name": "name",
6734
6586
  "hasDynamicHelp": false,
6735
6587
  "multiple": false,
6736
6588
  "type": "option"
6737
- },
6738
- "json": {
6739
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6740
- "name": "json",
6741
- "allowNo": false,
6742
- "type": "boolean"
6743
6589
  }
6744
6590
  },
6745
6591
  "hasDynamicHelp": false,
6746
6592
  "hiddenAliases": [],
6747
- "id": "work:complete",
6593
+ "id": "workspace:add",
6748
6594
  "pluginAlias": "@proletariat/cli",
6749
6595
  "pluginName": "@proletariat/cli",
6750
6596
  "pluginType": "core",
6751
6597
  "strict": true,
6598
+ "enableJsonFlag": false,
6752
6599
  "isESM": true,
6753
6600
  "relativePath": [
6754
6601
  "dist",
6755
6602
  "commands",
6756
- "work",
6757
- "complete.js"
6603
+ "workspace",
6604
+ "add.js"
6758
6605
  ]
6759
6606
  },
6760
- "work": {
6607
+ "workspace:list": {
6761
6608
  "aliases": [],
6762
6609
  "args": {},
6763
- "description": "Interactive menu for work operations (ownership, assignment, execution)",
6610
+ "description": "List all registered and discovered HQ workspaces",
6764
6611
  "examples": [
6765
- "<%= config.bin %> <%= command.id %>"
6612
+ "<%= config.bin %> <%= command.id %>",
6613
+ "<%= config.bin %> <%= command.id %> --json"
6766
6614
  ],
6767
6615
  "flags": {
6768
- "project": {
6769
- "char": "P",
6770
- "description": "Project ID (uses first project if only one exists)",
6771
- "name": "project",
6772
- "hasDynamicHelp": false,
6773
- "multiple": false,
6774
- "type": "option"
6775
- },
6776
6616
  "json": {
6777
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6617
+ "description": "Output as JSON for machine-readable format",
6778
6618
  "name": "json",
6779
6619
  "allowNo": false,
6780
6620
  "type": "boolean"
@@ -6782,35 +6622,195 @@
6782
6622
  },
6783
6623
  "hasDynamicHelp": false,
6784
6624
  "hiddenAliases": [],
6785
- "id": "work",
6625
+ "id": "workspace:list",
6786
6626
  "pluginAlias": "@proletariat/cli",
6787
6627
  "pluginName": "@proletariat/cli",
6788
6628
  "pluginType": "core",
6789
6629
  "strict": true,
6630
+ "enableJsonFlag": false,
6790
6631
  "isESM": true,
6791
6632
  "relativePath": [
6792
6633
  "dist",
6793
6634
  "commands",
6794
- "work",
6795
- "index.js"
6635
+ "workspace",
6636
+ "list.js"
6796
6637
  ]
6797
6638
  },
6798
- "work:ready": {
6639
+ "workspace:remove": {
6799
6640
  "aliases": [],
6800
6641
  "args": {
6801
- "ticketId": {
6802
- "description": "Ticket ID - prompts with dropdown if not provided",
6803
- "name": "ticketId",
6804
- "required": false
6642
+ "nameOrPath": {
6643
+ "description": "Workspace name or path to unregister",
6644
+ "name": "nameOrPath",
6645
+ "required": true
6805
6646
  }
6806
6647
  },
6807
- "description": "Mark work as ready for review (moves ticket to In Review column)",
6648
+ "description": "Unregister a workspace from the machine config (does NOT delete files)",
6808
6649
  "examples": [
6809
- "<%= config.bin %> <%= command.id %>",
6810
- "<%= config.bin %> <%= command.id %> TKT-001",
6811
- "<%= config.bin %> <%= command.id %> --pr",
6812
- "<%= config.bin %> <%= command.id %> TKT-001 --pr --draft",
6813
- "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
6650
+ "<%= config.bin %> <%= command.id %> my-workspace",
6651
+ "<%= config.bin %> <%= command.id %> /path/to/workspace"
6652
+ ],
6653
+ "flags": {
6654
+ "json": {
6655
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6656
+ "name": "json",
6657
+ "allowNo": false,
6658
+ "type": "boolean"
6659
+ }
6660
+ },
6661
+ "hasDynamicHelp": false,
6662
+ "hiddenAliases": [],
6663
+ "id": "workspace:remove",
6664
+ "pluginAlias": "@proletariat/cli",
6665
+ "pluginName": "@proletariat/cli",
6666
+ "pluginType": "core",
6667
+ "strict": true,
6668
+ "enableJsonFlag": false,
6669
+ "isESM": true,
6670
+ "relativePath": [
6671
+ "dist",
6672
+ "commands",
6673
+ "workspace",
6674
+ "remove.js"
6675
+ ]
6676
+ },
6677
+ "workspace:use": {
6678
+ "aliases": [],
6679
+ "args": {
6680
+ "nameOrPath": {
6681
+ "description": "Workspace name or path",
6682
+ "name": "nameOrPath",
6683
+ "required": true
6684
+ }
6685
+ },
6686
+ "description": "Set the active workspace",
6687
+ "examples": [
6688
+ "<%= config.bin %> <%= command.id %> my-workspace",
6689
+ "<%= config.bin %> <%= command.id %> /path/to/workspace"
6690
+ ],
6691
+ "flags": {
6692
+ "json": {
6693
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6694
+ "name": "json",
6695
+ "allowNo": false,
6696
+ "type": "boolean"
6697
+ }
6698
+ },
6699
+ "hasDynamicHelp": false,
6700
+ "hiddenAliases": [],
6701
+ "id": "workspace:use",
6702
+ "pluginAlias": "@proletariat/cli",
6703
+ "pluginName": "@proletariat/cli",
6704
+ "pluginType": "core",
6705
+ "strict": true,
6706
+ "enableJsonFlag": false,
6707
+ "isESM": true,
6708
+ "relativePath": [
6709
+ "dist",
6710
+ "commands",
6711
+ "workspace",
6712
+ "use.js"
6713
+ ]
6714
+ },
6715
+ "work:complete": {
6716
+ "aliases": [],
6717
+ "args": {
6718
+ "ticketId": {
6719
+ "description": "Ticket ID - prompts with dropdown if not provided",
6720
+ "name": "ticketId",
6721
+ "required": false
6722
+ }
6723
+ },
6724
+ "description": "Mark work as complete (moves ticket to Done column)",
6725
+ "examples": [
6726
+ "<%= config.bin %> <%= command.id %>",
6727
+ "<%= config.bin %> <%= command.id %> TKT-001"
6728
+ ],
6729
+ "flags": {
6730
+ "project": {
6731
+ "char": "P",
6732
+ "description": "Project ID (uses first project if only one exists)",
6733
+ "name": "project",
6734
+ "hasDynamicHelp": false,
6735
+ "multiple": false,
6736
+ "type": "option"
6737
+ },
6738
+ "json": {
6739
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6740
+ "name": "json",
6741
+ "allowNo": false,
6742
+ "type": "boolean"
6743
+ }
6744
+ },
6745
+ "hasDynamicHelp": false,
6746
+ "hiddenAliases": [],
6747
+ "id": "work:complete",
6748
+ "pluginAlias": "@proletariat/cli",
6749
+ "pluginName": "@proletariat/cli",
6750
+ "pluginType": "core",
6751
+ "strict": true,
6752
+ "isESM": true,
6753
+ "relativePath": [
6754
+ "dist",
6755
+ "commands",
6756
+ "work",
6757
+ "complete.js"
6758
+ ]
6759
+ },
6760
+ "work": {
6761
+ "aliases": [],
6762
+ "args": {},
6763
+ "description": "Interactive menu for work operations (ownership, assignment, execution)",
6764
+ "examples": [
6765
+ "<%= config.bin %> <%= command.id %>"
6766
+ ],
6767
+ "flags": {
6768
+ "project": {
6769
+ "char": "P",
6770
+ "description": "Project ID (uses first project if only one exists)",
6771
+ "name": "project",
6772
+ "hasDynamicHelp": false,
6773
+ "multiple": false,
6774
+ "type": "option"
6775
+ },
6776
+ "json": {
6777
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6778
+ "name": "json",
6779
+ "allowNo": false,
6780
+ "type": "boolean"
6781
+ }
6782
+ },
6783
+ "hasDynamicHelp": false,
6784
+ "hiddenAliases": [],
6785
+ "id": "work",
6786
+ "pluginAlias": "@proletariat/cli",
6787
+ "pluginName": "@proletariat/cli",
6788
+ "pluginType": "core",
6789
+ "strict": true,
6790
+ "isESM": true,
6791
+ "relativePath": [
6792
+ "dist",
6793
+ "commands",
6794
+ "work",
6795
+ "index.js"
6796
+ ]
6797
+ },
6798
+ "work:ready": {
6799
+ "aliases": [],
6800
+ "args": {
6801
+ "ticketId": {
6802
+ "description": "Ticket ID - prompts with dropdown if not provided",
6803
+ "name": "ticketId",
6804
+ "required": false
6805
+ }
6806
+ },
6807
+ "description": "Mark work as ready for review (moves ticket to In Review column)",
6808
+ "examples": [
6809
+ "<%= config.bin %> <%= command.id %>",
6810
+ "<%= config.bin %> <%= command.id %> TKT-001",
6811
+ "<%= config.bin %> <%= command.id %> --pr",
6812
+ "<%= config.bin %> <%= command.id %> TKT-001 --pr --draft",
6813
+ "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
6814
6814
  ],
6815
6815
  "flags": {
6816
6816
  "project": {
@@ -8180,43 +8180,86 @@
8180
8180
  "update.js"
8181
8181
  ]
8182
8182
  },
8183
- "epic:link:block": {
8183
+ "agent:temp:cleanup": {
8184
8184
  "aliases": [],
8185
8185
  "args": {
8186
- "id": {
8187
- "description": "Epic ID that will be blocked",
8188
- "name": "id",
8189
- "required": true
8190
- },
8191
- "blocker": {
8192
- "description": "Epic ID that blocks this epic",
8193
- "name": "blocker",
8186
+ "name": {
8187
+ "description": "Agent name to clean up",
8188
+ "name": "name",
8194
8189
  "required": false
8195
8190
  }
8196
8191
  },
8197
- "description": "Add a blocking dependency (epic is blocked by another)",
8192
+ "description": "Clean up agent resources (containers, directories, tmux sessions)",
8198
8193
  "examples": [
8199
- "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002 # EPIC-001 is blocked by EPIC-002"
8194
+ "<%= config.bin %> <%= command.id %> bold-bezos-1",
8195
+ "<%= config.bin %> <%= command.id %> --temp",
8196
+ "<%= config.bin %> <%= command.id %> --temp --dry-run",
8197
+ "<%= config.bin %> <%= command.id %> --all",
8198
+ "<%= config.bin %> <%= command.id %> --json"
8200
8199
  ],
8201
8200
  "flags": {
8202
8201
  "project": {
8203
8202
  "char": "P",
8204
- "description": "Project ID",
8203
+ "description": "Project ID (uses first project if only one exists)",
8205
8204
  "name": "project",
8206
8205
  "hasDynamicHelp": false,
8207
8206
  "multiple": false,
8208
8207
  "type": "option"
8209
8208
  },
8209
+ "temp": {
8210
+ "description": "Clean up all ephemeral agents with no running work",
8211
+ "name": "temp",
8212
+ "allowNo": false,
8213
+ "type": "boolean"
8214
+ },
8215
+ "all": {
8216
+ "description": "Clean up ALL ephemeral agents (including those with running work)",
8217
+ "name": "all",
8218
+ "allowNo": false,
8219
+ "type": "boolean"
8220
+ },
8221
+ "dry-run": {
8222
+ "description": "Show what would be cleaned without actually doing it",
8223
+ "name": "dry-run",
8224
+ "allowNo": false,
8225
+ "type": "boolean"
8226
+ },
8227
+ "yes": {
8228
+ "char": "y",
8229
+ "description": "Skip confirmation prompt",
8230
+ "name": "yes",
8231
+ "allowNo": false,
8232
+ "type": "boolean"
8233
+ },
8234
+ "force": {
8235
+ "char": "f",
8236
+ "description": "Force cleanup even if there is uncommitted/unpushed work",
8237
+ "name": "force",
8238
+ "allowNo": false,
8239
+ "type": "boolean"
8240
+ },
8241
+ "push": {
8242
+ "description": "Push unpushed commits before cleanup",
8243
+ "name": "push",
8244
+ "allowNo": false,
8245
+ "type": "boolean"
8246
+ },
8210
8247
  "json": {
8211
8248
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8212
8249
  "name": "json",
8213
8250
  "allowNo": false,
8214
8251
  "type": "boolean"
8252
+ },
8253
+ "no-interactive": {
8254
+ "description": "Alias for --json flag",
8255
+ "name": "no-interactive",
8256
+ "allowNo": false,
8257
+ "type": "boolean"
8215
8258
  }
8216
8259
  },
8217
8260
  "hasDynamicHelp": false,
8218
8261
  "hiddenAliases": [],
8219
- "id": "epic:link:block",
8262
+ "id": "agent:temp:cleanup",
8220
8263
  "pluginAlias": "@proletariat/cli",
8221
8264
  "pluginName": "@proletariat/cli",
8222
8265
  "pluginType": "core",
@@ -8225,359 +8268,15 @@
8225
8268
  "relativePath": [
8226
8269
  "dist",
8227
8270
  "commands",
8228
- "epic",
8229
- "link",
8230
- "block.js"
8271
+ "agent",
8272
+ "temp",
8273
+ "cleanup.js"
8231
8274
  ]
8232
8275
  },
8233
- "epic:link:duplicates": {
8276
+ "agent:temp": {
8234
8277
  "aliases": [],
8235
- "args": {
8236
- "id": {
8237
- "description": "Duplicate epic ID",
8238
- "name": "id",
8239
- "required": true
8240
- },
8241
- "original": {
8242
- "description": "Original epic ID",
8243
- "name": "original",
8244
- "required": false
8245
- }
8246
- },
8247
- "description": "Mark an epic as duplicate of another",
8248
- "examples": [
8249
- "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002"
8250
- ],
8251
- "flags": {
8252
- "project": {
8253
- "char": "P",
8254
- "description": "Project ID",
8255
- "name": "project",
8256
- "hasDynamicHelp": false,
8257
- "multiple": false,
8258
- "type": "option"
8259
- },
8260
- "json": {
8261
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8262
- "name": "json",
8263
- "allowNo": false,
8264
- "type": "boolean"
8265
- }
8266
- },
8267
- "hasDynamicHelp": false,
8268
- "hiddenAliases": [],
8269
- "id": "epic:link:duplicates",
8270
- "pluginAlias": "@proletariat/cli",
8271
- "pluginName": "@proletariat/cli",
8272
- "pluginType": "core",
8273
- "strict": true,
8274
- "isESM": true,
8275
- "relativePath": [
8276
- "dist",
8277
- "commands",
8278
- "epic",
8279
- "link",
8280
- "duplicates.js"
8281
- ]
8282
- },
8283
- "epic:link": {
8284
- "aliases": [],
8285
- "args": {
8286
- "id": {
8287
- "description": "Epic ID",
8288
- "name": "id",
8289
- "required": false
8290
- }
8291
- },
8292
- "description": "Manage epic dependencies (links)",
8293
- "examples": [
8294
- "<%= config.bin %> <%= command.id %> EPIC-001 # List dependencies",
8295
- "<%= config.bin %> <%= command.id %> EPIC-001 --blocks EPIC-002 # EPIC-001 is blocked by EPIC-002",
8296
- "<%= config.bin %> <%= command.id %> EPIC-001 --relates EPIC-002 # EPIC-001 relates to EPIC-002",
8297
- "<%= config.bin %> <%= command.id %> EPIC-001 --duplicates EPIC-002",
8298
- "<%= config.bin %> <%= command.id %> EPIC-001 --all # Show all links"
8299
- ],
8300
- "flags": {
8301
- "project": {
8302
- "char": "P",
8303
- "description": "Project ID (default: \"default\")",
8304
- "name": "project",
8305
- "hasDynamicHelp": false,
8306
- "multiple": false,
8307
- "type": "option"
8308
- },
8309
- "blocks": {
8310
- "char": "b",
8311
- "description": "Add blocking dependency: this epic is blocked by TARGET",
8312
- "name": "blocks",
8313
- "hasDynamicHelp": false,
8314
- "multiple": false,
8315
- "type": "option"
8316
- },
8317
- "relates": {
8318
- "char": "r",
8319
- "description": "Add relates_to dependency",
8320
- "name": "relates",
8321
- "hasDynamicHelp": false,
8322
- "multiple": false,
8323
- "type": "option"
8324
- },
8325
- "duplicates": {
8326
- "char": "d",
8327
- "description": "Add duplicates dependency",
8328
- "name": "duplicates",
8329
- "hasDynamicHelp": false,
8330
- "multiple": false,
8331
- "type": "option"
8332
- },
8333
- "all": {
8334
- "char": "a",
8335
- "description": "Show all dependencies (blockers and blocking)",
8336
- "name": "all",
8337
- "allowNo": false,
8338
- "type": "boolean"
8339
- },
8340
- "json": {
8341
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8342
- "name": "json",
8343
- "allowNo": false,
8344
- "type": "boolean"
8345
- }
8346
- },
8347
- "hasDynamicHelp": false,
8348
- "hiddenAliases": [],
8349
- "id": "epic:link",
8350
- "pluginAlias": "@proletariat/cli",
8351
- "pluginName": "@proletariat/cli",
8352
- "pluginType": "core",
8353
- "strict": true,
8354
- "isESM": true,
8355
- "relativePath": [
8356
- "dist",
8357
- "commands",
8358
- "epic",
8359
- "link",
8360
- "index.js"
8361
- ]
8362
- },
8363
- "epic:link:relates": {
8364
- "aliases": [],
8365
- "args": {
8366
- "id": {
8367
- "description": "Epic ID",
8368
- "name": "id",
8369
- "required": true
8370
- },
8371
- "target": {
8372
- "description": "Related epic ID",
8373
- "name": "target",
8374
- "required": false
8375
- }
8376
- },
8377
- "description": "Add a relates_to dependency (informational link)",
8378
- "examples": [
8379
- "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002"
8380
- ],
8381
- "flags": {
8382
- "project": {
8383
- "char": "P",
8384
- "description": "Project ID",
8385
- "name": "project",
8386
- "hasDynamicHelp": false,
8387
- "multiple": false,
8388
- "type": "option"
8389
- },
8390
- "json": {
8391
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8392
- "name": "json",
8393
- "allowNo": false,
8394
- "type": "boolean"
8395
- }
8396
- },
8397
- "hasDynamicHelp": false,
8398
- "hiddenAliases": [],
8399
- "id": "epic:link:relates",
8400
- "pluginAlias": "@proletariat/cli",
8401
- "pluginName": "@proletariat/cli",
8402
- "pluginType": "core",
8403
- "strict": true,
8404
- "isESM": true,
8405
- "relativePath": [
8406
- "dist",
8407
- "commands",
8408
- "epic",
8409
- "link",
8410
- "relates.js"
8411
- ]
8412
- },
8413
- "epic:link:remove": {
8414
- "aliases": [],
8415
- "args": {
8416
- "id": {
8417
- "description": "Epic ID",
8418
- "name": "id",
8419
- "required": true
8420
- },
8421
- "target": {
8422
- "description": "Target epic ID to unlink",
8423
- "name": "target",
8424
- "required": false
8425
- }
8426
- },
8427
- "description": "Remove a dependency from an epic",
8428
- "examples": [
8429
- "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002",
8430
- "<%= config.bin %> <%= command.id %> EPIC-001 --all"
8431
- ],
8432
- "flags": {
8433
- "project": {
8434
- "char": "P",
8435
- "description": "Project ID",
8436
- "name": "project",
8437
- "hasDynamicHelp": false,
8438
- "multiple": false,
8439
- "type": "option"
8440
- },
8441
- "type": {
8442
- "char": "t",
8443
- "description": "Dependency type",
8444
- "name": "type",
8445
- "hasDynamicHelp": false,
8446
- "multiple": false,
8447
- "options": [
8448
- "blocks",
8449
- "relates_to",
8450
- "duplicates"
8451
- ],
8452
- "type": "option"
8453
- },
8454
- "all": {
8455
- "char": "a",
8456
- "description": "Remove all dependencies",
8457
- "name": "all",
8458
- "allowNo": false,
8459
- "type": "boolean"
8460
- },
8461
- "json": {
8462
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8463
- "name": "json",
8464
- "allowNo": false,
8465
- "type": "boolean"
8466
- }
8467
- },
8468
- "hasDynamicHelp": false,
8469
- "hiddenAliases": [],
8470
- "id": "epic:link:remove",
8471
- "pluginAlias": "@proletariat/cli",
8472
- "pluginName": "@proletariat/cli",
8473
- "pluginType": "core",
8474
- "strict": true,
8475
- "isESM": true,
8476
- "relativePath": [
8477
- "dist",
8478
- "commands",
8479
- "epic",
8480
- "link",
8481
- "remove.js"
8482
- ]
8483
- },
8484
- "agent:temp:cleanup": {
8485
- "aliases": [],
8486
- "args": {
8487
- "name": {
8488
- "description": "Agent name to clean up",
8489
- "name": "name",
8490
- "required": false
8491
- }
8492
- },
8493
- "description": "Clean up agent resources (containers, directories, tmux sessions)",
8494
- "examples": [
8495
- "<%= config.bin %> <%= command.id %> bold-bezos-1",
8496
- "<%= config.bin %> <%= command.id %> --temp",
8497
- "<%= config.bin %> <%= command.id %> --temp --dry-run",
8498
- "<%= config.bin %> <%= command.id %> --all",
8499
- "<%= config.bin %> <%= command.id %> --json"
8500
- ],
8501
- "flags": {
8502
- "project": {
8503
- "char": "P",
8504
- "description": "Project ID (uses first project if only one exists)",
8505
- "name": "project",
8506
- "hasDynamicHelp": false,
8507
- "multiple": false,
8508
- "type": "option"
8509
- },
8510
- "temp": {
8511
- "description": "Clean up all ephemeral agents with no running work",
8512
- "name": "temp",
8513
- "allowNo": false,
8514
- "type": "boolean"
8515
- },
8516
- "all": {
8517
- "description": "Clean up ALL ephemeral agents (including those with running work)",
8518
- "name": "all",
8519
- "allowNo": false,
8520
- "type": "boolean"
8521
- },
8522
- "dry-run": {
8523
- "description": "Show what would be cleaned without actually doing it",
8524
- "name": "dry-run",
8525
- "allowNo": false,
8526
- "type": "boolean"
8527
- },
8528
- "yes": {
8529
- "char": "y",
8530
- "description": "Skip confirmation prompt",
8531
- "name": "yes",
8532
- "allowNo": false,
8533
- "type": "boolean"
8534
- },
8535
- "force": {
8536
- "char": "f",
8537
- "description": "Force cleanup even if there is uncommitted/unpushed work",
8538
- "name": "force",
8539
- "allowNo": false,
8540
- "type": "boolean"
8541
- },
8542
- "push": {
8543
- "description": "Push unpushed commits before cleanup",
8544
- "name": "push",
8545
- "allowNo": false,
8546
- "type": "boolean"
8547
- },
8548
- "json": {
8549
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8550
- "name": "json",
8551
- "allowNo": false,
8552
- "type": "boolean"
8553
- },
8554
- "no-interactive": {
8555
- "description": "Alias for --json flag",
8556
- "name": "no-interactive",
8557
- "allowNo": false,
8558
- "type": "boolean"
8559
- }
8560
- },
8561
- "hasDynamicHelp": false,
8562
- "hiddenAliases": [],
8563
- "id": "agent:temp:cleanup",
8564
- "pluginAlias": "@proletariat/cli",
8565
- "pluginName": "@proletariat/cli",
8566
- "pluginType": "core",
8567
- "strict": true,
8568
- "isESM": true,
8569
- "relativePath": [
8570
- "dist",
8571
- "commands",
8572
- "agent",
8573
- "temp",
8574
- "cleanup.js"
8575
- ]
8576
- },
8577
- "agent:temp": {
8578
- "aliases": [],
8579
- "args": {},
8580
- "description": "Manage temporary (ephemeral) agents",
8278
+ "args": {},
8279
+ "description": "Manage temporary (ephemeral) agents",
8581
8280
  "examples": [
8582
8281
  "<%= config.bin %> <%= command.id %> list",
8583
8282
  "<%= config.bin %> <%= command.id %> cleanup --temp",
@@ -9023,7 +8722,180 @@
9023
8722
  },
9024
8723
  "hasDynamicHelp": false,
9025
8724
  "hiddenAliases": [],
9026
- "id": "template:ticket:list",
8725
+ "id": "template:ticket:list",
8726
+ "pluginAlias": "@proletariat/cli",
8727
+ "pluginName": "@proletariat/cli",
8728
+ "pluginType": "core",
8729
+ "strict": true,
8730
+ "enableJsonFlag": false,
8731
+ "isESM": true,
8732
+ "relativePath": [
8733
+ "dist",
8734
+ "commands",
8735
+ "template",
8736
+ "ticket",
8737
+ "list.js"
8738
+ ]
8739
+ },
8740
+ "template:ticket:save": {
8741
+ "aliases": [],
8742
+ "args": {
8743
+ "ticket": {
8744
+ "description": "Ticket ID to create template from",
8745
+ "name": "ticket",
8746
+ "required": false
8747
+ },
8748
+ "name": {
8749
+ "description": "Template name",
8750
+ "name": "name",
8751
+ "required": false
8752
+ }
8753
+ },
8754
+ "description": "Create a template from an existing ticket",
8755
+ "examples": [
8756
+ "<%= config.bin %> <%= command.id %> TKT-001 \"Bug Report Template\"",
8757
+ "<%= config.bin %> <%= command.id %> TKT-042 \"Feature Request\" --description \"Standard feature request template\""
8758
+ ],
8759
+ "flags": {
8760
+ "description": {
8761
+ "char": "d",
8762
+ "description": "Template description",
8763
+ "name": "description",
8764
+ "hasDynamicHelp": false,
8765
+ "multiple": false,
8766
+ "type": "option"
8767
+ }
8768
+ },
8769
+ "hasDynamicHelp": false,
8770
+ "hiddenAliases": [],
8771
+ "id": "template:ticket:save",
8772
+ "pluginAlias": "@proletariat/cli",
8773
+ "pluginName": "@proletariat/cli",
8774
+ "pluginType": "core",
8775
+ "strict": true,
8776
+ "enableJsonFlag": false,
8777
+ "isESM": true,
8778
+ "relativePath": [
8779
+ "dist",
8780
+ "commands",
8781
+ "template",
8782
+ "ticket",
8783
+ "save.js"
8784
+ ]
8785
+ },
8786
+ "agent:staff:add": {
8787
+ "aliases": [],
8788
+ "args": {
8789
+ "names": {
8790
+ "description": "Agent names to add (space-separated)",
8791
+ "name": "names",
8792
+ "required": false
8793
+ }
8794
+ },
8795
+ "description": "Add new agents to the workspace",
8796
+ "examples": [
8797
+ "<%= config.bin %> <%= command.id %> zeus",
8798
+ "<%= config.bin %> <%= command.id %> agent-1 agent-2",
8799
+ "<%= config.bin %> <%= command.id %> --theme billionaires",
8800
+ "<%= config.bin %> <%= command.id %> my-agent --no-container"
8801
+ ],
8802
+ "flags": {
8803
+ "no-container": {
8804
+ "description": "Skip devcontainer setup (not recommended for autonomous agents)",
8805
+ "name": "no-container",
8806
+ "allowNo": false,
8807
+ "type": "boolean"
8808
+ },
8809
+ "theme": {
8810
+ "char": "t",
8811
+ "description": "Pick agent name(s) from a theme (billionaires, toyotas, companies, or custom)",
8812
+ "name": "theme",
8813
+ "hasDynamicHelp": false,
8814
+ "multiple": false,
8815
+ "type": "option"
8816
+ },
8817
+ "json": {
8818
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8819
+ "name": "json",
8820
+ "allowNo": false,
8821
+ "type": "boolean"
8822
+ }
8823
+ },
8824
+ "hasDynamicHelp": false,
8825
+ "hiddenAliases": [],
8826
+ "id": "agent:staff:add",
8827
+ "pluginAlias": "@proletariat/cli",
8828
+ "pluginName": "@proletariat/cli",
8829
+ "pluginType": "core",
8830
+ "strict": false,
8831
+ "enableJsonFlag": false,
8832
+ "isESM": true,
8833
+ "relativePath": [
8834
+ "dist",
8835
+ "commands",
8836
+ "agent",
8837
+ "staff",
8838
+ "add.js"
8839
+ ]
8840
+ },
8841
+ "agent:staff": {
8842
+ "aliases": [],
8843
+ "args": {},
8844
+ "description": "Manage staff (persistent) agents",
8845
+ "examples": [
8846
+ "<%= config.bin %> <%= command.id %> list",
8847
+ "<%= config.bin %> <%= command.id %> add",
8848
+ "<%= config.bin %> <%= command.id %> remove camry"
8849
+ ],
8850
+ "flags": {
8851
+ "project": {
8852
+ "char": "P",
8853
+ "description": "Project ID (uses first project if only one exists)",
8854
+ "name": "project",
8855
+ "hasDynamicHelp": false,
8856
+ "multiple": false,
8857
+ "type": "option"
8858
+ },
8859
+ "json": {
8860
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8861
+ "name": "json",
8862
+ "allowNo": false,
8863
+ "type": "boolean"
8864
+ },
8865
+ "no-interactive": {
8866
+ "description": "Alias for --json flag",
8867
+ "name": "no-interactive",
8868
+ "allowNo": false,
8869
+ "type": "boolean"
8870
+ }
8871
+ },
8872
+ "hasDynamicHelp": false,
8873
+ "hiddenAliases": [],
8874
+ "id": "agent:staff",
8875
+ "pluginAlias": "@proletariat/cli",
8876
+ "pluginName": "@proletariat/cli",
8877
+ "pluginType": "core",
8878
+ "strict": true,
8879
+ "isESM": true,
8880
+ "relativePath": [
8881
+ "dist",
8882
+ "commands",
8883
+ "agent",
8884
+ "staff",
8885
+ "index.js"
8886
+ ]
8887
+ },
8888
+ "agent:staff:list": {
8889
+ "aliases": [],
8890
+ "args": {},
8891
+ "description": "List all staff (persistent) agents and their status",
8892
+ "examples": [
8893
+ "<%= config.bin %> <%= command.id %>"
8894
+ ],
8895
+ "flags": {},
8896
+ "hasDynamicHelp": false,
8897
+ "hiddenAliases": [],
8898
+ "id": "agent:staff:list",
9027
8899
  "pluginAlias": "@proletariat/cli",
9028
8900
  "pluginName": "@proletariat/cli",
9029
8901
  "pluginType": "core",
@@ -9033,55 +8905,55 @@
9033
8905
  "relativePath": [
9034
8906
  "dist",
9035
8907
  "commands",
9036
- "template",
9037
- "ticket",
8908
+ "agent",
8909
+ "staff",
9038
8910
  "list.js"
9039
8911
  ]
9040
8912
  },
9041
- "template:ticket:save": {
8913
+ "agent:staff:remove": {
9042
8914
  "aliases": [],
9043
8915
  "args": {
9044
- "ticket": {
9045
- "description": "Ticket ID to create template from",
9046
- "name": "ticket",
9047
- "required": false
9048
- },
9049
8916
  "name": {
9050
- "description": "Template name",
8917
+ "description": "Agent name to remove",
9051
8918
  "name": "name",
9052
8919
  "required": false
9053
8920
  }
9054
8921
  },
9055
- "description": "Create a template from an existing ticket",
8922
+ "description": "Remove a specific agent from the workspace",
9056
8923
  "examples": [
9057
- "<%= config.bin %> <%= command.id %> TKT-001 \"Bug Report Template\"",
9058
- "<%= config.bin %> <%= command.id %> TKT-042 \"Feature Request\" --description \"Standard feature request template\""
8924
+ "<%= config.bin %> <%= command.id %> camry",
8925
+ "<%= config.bin %> <%= command.id %>"
9059
8926
  ],
9060
8927
  "flags": {
9061
- "description": {
9062
- "char": "d",
9063
- "description": "Template description",
9064
- "name": "description",
8928
+ "project": {
8929
+ "char": "P",
8930
+ "description": "Project ID (uses first project if only one exists)",
8931
+ "name": "project",
9065
8932
  "hasDynamicHelp": false,
9066
8933
  "multiple": false,
9067
8934
  "type": "option"
8935
+ },
8936
+ "json": {
8937
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8938
+ "name": "json",
8939
+ "allowNo": false,
8940
+ "type": "boolean"
9068
8941
  }
9069
8942
  },
9070
8943
  "hasDynamicHelp": false,
9071
8944
  "hiddenAliases": [],
9072
- "id": "template:ticket:save",
8945
+ "id": "agent:staff:remove",
9073
8946
  "pluginAlias": "@proletariat/cli",
9074
8947
  "pluginName": "@proletariat/cli",
9075
8948
  "pluginType": "core",
9076
8949
  "strict": true,
9077
- "enableJsonFlag": false,
9078
8950
  "isESM": true,
9079
8951
  "relativePath": [
9080
8952
  "dist",
9081
8953
  "commands",
9082
- "template",
9083
- "ticket",
9084
- "save.js"
8954
+ "agent",
8955
+ "staff",
8956
+ "remove.js"
9085
8957
  ]
9086
8958
  },
9087
8959
  "spec:link:depends": {
@@ -9292,238 +9164,45 @@
9292
9164
  },
9293
9165
  "json": {
9294
9166
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9295
- "name": "json",
9296
- "allowNo": false,
9297
- "type": "boolean"
9298
- }
9299
- },
9300
- "hasDynamicHelp": false,
9301
- "hiddenAliases": [],
9302
- "id": "spec:link:relates",
9303
- "pluginAlias": "@proletariat/cli",
9304
- "pluginName": "@proletariat/cli",
9305
- "pluginType": "core",
9306
- "strict": true,
9307
- "isESM": true,
9308
- "relativePath": [
9309
- "dist",
9310
- "commands",
9311
- "spec",
9312
- "link",
9313
- "relates.js"
9314
- ]
9315
- },
9316
- "spec:link:remove": {
9317
- "aliases": [],
9318
- "args": {
9319
- "id": {
9320
- "description": "Spec ID",
9321
- "name": "id",
9322
- "required": true
9323
- },
9324
- "target": {
9325
- "description": "Target spec ID to unlink",
9326
- "name": "target",
9327
- "required": false
9328
- }
9329
- },
9330
- "description": "Remove a dependency from a spec",
9331
- "examples": [
9332
- "<%= config.bin %> <%= command.id %> my-feature other-spec",
9333
- "<%= config.bin %> <%= command.id %> my-feature --all"
9334
- ],
9335
- "flags": {
9336
- "project": {
9337
- "char": "P",
9338
- "description": "Project ID (uses first project if only one exists)",
9339
- "name": "project",
9340
- "hasDynamicHelp": false,
9341
- "multiple": false,
9342
- "type": "option"
9343
- },
9344
- "json": {
9345
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9346
- "name": "json",
9347
- "allowNo": false,
9348
- "type": "boolean"
9349
- },
9350
- "type": {
9351
- "char": "t",
9352
- "description": "Dependency type",
9353
- "name": "type",
9354
- "hasDynamicHelp": false,
9355
- "multiple": false,
9356
- "options": [
9357
- "depends_on",
9358
- "relates_to",
9359
- "duplicates"
9360
- ],
9361
- "type": "option"
9362
- },
9363
- "all": {
9364
- "char": "a",
9365
- "description": "Remove all dependencies",
9366
- "name": "all",
9367
- "allowNo": false,
9368
- "type": "boolean"
9369
- }
9370
- },
9371
- "hasDynamicHelp": false,
9372
- "hiddenAliases": [],
9373
- "id": "spec:link:remove",
9374
- "pluginAlias": "@proletariat/cli",
9375
- "pluginName": "@proletariat/cli",
9376
- "pluginType": "core",
9377
- "strict": true,
9378
- "isESM": true,
9379
- "relativePath": [
9380
- "dist",
9381
- "commands",
9382
- "spec",
9383
- "link",
9384
- "remove.js"
9385
- ]
9386
- },
9387
- "agent:staff:add": {
9388
- "aliases": [],
9389
- "args": {
9390
- "names": {
9391
- "description": "Agent names to add (space-separated)",
9392
- "name": "names",
9393
- "required": false
9394
- }
9395
- },
9396
- "description": "Add new agents to the workspace",
9397
- "examples": [
9398
- "<%= config.bin %> <%= command.id %> zeus",
9399
- "<%= config.bin %> <%= command.id %> agent-1 agent-2",
9400
- "<%= config.bin %> <%= command.id %> --theme billionaires",
9401
- "<%= config.bin %> <%= command.id %> my-agent --no-container"
9402
- ],
9403
- "flags": {
9404
- "no-container": {
9405
- "description": "Skip devcontainer setup (not recommended for autonomous agents)",
9406
- "name": "no-container",
9407
- "allowNo": false,
9408
- "type": "boolean"
9409
- },
9410
- "theme": {
9411
- "char": "t",
9412
- "description": "Pick agent name(s) from a theme (billionaires, toyotas, companies, or custom)",
9413
- "name": "theme",
9414
- "hasDynamicHelp": false,
9415
- "multiple": false,
9416
- "type": "option"
9417
- },
9418
- "json": {
9419
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9420
- "name": "json",
9421
- "allowNo": false,
9422
- "type": "boolean"
9423
- }
9424
- },
9425
- "hasDynamicHelp": false,
9426
- "hiddenAliases": [],
9427
- "id": "agent:staff:add",
9428
- "pluginAlias": "@proletariat/cli",
9429
- "pluginName": "@proletariat/cli",
9430
- "pluginType": "core",
9431
- "strict": false,
9432
- "enableJsonFlag": false,
9433
- "isESM": true,
9434
- "relativePath": [
9435
- "dist",
9436
- "commands",
9437
- "agent",
9438
- "staff",
9439
- "add.js"
9440
- ]
9441
- },
9442
- "agent:staff": {
9443
- "aliases": [],
9444
- "args": {},
9445
- "description": "Manage staff (persistent) agents",
9446
- "examples": [
9447
- "<%= config.bin %> <%= command.id %> list",
9448
- "<%= config.bin %> <%= command.id %> add",
9449
- "<%= config.bin %> <%= command.id %> remove camry"
9450
- ],
9451
- "flags": {
9452
- "project": {
9453
- "char": "P",
9454
- "description": "Project ID (uses first project if only one exists)",
9455
- "name": "project",
9456
- "hasDynamicHelp": false,
9457
- "multiple": false,
9458
- "type": "option"
9459
- },
9460
- "json": {
9461
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9462
- "name": "json",
9463
- "allowNo": false,
9464
- "type": "boolean"
9465
- },
9466
- "no-interactive": {
9467
- "description": "Alias for --json flag",
9468
- "name": "no-interactive",
9469
- "allowNo": false,
9470
- "type": "boolean"
9471
- }
9472
- },
9473
- "hasDynamicHelp": false,
9474
- "hiddenAliases": [],
9475
- "id": "agent:staff",
9476
- "pluginAlias": "@proletariat/cli",
9477
- "pluginName": "@proletariat/cli",
9478
- "pluginType": "core",
9479
- "strict": true,
9480
- "isESM": true,
9481
- "relativePath": [
9482
- "dist",
9483
- "commands",
9484
- "agent",
9485
- "staff",
9486
- "index.js"
9487
- ]
9488
- },
9489
- "agent:staff:list": {
9490
- "aliases": [],
9491
- "args": {},
9492
- "description": "List all staff (persistent) agents and their status",
9493
- "examples": [
9494
- "<%= config.bin %> <%= command.id %>"
9495
- ],
9496
- "flags": {},
9167
+ "name": "json",
9168
+ "allowNo": false,
9169
+ "type": "boolean"
9170
+ }
9171
+ },
9497
9172
  "hasDynamicHelp": false,
9498
9173
  "hiddenAliases": [],
9499
- "id": "agent:staff:list",
9174
+ "id": "spec:link:relates",
9500
9175
  "pluginAlias": "@proletariat/cli",
9501
9176
  "pluginName": "@proletariat/cli",
9502
9177
  "pluginType": "core",
9503
9178
  "strict": true,
9504
- "enableJsonFlag": false,
9505
9179
  "isESM": true,
9506
9180
  "relativePath": [
9507
9181
  "dist",
9508
9182
  "commands",
9509
- "agent",
9510
- "staff",
9511
- "list.js"
9183
+ "spec",
9184
+ "link",
9185
+ "relates.js"
9512
9186
  ]
9513
9187
  },
9514
- "agent:staff:remove": {
9188
+ "spec:link:remove": {
9515
9189
  "aliases": [],
9516
9190
  "args": {
9517
- "name": {
9518
- "description": "Agent name to remove",
9519
- "name": "name",
9191
+ "id": {
9192
+ "description": "Spec ID",
9193
+ "name": "id",
9194
+ "required": true
9195
+ },
9196
+ "target": {
9197
+ "description": "Target spec ID to unlink",
9198
+ "name": "target",
9520
9199
  "required": false
9521
9200
  }
9522
9201
  },
9523
- "description": "Remove a specific agent from the workspace",
9202
+ "description": "Remove a dependency from a spec",
9524
9203
  "examples": [
9525
- "<%= config.bin %> <%= command.id %> camry",
9526
- "<%= config.bin %> <%= command.id %>"
9204
+ "<%= config.bin %> <%= command.id %> my-feature other-spec",
9205
+ "<%= config.bin %> <%= command.id %> my-feature --all"
9527
9206
  ],
9528
9207
  "flags": {
9529
9208
  "project": {
@@ -9539,11 +9218,31 @@
9539
9218
  "name": "json",
9540
9219
  "allowNo": false,
9541
9220
  "type": "boolean"
9221
+ },
9222
+ "type": {
9223
+ "char": "t",
9224
+ "description": "Dependency type",
9225
+ "name": "type",
9226
+ "hasDynamicHelp": false,
9227
+ "multiple": false,
9228
+ "options": [
9229
+ "depends_on",
9230
+ "relates_to",
9231
+ "duplicates"
9232
+ ],
9233
+ "type": "option"
9234
+ },
9235
+ "all": {
9236
+ "char": "a",
9237
+ "description": "Remove all dependencies",
9238
+ "name": "all",
9239
+ "allowNo": false,
9240
+ "type": "boolean"
9542
9241
  }
9543
9242
  },
9544
9243
  "hasDynamicHelp": false,
9545
9244
  "hiddenAliases": [],
9546
- "id": "agent:staff:remove",
9245
+ "id": "spec:link:remove",
9547
9246
  "pluginAlias": "@proletariat/cli",
9548
9247
  "pluginName": "@proletariat/cli",
9549
9248
  "pluginType": "core",
@@ -9552,8 +9251,8 @@
9552
9251
  "relativePath": [
9553
9252
  "dist",
9554
9253
  "commands",
9555
- "agent",
9556
- "staff",
9254
+ "spec",
9255
+ "link",
9557
9256
  "remove.js"
9558
9257
  ]
9559
9258
  },
@@ -10061,7 +9760,214 @@
10061
9760
  },
10062
9761
  "hasDynamicHelp": false,
10063
9762
  "hiddenAliases": [],
10064
- "id": "ticket:template:create",
9763
+ "id": "ticket:template:create",
9764
+ "pluginAlias": "@proletariat/cli",
9765
+ "pluginName": "@proletariat/cli",
9766
+ "pluginType": "core",
9767
+ "strict": true,
9768
+ "isESM": true,
9769
+ "relativePath": [
9770
+ "dist",
9771
+ "commands",
9772
+ "ticket",
9773
+ "template",
9774
+ "create.js"
9775
+ ]
9776
+ },
9777
+ "ticket:template:delete": {
9778
+ "aliases": [],
9779
+ "args": {
9780
+ "id": {
9781
+ "description": "Template ID to delete",
9782
+ "name": "id",
9783
+ "required": false
9784
+ }
9785
+ },
9786
+ "description": "Delete a ticket template",
9787
+ "examples": [
9788
+ "<%= config.bin %> <%= command.id %> my-template",
9789
+ "<%= config.bin %> <%= command.id %> my-template --force"
9790
+ ],
9791
+ "flags": {
9792
+ "project": {
9793
+ "char": "P",
9794
+ "description": "Project ID (uses first project if only one exists)",
9795
+ "name": "project",
9796
+ "hasDynamicHelp": false,
9797
+ "multiple": false,
9798
+ "type": "option"
9799
+ },
9800
+ "json": {
9801
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9802
+ "name": "json",
9803
+ "allowNo": false,
9804
+ "type": "boolean"
9805
+ },
9806
+ "force": {
9807
+ "char": "f",
9808
+ "description": "Skip confirmation",
9809
+ "name": "force",
9810
+ "allowNo": false,
9811
+ "type": "boolean"
9812
+ }
9813
+ },
9814
+ "hasDynamicHelp": false,
9815
+ "hiddenAliases": [],
9816
+ "id": "ticket:template:delete",
9817
+ "pluginAlias": "@proletariat/cli",
9818
+ "pluginName": "@proletariat/cli",
9819
+ "pluginType": "core",
9820
+ "strict": true,
9821
+ "isESM": true,
9822
+ "relativePath": [
9823
+ "dist",
9824
+ "commands",
9825
+ "ticket",
9826
+ "template",
9827
+ "delete.js"
9828
+ ]
9829
+ },
9830
+ "ticket:template": {
9831
+ "aliases": [
9832
+ "ticket:templates"
9833
+ ],
9834
+ "args": {},
9835
+ "description": "Interactive menu for ticket template operations",
9836
+ "examples": [
9837
+ "<%= config.bin %> <%= command.id %>"
9838
+ ],
9839
+ "flags": {
9840
+ "project": {
9841
+ "char": "P",
9842
+ "description": "Project ID (uses first project if only one exists)",
9843
+ "name": "project",
9844
+ "hasDynamicHelp": false,
9845
+ "multiple": false,
9846
+ "type": "option"
9847
+ },
9848
+ "json": {
9849
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9850
+ "name": "json",
9851
+ "allowNo": false,
9852
+ "type": "boolean"
9853
+ }
9854
+ },
9855
+ "hasDynamicHelp": false,
9856
+ "hiddenAliases": [],
9857
+ "id": "ticket:template",
9858
+ "pluginAlias": "@proletariat/cli",
9859
+ "pluginName": "@proletariat/cli",
9860
+ "pluginType": "core",
9861
+ "strict": true,
9862
+ "isESM": true,
9863
+ "relativePath": [
9864
+ "dist",
9865
+ "commands",
9866
+ "ticket",
9867
+ "template",
9868
+ "index.js"
9869
+ ]
9870
+ },
9871
+ "ticket:template:list": {
9872
+ "aliases": [],
9873
+ "args": {},
9874
+ "description": "List available ticket templates",
9875
+ "examples": [
9876
+ "<%= config.bin %> <%= command.id %>",
9877
+ "<%= config.bin %> <%= command.id %> --builtin # Only built-in templates",
9878
+ "<%= config.bin %> <%= command.id %> --custom # Only custom templates",
9879
+ "<%= config.bin %> <%= command.id %> --json # Output as JSON"
9880
+ ],
9881
+ "flags": {
9882
+ "project": {
9883
+ "char": "P",
9884
+ "description": "Project ID (uses first project if only one exists)",
9885
+ "name": "project",
9886
+ "hasDynamicHelp": false,
9887
+ "multiple": false,
9888
+ "type": "option"
9889
+ },
9890
+ "builtin": {
9891
+ "description": "Show only built-in templates",
9892
+ "exclusive": [
9893
+ "custom"
9894
+ ],
9895
+ "name": "builtin",
9896
+ "allowNo": false,
9897
+ "type": "boolean"
9898
+ },
9899
+ "custom": {
9900
+ "description": "Show only custom templates",
9901
+ "exclusive": [
9902
+ "builtin"
9903
+ ],
9904
+ "name": "custom",
9905
+ "allowNo": false,
9906
+ "type": "boolean"
9907
+ },
9908
+ "json": {
9909
+ "description": "Output as JSON",
9910
+ "name": "json",
9911
+ "allowNo": false,
9912
+ "type": "boolean"
9913
+ }
9914
+ },
9915
+ "hasDynamicHelp": false,
9916
+ "hiddenAliases": [],
9917
+ "id": "ticket:template:list",
9918
+ "pluginAlias": "@proletariat/cli",
9919
+ "pluginName": "@proletariat/cli",
9920
+ "pluginType": "core",
9921
+ "strict": true,
9922
+ "isESM": true,
9923
+ "relativePath": [
9924
+ "dist",
9925
+ "commands",
9926
+ "ticket",
9927
+ "template",
9928
+ "list.js"
9929
+ ]
9930
+ },
9931
+ "ticket:template:save": {
9932
+ "aliases": [],
9933
+ "args": {
9934
+ "ticket": {
9935
+ "description": "Ticket ID to create template from",
9936
+ "name": "ticket",
9937
+ "required": false
9938
+ },
9939
+ "name": {
9940
+ "description": "Template name",
9941
+ "name": "name",
9942
+ "required": false
9943
+ }
9944
+ },
9945
+ "description": "Create a template from an existing ticket",
9946
+ "examples": [
9947
+ "<%= config.bin %> <%= command.id %> TKT-001 \"Bug Report Template\"",
9948
+ "<%= config.bin %> <%= command.id %> TKT-042 \"Feature Request\" --description \"Standard feature request template\""
9949
+ ],
9950
+ "flags": {
9951
+ "project": {
9952
+ "char": "P",
9953
+ "description": "Project ID (uses first project if only one exists)",
9954
+ "name": "project",
9955
+ "hasDynamicHelp": false,
9956
+ "multiple": false,
9957
+ "type": "option"
9958
+ },
9959
+ "description": {
9960
+ "char": "d",
9961
+ "description": "Template description",
9962
+ "name": "description",
9963
+ "hasDynamicHelp": false,
9964
+ "multiple": false,
9965
+ "type": "option"
9966
+ }
9967
+ },
9968
+ "hasDynamicHelp": false,
9969
+ "hiddenAliases": [],
9970
+ "id": "ticket:template:save",
10065
9971
  "pluginAlias": "@proletariat/cli",
10066
9972
  "pluginName": "@proletariat/cli",
10067
9973
  "pluginType": "core",
@@ -10072,27 +9978,31 @@
10072
9978
  "commands",
10073
9979
  "ticket",
10074
9980
  "template",
10075
- "create.js"
9981
+ "save.js"
10076
9982
  ]
10077
9983
  },
10078
- "ticket:template:delete": {
9984
+ "epic:link:block": {
10079
9985
  "aliases": [],
10080
9986
  "args": {
10081
9987
  "id": {
10082
- "description": "Template ID to delete",
9988
+ "description": "Epic ID that will be blocked",
10083
9989
  "name": "id",
9990
+ "required": true
9991
+ },
9992
+ "blocker": {
9993
+ "description": "Epic ID that blocks this epic",
9994
+ "name": "blocker",
10084
9995
  "required": false
10085
9996
  }
10086
9997
  },
10087
- "description": "Delete a ticket template",
9998
+ "description": "Add a blocking dependency (epic is blocked by another)",
10088
9999
  "examples": [
10089
- "<%= config.bin %> <%= command.id %> my-template",
10090
- "<%= config.bin %> <%= command.id %> my-template --force"
10000
+ "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002 # EPIC-001 is blocked by EPIC-002"
10091
10001
  ],
10092
10002
  "flags": {
10093
10003
  "project": {
10094
10004
  "char": "P",
10095
- "description": "Project ID (uses first project if only one exists)",
10005
+ "description": "Project ID",
10096
10006
  "name": "project",
10097
10007
  "hasDynamicHelp": false,
10098
10008
  "multiple": false,
@@ -10103,18 +10013,11 @@
10103
10013
  "name": "json",
10104
10014
  "allowNo": false,
10105
10015
  "type": "boolean"
10106
- },
10107
- "force": {
10108
- "char": "f",
10109
- "description": "Skip confirmation",
10110
- "name": "force",
10111
- "allowNo": false,
10112
- "type": "boolean"
10113
10016
  }
10114
10017
  },
10115
10018
  "hasDynamicHelp": false,
10116
10019
  "hiddenAliases": [],
10117
- "id": "ticket:template:delete",
10020
+ "id": "epic:link:block",
10118
10021
  "pluginAlias": "@proletariat/cli",
10119
10022
  "pluginName": "@proletariat/cli",
10120
10023
  "pluginType": "core",
@@ -10123,24 +10026,33 @@
10123
10026
  "relativePath": [
10124
10027
  "dist",
10125
10028
  "commands",
10126
- "ticket",
10127
- "template",
10128
- "delete.js"
10029
+ "epic",
10030
+ "link",
10031
+ "block.js"
10129
10032
  ]
10130
10033
  },
10131
- "ticket:template": {
10132
- "aliases": [
10133
- "ticket:templates"
10134
- ],
10135
- "args": {},
10136
- "description": "Interactive menu for ticket template operations",
10034
+ "epic:link:duplicates": {
10035
+ "aliases": [],
10036
+ "args": {
10037
+ "id": {
10038
+ "description": "Duplicate epic ID",
10039
+ "name": "id",
10040
+ "required": true
10041
+ },
10042
+ "original": {
10043
+ "description": "Original epic ID",
10044
+ "name": "original",
10045
+ "required": false
10046
+ }
10047
+ },
10048
+ "description": "Mark an epic as duplicate of another",
10137
10049
  "examples": [
10138
- "<%= config.bin %> <%= command.id %>"
10050
+ "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002"
10139
10051
  ],
10140
10052
  "flags": {
10141
10053
  "project": {
10142
10054
  "char": "P",
10143
- "description": "Project ID (uses first project if only one exists)",
10055
+ "description": "Project ID",
10144
10056
  "name": "project",
10145
10057
  "hasDynamicHelp": false,
10146
10058
  "multiple": false,
@@ -10155,7 +10067,7 @@
10155
10067
  },
10156
10068
  "hasDynamicHelp": false,
10157
10069
  "hiddenAliases": [],
10158
- "id": "ticket:template",
10070
+ "id": "epic:link:duplicates",
10159
10071
  "pluginAlias": "@proletariat/cli",
10160
10072
  "pluginName": "@proletariat/cli",
10161
10073
  "pluginType": "core",
@@ -10164,50 +10076,120 @@
10164
10076
  "relativePath": [
10165
10077
  "dist",
10166
10078
  "commands",
10167
- "ticket",
10168
- "template",
10169
- "index.js"
10079
+ "epic",
10080
+ "link",
10081
+ "duplicates.js"
10170
10082
  ]
10171
10083
  },
10172
- "ticket:template:list": {
10084
+ "epic:link": {
10173
10085
  "aliases": [],
10174
- "args": {},
10175
- "description": "List available ticket templates",
10086
+ "args": {
10087
+ "id": {
10088
+ "description": "Epic ID",
10089
+ "name": "id",
10090
+ "required": false
10091
+ }
10092
+ },
10093
+ "description": "Manage epic dependencies (links)",
10176
10094
  "examples": [
10177
- "<%= config.bin %> <%= command.id %>",
10178
- "<%= config.bin %> <%= command.id %> --builtin # Only built-in templates",
10179
- "<%= config.bin %> <%= command.id %> --custom # Only custom templates",
10180
- "<%= config.bin %> <%= command.id %> --json # Output as JSON"
10095
+ "<%= config.bin %> <%= command.id %> EPIC-001 # List dependencies",
10096
+ "<%= config.bin %> <%= command.id %> EPIC-001 --blocks EPIC-002 # EPIC-001 is blocked by EPIC-002",
10097
+ "<%= config.bin %> <%= command.id %> EPIC-001 --relates EPIC-002 # EPIC-001 relates to EPIC-002",
10098
+ "<%= config.bin %> <%= command.id %> EPIC-001 --duplicates EPIC-002",
10099
+ "<%= config.bin %> <%= command.id %> EPIC-001 --all # Show all links"
10181
10100
  ],
10182
10101
  "flags": {
10183
10102
  "project": {
10184
10103
  "char": "P",
10185
- "description": "Project ID (uses first project if only one exists)",
10104
+ "description": "Project ID (default: \"default\")",
10186
10105
  "name": "project",
10187
10106
  "hasDynamicHelp": false,
10188
10107
  "multiple": false,
10189
10108
  "type": "option"
10190
10109
  },
10191
- "builtin": {
10192
- "description": "Show only built-in templates",
10193
- "exclusive": [
10194
- "custom"
10195
- ],
10196
- "name": "builtin",
10110
+ "blocks": {
10111
+ "char": "b",
10112
+ "description": "Add blocking dependency: this epic is blocked by TARGET",
10113
+ "name": "blocks",
10114
+ "hasDynamicHelp": false,
10115
+ "multiple": false,
10116
+ "type": "option"
10117
+ },
10118
+ "relates": {
10119
+ "char": "r",
10120
+ "description": "Add relates_to dependency",
10121
+ "name": "relates",
10122
+ "hasDynamicHelp": false,
10123
+ "multiple": false,
10124
+ "type": "option"
10125
+ },
10126
+ "duplicates": {
10127
+ "char": "d",
10128
+ "description": "Add duplicates dependency",
10129
+ "name": "duplicates",
10130
+ "hasDynamicHelp": false,
10131
+ "multiple": false,
10132
+ "type": "option"
10133
+ },
10134
+ "all": {
10135
+ "char": "a",
10136
+ "description": "Show all dependencies (blockers and blocking)",
10137
+ "name": "all",
10197
10138
  "allowNo": false,
10198
10139
  "type": "boolean"
10199
10140
  },
10200
- "custom": {
10201
- "description": "Show only custom templates",
10202
- "exclusive": [
10203
- "builtin"
10204
- ],
10205
- "name": "custom",
10141
+ "json": {
10142
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10143
+ "name": "json",
10206
10144
  "allowNo": false,
10207
10145
  "type": "boolean"
10146
+ }
10147
+ },
10148
+ "hasDynamicHelp": false,
10149
+ "hiddenAliases": [],
10150
+ "id": "epic:link",
10151
+ "pluginAlias": "@proletariat/cli",
10152
+ "pluginName": "@proletariat/cli",
10153
+ "pluginType": "core",
10154
+ "strict": true,
10155
+ "isESM": true,
10156
+ "relativePath": [
10157
+ "dist",
10158
+ "commands",
10159
+ "epic",
10160
+ "link",
10161
+ "index.js"
10162
+ ]
10163
+ },
10164
+ "epic:link:relates": {
10165
+ "aliases": [],
10166
+ "args": {
10167
+ "id": {
10168
+ "description": "Epic ID",
10169
+ "name": "id",
10170
+ "required": true
10171
+ },
10172
+ "target": {
10173
+ "description": "Related epic ID",
10174
+ "name": "target",
10175
+ "required": false
10176
+ }
10177
+ },
10178
+ "description": "Add a relates_to dependency (informational link)",
10179
+ "examples": [
10180
+ "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002"
10181
+ ],
10182
+ "flags": {
10183
+ "project": {
10184
+ "char": "P",
10185
+ "description": "Project ID",
10186
+ "name": "project",
10187
+ "hasDynamicHelp": false,
10188
+ "multiple": false,
10189
+ "type": "option"
10208
10190
  },
10209
10191
  "json": {
10210
- "description": "Output as JSON",
10192
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10211
10193
  "name": "json",
10212
10194
  "allowNo": false,
10213
10195
  "type": "boolean"
@@ -10215,7 +10197,7 @@
10215
10197
  },
10216
10198
  "hasDynamicHelp": false,
10217
10199
  "hiddenAliases": [],
10218
- "id": "ticket:template:list",
10200
+ "id": "epic:link:relates",
10219
10201
  "pluginAlias": "@proletariat/cli",
10220
10202
  "pluginName": "@proletariat/cli",
10221
10203
  "pluginType": "core",
@@ -10224,51 +10206,69 @@
10224
10206
  "relativePath": [
10225
10207
  "dist",
10226
10208
  "commands",
10227
- "ticket",
10228
- "template",
10229
- "list.js"
10209
+ "epic",
10210
+ "link",
10211
+ "relates.js"
10230
10212
  ]
10231
10213
  },
10232
- "ticket:template:save": {
10214
+ "epic:link:remove": {
10233
10215
  "aliases": [],
10234
10216
  "args": {
10235
- "ticket": {
10236
- "description": "Ticket ID to create template from",
10237
- "name": "ticket",
10238
- "required": false
10217
+ "id": {
10218
+ "description": "Epic ID",
10219
+ "name": "id",
10220
+ "required": true
10239
10221
  },
10240
- "name": {
10241
- "description": "Template name",
10242
- "name": "name",
10222
+ "target": {
10223
+ "description": "Target epic ID to unlink",
10224
+ "name": "target",
10243
10225
  "required": false
10244
10226
  }
10245
10227
  },
10246
- "description": "Create a template from an existing ticket",
10228
+ "description": "Remove a dependency from an epic",
10247
10229
  "examples": [
10248
- "<%= config.bin %> <%= command.id %> TKT-001 \"Bug Report Template\"",
10249
- "<%= config.bin %> <%= command.id %> TKT-042 \"Feature Request\" --description \"Standard feature request template\""
10230
+ "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002",
10231
+ "<%= config.bin %> <%= command.id %> EPIC-001 --all"
10250
10232
  ],
10251
10233
  "flags": {
10252
10234
  "project": {
10253
10235
  "char": "P",
10254
- "description": "Project ID (uses first project if only one exists)",
10236
+ "description": "Project ID",
10255
10237
  "name": "project",
10256
10238
  "hasDynamicHelp": false,
10257
10239
  "multiple": false,
10258
10240
  "type": "option"
10259
10241
  },
10260
- "description": {
10261
- "char": "d",
10262
- "description": "Template description",
10263
- "name": "description",
10242
+ "type": {
10243
+ "char": "t",
10244
+ "description": "Dependency type",
10245
+ "name": "type",
10264
10246
  "hasDynamicHelp": false,
10265
10247
  "multiple": false,
10248
+ "options": [
10249
+ "blocks",
10250
+ "relates_to",
10251
+ "duplicates"
10252
+ ],
10266
10253
  "type": "option"
10254
+ },
10255
+ "all": {
10256
+ "char": "a",
10257
+ "description": "Remove all dependencies",
10258
+ "name": "all",
10259
+ "allowNo": false,
10260
+ "type": "boolean"
10261
+ },
10262
+ "json": {
10263
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10264
+ "name": "json",
10265
+ "allowNo": false,
10266
+ "type": "boolean"
10267
10267
  }
10268
10268
  },
10269
10269
  "hasDynamicHelp": false,
10270
10270
  "hiddenAliases": [],
10271
- "id": "ticket:template:save",
10271
+ "id": "epic:link:remove",
10272
10272
  "pluginAlias": "@proletariat/cli",
10273
10273
  "pluginName": "@proletariat/cli",
10274
10274
  "pluginType": "core",
@@ -10277,9 +10277,9 @@
10277
10277
  "relativePath": [
10278
10278
  "dist",
10279
10279
  "commands",
10280
- "ticket",
10281
- "template",
10282
- "save.js"
10280
+ "epic",
10281
+ "link",
10282
+ "remove.js"
10283
10283
  ]
10284
10284
  },
10285
10285
  "ticket:link:block": {
@@ -10589,5 +10589,5 @@
10589
10589
  ]
10590
10590
  }
10591
10591
  },
10592
- "version": "0.3.1"
10592
+ "version": "0.3.2"
10593
10593
  }