@proletariat/cli 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/oclif.manifest.json +903 -903
  2. package/package.json +3 -2
@@ -4065,155 +4065,6 @@
4065
4065
  "status.js"
4066
4066
  ]
4067
4067
  },
4068
- "session:attach": {
4069
- "aliases": [],
4070
- "args": {
4071
- "session": {
4072
- "description": "Session name or ticket ID to attach to (optional - will prompt if not provided)",
4073
- "name": "session",
4074
- "required": false
4075
- }
4076
- },
4077
- "description": "Attach to an active tmux session",
4078
- "examples": [
4079
- "<%= config.bin %> <%= command.id %>",
4080
- "<%= config.bin %> <%= command.id %> TKT-347-implement-altman",
4081
- "<%= config.bin %> <%= command.id %> --current-terminal"
4082
- ],
4083
- "flags": {
4084
- "project": {
4085
- "char": "P",
4086
- "description": "Project ID (uses first project if only one exists)",
4087
- "name": "project",
4088
- "hasDynamicHelp": false,
4089
- "multiple": false,
4090
- "type": "option"
4091
- },
4092
- "json": {
4093
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4094
- "name": "json",
4095
- "allowNo": false,
4096
- "type": "boolean"
4097
- },
4098
- "new-tab": {
4099
- "char": "n",
4100
- "description": "Open in a new terminal tab (default: true)",
4101
- "name": "new-tab",
4102
- "allowNo": false,
4103
- "type": "boolean"
4104
- },
4105
- "current-terminal": {
4106
- "char": "c",
4107
- "description": "Attach in current terminal instead of new tab",
4108
- "name": "current-terminal",
4109
- "allowNo": false,
4110
- "type": "boolean"
4111
- },
4112
- "terminal": {
4113
- "char": "t",
4114
- "description": "Terminal app to use (iTerm, Terminal, Ghostty)",
4115
- "name": "terminal",
4116
- "default": "iTerm",
4117
- "hasDynamicHelp": false,
4118
- "multiple": false,
4119
- "type": "option"
4120
- }
4121
- },
4122
- "hasDynamicHelp": false,
4123
- "hiddenAliases": [],
4124
- "id": "session:attach",
4125
- "pluginAlias": "@proletariat/cli",
4126
- "pluginName": "@proletariat/cli",
4127
- "pluginType": "core",
4128
- "strict": true,
4129
- "isESM": true,
4130
- "relativePath": [
4131
- "dist",
4132
- "commands",
4133
- "session",
4134
- "attach.js"
4135
- ]
4136
- },
4137
- "session": {
4138
- "aliases": [],
4139
- "args": {},
4140
- "description": "Manage agent tmux sessions (list, attach, detach)",
4141
- "examples": [
4142
- "<%= config.bin %> <%= command.id %>",
4143
- "<%= config.bin %> <%= command.id %> list",
4144
- "<%= config.bin %> <%= command.id %> attach TKT-347-implement"
4145
- ],
4146
- "flags": {
4147
- "project": {
4148
- "char": "P",
4149
- "description": "Project ID (uses first project if only one exists)",
4150
- "name": "project",
4151
- "hasDynamicHelp": false,
4152
- "multiple": false,
4153
- "type": "option"
4154
- },
4155
- "json": {
4156
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4157
- "name": "json",
4158
- "allowNo": false,
4159
- "type": "boolean"
4160
- }
4161
- },
4162
- "hasDynamicHelp": false,
4163
- "hiddenAliases": [],
4164
- "id": "session",
4165
- "pluginAlias": "@proletariat/cli",
4166
- "pluginName": "@proletariat/cli",
4167
- "pluginType": "core",
4168
- "strict": true,
4169
- "isESM": true,
4170
- "relativePath": [
4171
- "dist",
4172
- "commands",
4173
- "session",
4174
- "index.js"
4175
- ]
4176
- },
4177
- "session:list": {
4178
- "aliases": [],
4179
- "args": {},
4180
- "description": "List active tmux sessions (host and container)",
4181
- "examples": [
4182
- "<%= config.bin %> <%= command.id %>",
4183
- "<%= config.bin %> <%= command.id %> --all"
4184
- ],
4185
- "flags": {
4186
- "project": {
4187
- "char": "P",
4188
- "description": "Project ID (uses first project if only one exists)",
4189
- "name": "project",
4190
- "hasDynamicHelp": false,
4191
- "multiple": false,
4192
- "type": "option"
4193
- },
4194
- "all": {
4195
- "char": "a",
4196
- "description": "Show all sessions including stale DB records",
4197
- "name": "all",
4198
- "allowNo": false,
4199
- "type": "boolean"
4200
- }
4201
- },
4202
- "hasDynamicHelp": false,
4203
- "hiddenAliases": [],
4204
- "id": "session:list",
4205
- "pluginAlias": "@proletariat/cli",
4206
- "pluginName": "@proletariat/cli",
4207
- "pluginType": "core",
4208
- "strict": true,
4209
- "isESM": true,
4210
- "relativePath": [
4211
- "dist",
4212
- "commands",
4213
- "session",
4214
- "list.js"
4215
- ]
4216
- },
4217
4068
  "repo:add": {
4218
4069
  "aliases": [],
4219
4070
  "args": {
@@ -4470,15 +4321,20 @@
4470
4321
  "view.js"
4471
4322
  ]
4472
4323
  },
4473
- "template:delete": {
4324
+ "session:attach": {
4474
4325
  "aliases": [],
4475
- "args": {},
4476
- "description": "Delete templates (ticket or phase)",
4326
+ "args": {
4327
+ "session": {
4328
+ "description": "Session name or ticket ID to attach to (optional - will prompt if not provided)",
4329
+ "name": "session",
4330
+ "required": false
4331
+ }
4332
+ },
4333
+ "description": "Attach to an active tmux session",
4477
4334
  "examples": [
4478
4335
  "<%= config.bin %> <%= command.id %>",
4479
- "<%= config.bin %> <%= command.id %> --type ticket",
4480
- "<%= config.bin %> <%= command.id %> --type phase",
4481
- "<%= config.bin %> <%= command.id %> --force"
4336
+ "<%= config.bin %> <%= command.id %> TKT-347-implement-altman",
4337
+ "<%= config.bin %> <%= command.id %> --current-terminal"
4482
4338
  ],
4483
4339
  "flags": {
4484
4340
  "project": {
@@ -4489,35 +4345,39 @@
4489
4345
  "multiple": false,
4490
4346
  "type": "option"
4491
4347
  },
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
- ],
4502
- "type": "option"
4348
+ "json": {
4349
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4350
+ "name": "json",
4351
+ "allowNo": false,
4352
+ "type": "boolean"
4503
4353
  },
4504
- "force": {
4505
- "char": "f",
4506
- "description": "Skip confirmation",
4507
- "name": "force",
4354
+ "new-tab": {
4355
+ "char": "n",
4356
+ "description": "Open in a new terminal tab (default: true)",
4357
+ "name": "new-tab",
4508
4358
  "allowNo": false,
4509
4359
  "type": "boolean"
4510
4360
  },
4511
- "json": {
4512
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4513
- "name": "json",
4361
+ "current-terminal": {
4362
+ "char": "c",
4363
+ "description": "Attach in current terminal instead of new tab",
4364
+ "name": "current-terminal",
4514
4365
  "allowNo": false,
4515
4366
  "type": "boolean"
4367
+ },
4368
+ "terminal": {
4369
+ "char": "t",
4370
+ "description": "Terminal app to use (iTerm, Terminal, Ghostty)",
4371
+ "name": "terminal",
4372
+ "default": "iTerm",
4373
+ "hasDynamicHelp": false,
4374
+ "multiple": false,
4375
+ "type": "option"
4516
4376
  }
4517
4377
  },
4518
4378
  "hasDynamicHelp": false,
4519
4379
  "hiddenAliases": [],
4520
- "id": "template:delete",
4380
+ "id": "session:attach",
4521
4381
  "pluginAlias": "@proletariat/cli",
4522
4382
  "pluginName": "@proletariat/cli",
4523
4383
  "pluginType": "core",
@@ -4526,24 +4386,28 @@
4526
4386
  "relativePath": [
4527
4387
  "dist",
4528
4388
  "commands",
4529
- "template",
4530
- "delete.js"
4389
+ "session",
4390
+ "attach.js"
4531
4391
  ]
4532
4392
  },
4533
- "template": {
4534
- "aliases": [
4535
- "templates"
4536
- ],
4393
+ "session": {
4394
+ "aliases": [],
4537
4395
  "args": {},
4538
- "description": "Manage templates (ticket and phase)",
4396
+ "description": "Manage agent tmux sessions (list, attach, detach)",
4539
4397
  "examples": [
4540
4398
  "<%= config.bin %> <%= command.id %>",
4541
4399
  "<%= config.bin %> <%= command.id %> list",
4542
- "<%= config.bin %> <%= command.id %> list --type ticket",
4543
- "<%= config.bin %> <%= command.id %> ticket",
4544
- "<%= config.bin %> <%= command.id %> phase"
4400
+ "<%= config.bin %> <%= command.id %> attach TKT-347-implement"
4545
4401
  ],
4546
4402
  "flags": {
4403
+ "project": {
4404
+ "char": "P",
4405
+ "description": "Project ID (uses first project if only one exists)",
4406
+ "name": "project",
4407
+ "hasDynamicHelp": false,
4408
+ "multiple": false,
4409
+ "type": "option"
4410
+ },
4547
4411
  "json": {
4548
4412
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4549
4413
  "name": "json",
@@ -4553,30 +4417,26 @@
4553
4417
  },
4554
4418
  "hasDynamicHelp": false,
4555
4419
  "hiddenAliases": [],
4556
- "id": "template",
4420
+ "id": "session",
4557
4421
  "pluginAlias": "@proletariat/cli",
4558
4422
  "pluginName": "@proletariat/cli",
4559
4423
  "pluginType": "core",
4560
4424
  "strict": true,
4561
- "enableJsonFlag": false,
4562
4425
  "isESM": true,
4563
4426
  "relativePath": [
4564
4427
  "dist",
4565
4428
  "commands",
4566
- "template",
4429
+ "session",
4567
4430
  "index.js"
4568
4431
  ]
4569
4432
  },
4570
- "template:list": {
4433
+ "session:list": {
4571
4434
  "aliases": [],
4572
4435
  "args": {},
4573
- "description": "List all templates (ticket and phase)",
4436
+ "description": "List active tmux sessions (host and container)",
4574
4437
  "examples": [
4575
4438
  "<%= config.bin %> <%= command.id %>",
4576
- "<%= config.bin %> <%= command.id %> --type ticket",
4577
- "<%= config.bin %> <%= command.id %> --type phase",
4578
- "<%= config.bin %> <%= command.id %> --builtin",
4579
- "<%= config.bin %> <%= command.id %> --json"
4439
+ "<%= config.bin %> <%= command.id %> --all"
4580
4440
  ],
4581
4441
  "flags": {
4582
4442
  "project": {
@@ -4587,16 +4447,156 @@
4587
4447
  "multiple": false,
4588
4448
  "type": "option"
4589
4449
  },
4590
- "type": {
4591
- "char": "t",
4592
- "description": "Filter by template type",
4593
- "name": "type",
4594
- "hasDynamicHelp": false,
4595
- "multiple": false,
4596
- "options": [
4597
- "ticket",
4598
- "phase"
4599
- ],
4450
+ "all": {
4451
+ "char": "a",
4452
+ "description": "Show all sessions including stale DB records",
4453
+ "name": "all",
4454
+ "allowNo": false,
4455
+ "type": "boolean"
4456
+ }
4457
+ },
4458
+ "hasDynamicHelp": false,
4459
+ "hiddenAliases": [],
4460
+ "id": "session:list",
4461
+ "pluginAlias": "@proletariat/cli",
4462
+ "pluginName": "@proletariat/cli",
4463
+ "pluginType": "core",
4464
+ "strict": true,
4465
+ "isESM": true,
4466
+ "relativePath": [
4467
+ "dist",
4468
+ "commands",
4469
+ "session",
4470
+ "list.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
+ ],
4502
+ "type": "option"
4503
+ },
4504
+ "force": {
4505
+ "char": "f",
4506
+ "description": "Skip confirmation",
4507
+ "name": "force",
4508
+ "allowNo": false,
4509
+ "type": "boolean"
4510
+ },
4511
+ "json": {
4512
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4513
+ "name": "json",
4514
+ "allowNo": false,
4515
+ "type": "boolean"
4516
+ }
4517
+ },
4518
+ "hasDynamicHelp": false,
4519
+ "hiddenAliases": [],
4520
+ "id": "template:delete",
4521
+ "pluginAlias": "@proletariat/cli",
4522
+ "pluginName": "@proletariat/cli",
4523
+ "pluginType": "core",
4524
+ "strict": true,
4525
+ "isESM": true,
4526
+ "relativePath": [
4527
+ "dist",
4528
+ "commands",
4529
+ "template",
4530
+ "delete.js"
4531
+ ]
4532
+ },
4533
+ "template": {
4534
+ "aliases": [
4535
+ "templates"
4536
+ ],
4537
+ "args": {},
4538
+ "description": "Manage templates (ticket and phase)",
4539
+ "examples": [
4540
+ "<%= config.bin %> <%= command.id %>",
4541
+ "<%= config.bin %> <%= command.id %> list",
4542
+ "<%= config.bin %> <%= command.id %> list --type ticket",
4543
+ "<%= config.bin %> <%= command.id %> ticket",
4544
+ "<%= config.bin %> <%= command.id %> phase"
4545
+ ],
4546
+ "flags": {
4547
+ "json": {
4548
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4549
+ "name": "json",
4550
+ "allowNo": false,
4551
+ "type": "boolean"
4552
+ }
4553
+ },
4554
+ "hasDynamicHelp": false,
4555
+ "hiddenAliases": [],
4556
+ "id": "template",
4557
+ "pluginAlias": "@proletariat/cli",
4558
+ "pluginName": "@proletariat/cli",
4559
+ "pluginType": "core",
4560
+ "strict": true,
4561
+ "enableJsonFlag": false,
4562
+ "isESM": true,
4563
+ "relativePath": [
4564
+ "dist",
4565
+ "commands",
4566
+ "template",
4567
+ "index.js"
4568
+ ]
4569
+ },
4570
+ "template:list": {
4571
+ "aliases": [],
4572
+ "args": {},
4573
+ "description": "List all templates (ticket and phase)",
4574
+ "examples": [
4575
+ "<%= config.bin %> <%= command.id %>",
4576
+ "<%= config.bin %> <%= command.id %> --type ticket",
4577
+ "<%= config.bin %> <%= command.id %> --type phase",
4578
+ "<%= config.bin %> <%= command.id %> --builtin",
4579
+ "<%= config.bin %> <%= command.id %> --json"
4580
+ ],
4581
+ "flags": {
4582
+ "project": {
4583
+ "char": "P",
4584
+ "description": "Project ID (uses first project if only one exists)",
4585
+ "name": "project",
4586
+ "hasDynamicHelp": false,
4587
+ "multiple": false,
4588
+ "type": "option"
4589
+ },
4590
+ "type": {
4591
+ "char": "t",
4592
+ "description": "Filter by template type",
4593
+ "name": "type",
4594
+ "hasDynamicHelp": false,
4595
+ "multiple": false,
4596
+ "options": [
4597
+ "ticket",
4598
+ "phase"
4599
+ ],
4600
4600
  "type": "option"
4601
4601
  },
4602
4602
  "builtin": {
@@ -5414,24 +5414,58 @@
5414
5414
  "view.js"
5415
5415
  ]
5416
5416
  },
5417
- "ticket:bulk": {
5417
+ "workspace:add": {
5418
5418
  "aliases": [],
5419
- "args": {},
5420
- "description": "Manage tickets in bulk (interactive menu)",
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",
5421
5427
  "examples": [
5422
- "<%= config.bin %> <%= command.id %>"
5428
+ "<%= config.bin %> <%= command.id %> /path/to/workspace",
5429
+ "<%= config.bin %> <%= command.id %> . --name my-workspace",
5430
+ "<%= config.bin %> <%= command.id %> ~/projects/my-hq"
5423
5431
  ],
5424
5432
  "flags": {
5425
- "project": {
5426
- "char": "P",
5427
- "description": "Project ID (uses first project if only one exists)",
5428
- "name": "project",
5433
+ "name": {
5434
+ "char": "n",
5435
+ "description": "Custom name for the workspace (defaults to directory basename or workspace config name)",
5436
+ "name": "name",
5429
5437
  "hasDynamicHelp": false,
5430
5438
  "multiple": false,
5431
5439
  "type": "option"
5432
- },
5440
+ }
5441
+ },
5442
+ "hasDynamicHelp": false,
5443
+ "hiddenAliases": [],
5444
+ "id": "workspace:add",
5445
+ "pluginAlias": "@proletariat/cli",
5446
+ "pluginName": "@proletariat/cli",
5447
+ "pluginType": "core",
5448
+ "strict": true,
5449
+ "enableJsonFlag": false,
5450
+ "isESM": true,
5451
+ "relativePath": [
5452
+ "dist",
5453
+ "commands",
5454
+ "workspace",
5455
+ "add.js"
5456
+ ]
5457
+ },
5458
+ "workspace:list": {
5459
+ "aliases": [],
5460
+ "args": {},
5461
+ "description": "List all registered and discovered HQ workspaces",
5462
+ "examples": [
5463
+ "<%= config.bin %> <%= command.id %>",
5464
+ "<%= config.bin %> <%= command.id %> --json"
5465
+ ],
5466
+ "flags": {
5433
5467
  "json": {
5434
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5468
+ "description": "Output as JSON for machine-readable format",
5435
5469
  "name": "json",
5436
5470
  "allowNo": false,
5437
5471
  "type": "boolean"
@@ -5439,78 +5473,193 @@
5439
5473
  },
5440
5474
  "hasDynamicHelp": false,
5441
5475
  "hiddenAliases": [],
5442
- "id": "ticket:bulk",
5476
+ "id": "workspace:list",
5443
5477
  "pluginAlias": "@proletariat/cli",
5444
5478
  "pluginName": "@proletariat/cli",
5445
5479
  "pluginType": "core",
5446
5480
  "strict": true,
5481
+ "enableJsonFlag": false,
5447
5482
  "isESM": true,
5448
5483
  "relativePath": [
5449
5484
  "dist",
5450
5485
  "commands",
5451
- "ticket",
5452
- "bulk.js"
5486
+ "workspace",
5487
+ "list.js"
5453
5488
  ]
5454
5489
  },
5455
- "ticket:complete": {
5490
+ "workspace:remove": {
5456
5491
  "aliases": [],
5457
5492
  "args": {
5458
- "ticketId": {
5459
- "description": "Ticket ID - prompts with dropdown if not provided",
5460
- "name": "ticketId",
5461
- "required": false
5493
+ "nameOrPath": {
5494
+ "description": "Workspace name or path to unregister",
5495
+ "name": "nameOrPath",
5496
+ "required": true
5462
5497
  }
5463
5498
  },
5464
- "description": "Mark ticket(s) as complete (move to Done column)",
5499
+ "description": "Unregister a workspace from the machine config (does NOT delete files)",
5465
5500
  "examples": [
5466
- "<%= config.bin %> <%= command.id %>",
5467
- "<%= config.bin %> <%= command.id %> TICK-001",
5468
- "<%= config.bin %> <%= command.id %> --bulk"
5501
+ "<%= config.bin %> <%= command.id %> my-workspace",
5502
+ "<%= config.bin %> <%= command.id %> /path/to/workspace"
5469
5503
  ],
5470
5504
  "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
- },
5479
5505
  "json": {
5480
5506
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5481
5507
  "name": "json",
5482
5508
  "allowNo": false,
5483
5509
  "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",
5496
- "allowNo": false,
5497
- "type": "boolean"
5498
5510
  }
5499
5511
  },
5500
5512
  "hasDynamicHelp": false,
5501
5513
  "hiddenAliases": [],
5502
- "id": "ticket:complete",
5514
+ "id": "workspace:remove",
5503
5515
  "pluginAlias": "@proletariat/cli",
5504
5516
  "pluginName": "@proletariat/cli",
5505
5517
  "pluginType": "core",
5506
5518
  "strict": true,
5519
+ "enableJsonFlag": false,
5507
5520
  "isESM": true,
5508
5521
  "relativePath": [
5509
5522
  "dist",
5510
5523
  "commands",
5511
- "ticket",
5512
- "complete.js"
5513
- ]
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",
5645
+ "allowNo": false,
5646
+ "type": "boolean"
5647
+ }
5648
+ },
5649
+ "hasDynamicHelp": false,
5650
+ "hiddenAliases": [],
5651
+ "id": "ticket:complete",
5652
+ "pluginAlias": "@proletariat/cli",
5653
+ "pluginName": "@proletariat/cli",
5654
+ "pluginType": "core",
5655
+ "strict": true,
5656
+ "isESM": true,
5657
+ "relativePath": [
5658
+ "dist",
5659
+ "commands",
5660
+ "ticket",
5661
+ "complete.js"
5662
+ ]
5514
5663
  },
5515
5664
  "ticket:create": {
5516
5665
  "aliases": [],
@@ -6563,58 +6712,69 @@
6563
6712
  "view.js"
6564
6713
  ]
6565
6714
  },
6566
- "workspace:add": {
6715
+ "work:complete": {
6567
6716
  "aliases": [],
6568
6717
  "args": {
6569
- "path": {
6570
- "description": "Path to the workspace to register",
6571
- "name": "path",
6572
- "required": true
6718
+ "ticketId": {
6719
+ "description": "Ticket ID - prompts with dropdown if not provided",
6720
+ "name": "ticketId",
6721
+ "required": false
6573
6722
  }
6574
6723
  },
6575
- "description": "Register an existing workspace in the machine config",
6724
+ "description": "Mark work as complete (moves ticket to Done column)",
6576
6725
  "examples": [
6577
- "<%= config.bin %> <%= command.id %> /path/to/workspace",
6578
- "<%= config.bin %> <%= command.id %> . --name my-workspace",
6579
- "<%= config.bin %> <%= command.id %> ~/projects/my-hq"
6726
+ "<%= config.bin %> <%= command.id %>",
6727
+ "<%= config.bin %> <%= command.id %> TKT-001"
6580
6728
  ],
6581
6729
  "flags": {
6582
- "name": {
6583
- "char": "n",
6584
- "description": "Custom name for the workspace (defaults to directory basename or workspace config name)",
6585
- "name": "name",
6730
+ "project": {
6731
+ "char": "P",
6732
+ "description": "Project ID (uses first project if only one exists)",
6733
+ "name": "project",
6586
6734
  "hasDynamicHelp": false,
6587
6735
  "multiple": false,
6588
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"
6589
6743
  }
6590
6744
  },
6591
6745
  "hasDynamicHelp": false,
6592
6746
  "hiddenAliases": [],
6593
- "id": "workspace:add",
6747
+ "id": "work:complete",
6594
6748
  "pluginAlias": "@proletariat/cli",
6595
6749
  "pluginName": "@proletariat/cli",
6596
6750
  "pluginType": "core",
6597
6751
  "strict": true,
6598
- "enableJsonFlag": false,
6599
6752
  "isESM": true,
6600
6753
  "relativePath": [
6601
6754
  "dist",
6602
6755
  "commands",
6603
- "workspace",
6604
- "add.js"
6756
+ "work",
6757
+ "complete.js"
6605
6758
  ]
6606
6759
  },
6607
- "workspace:list": {
6760
+ "work": {
6608
6761
  "aliases": [],
6609
6762
  "args": {},
6610
- "description": "List all registered and discovered HQ workspaces",
6763
+ "description": "Interactive menu for work operations (ownership, assignment, execution)",
6611
6764
  "examples": [
6612
- "<%= config.bin %> <%= command.id %>",
6613
- "<%= config.bin %> <%= command.id %> --json"
6765
+ "<%= config.bin %> <%= command.id %>"
6614
6766
  ],
6615
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
+ },
6616
6776
  "json": {
6617
- "description": "Output as JSON for machine-readable format",
6777
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6618
6778
  "name": "json",
6619
6779
  "allowNo": false,
6620
6780
  "type": "boolean"
@@ -6622,246 +6782,86 @@
6622
6782
  },
6623
6783
  "hasDynamicHelp": false,
6624
6784
  "hiddenAliases": [],
6625
- "id": "workspace:list",
6785
+ "id": "work",
6626
6786
  "pluginAlias": "@proletariat/cli",
6627
6787
  "pluginName": "@proletariat/cli",
6628
6788
  "pluginType": "core",
6629
6789
  "strict": true,
6630
- "enableJsonFlag": false,
6631
6790
  "isESM": true,
6632
6791
  "relativePath": [
6633
6792
  "dist",
6634
6793
  "commands",
6635
- "workspace",
6636
- "list.js"
6794
+ "work",
6795
+ "index.js"
6637
6796
  ]
6638
6797
  },
6639
- "workspace:remove": {
6798
+ "work:ready": {
6640
6799
  "aliases": [],
6641
6800
  "args": {
6642
- "nameOrPath": {
6643
- "description": "Workspace name or path to unregister",
6644
- "name": "nameOrPath",
6645
- "required": true
6801
+ "ticketId": {
6802
+ "description": "Ticket ID - prompts with dropdown if not provided",
6803
+ "name": "ticketId",
6804
+ "required": false
6646
6805
  }
6647
6806
  },
6648
- "description": "Unregister a workspace from the machine config (does NOT delete files)",
6807
+ "description": "Mark work as ready for review (moves ticket to In Review column)",
6649
6808
  "examples": [
6650
- "<%= config.bin %> <%= command.id %> my-workspace",
6651
- "<%= config.bin %> <%= command.id %> /path/to/workspace"
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"
6652
6814
  ],
6653
6815
  "flags": {
6816
+ "project": {
6817
+ "char": "P",
6818
+ "description": "Project ID (uses first project if only one exists)",
6819
+ "name": "project",
6820
+ "hasDynamicHelp": false,
6821
+ "multiple": false,
6822
+ "type": "option"
6823
+ },
6654
6824
  "json": {
6655
6825
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6656
6826
  "name": "json",
6657
6827
  "allowNo": false,
6658
6828
  "type": "boolean"
6829
+ },
6830
+ "pr": {
6831
+ "description": "Create a pull request for this work",
6832
+ "name": "pr",
6833
+ "allowNo": false,
6834
+ "type": "boolean"
6835
+ },
6836
+ "draft": {
6837
+ "description": "Create PR as draft (only with --pr)",
6838
+ "name": "draft",
6839
+ "allowNo": false,
6840
+ "type": "boolean"
6841
+ },
6842
+ "no-pr": {
6843
+ "description": "Skip PR creation prompt",
6844
+ "name": "no-pr",
6845
+ "allowNo": false,
6846
+ "type": "boolean"
6659
6847
  }
6660
6848
  },
6661
6849
  "hasDynamicHelp": false,
6662
6850
  "hiddenAliases": [],
6663
- "id": "workspace:remove",
6851
+ "id": "work:ready",
6664
6852
  "pluginAlias": "@proletariat/cli",
6665
6853
  "pluginName": "@proletariat/cli",
6666
6854
  "pluginType": "core",
6667
6855
  "strict": true,
6668
- "enableJsonFlag": false,
6669
6856
  "isESM": true,
6670
6857
  "relativePath": [
6671
6858
  "dist",
6672
6859
  "commands",
6673
- "workspace",
6674
- "remove.js"
6860
+ "work",
6861
+ "ready.js"
6675
6862
  ]
6676
6863
  },
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
- ],
6815
- "flags": {
6816
- "project": {
6817
- "char": "P",
6818
- "description": "Project ID (uses first project if only one exists)",
6819
- "name": "project",
6820
- "hasDynamicHelp": false,
6821
- "multiple": false,
6822
- "type": "option"
6823
- },
6824
- "json": {
6825
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6826
- "name": "json",
6827
- "allowNo": false,
6828
- "type": "boolean"
6829
- },
6830
- "pr": {
6831
- "description": "Create a pull request for this work",
6832
- "name": "pr",
6833
- "allowNo": false,
6834
- "type": "boolean"
6835
- },
6836
- "draft": {
6837
- "description": "Create PR as draft (only with --pr)",
6838
- "name": "draft",
6839
- "allowNo": false,
6840
- "type": "boolean"
6841
- },
6842
- "no-pr": {
6843
- "description": "Skip PR creation prompt",
6844
- "name": "no-pr",
6845
- "allowNo": false,
6846
- "type": "boolean"
6847
- }
6848
- },
6849
- "hasDynamicHelp": false,
6850
- "hiddenAliases": [],
6851
- "id": "work:ready",
6852
- "pluginAlias": "@proletariat/cli",
6853
- "pluginName": "@proletariat/cli",
6854
- "pluginType": "core",
6855
- "strict": true,
6856
- "isESM": true,
6857
- "relativePath": [
6858
- "dist",
6859
- "commands",
6860
- "work",
6861
- "ready.js"
6862
- ]
6863
- },
6864
- "work:revise": {
6864
+ "work:revise": {
6865
6865
  "aliases": [],
6866
6866
  "args": {
6867
6867
  "ticketId": {
@@ -9256,37 +9256,33 @@
9256
9256
  "remove.js"
9257
9257
  ]
9258
9258
  },
9259
- "template:phase:apply": {
9259
+ "epic:link:block": {
9260
9260
  "aliases": [],
9261
9261
  "args": {
9262
- "template": {
9263
- "description": "Phase template ID to apply",
9264
- "name": "template",
9262
+ "id": {
9263
+ "description": "Epic ID that will be blocked",
9264
+ "name": "id",
9265
9265
  "required": true
9266
+ },
9267
+ "blocker": {
9268
+ "description": "Epic ID that blocks this epic",
9269
+ "name": "blocker",
9270
+ "required": false
9266
9271
  }
9267
9272
  },
9268
- "description": "Apply a phase template to a project",
9273
+ "description": "Add a blocking dependency (epic is blocked by another)",
9269
9274
  "examples": [
9270
- "<%= config.bin %> <%= command.id %> agile",
9271
- "<%= config.bin %> <%= command.id %> waterfall --project my-project",
9272
- "<%= config.bin %> <%= command.id %> agile --force"
9275
+ "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002 # EPIC-001 is blocked by EPIC-002"
9273
9276
  ],
9274
9277
  "flags": {
9275
9278
  "project": {
9276
- "char": "p",
9277
- "description": "Project ID or name",
9279
+ "char": "P",
9280
+ "description": "Project ID",
9278
9281
  "name": "project",
9279
9282
  "hasDynamicHelp": false,
9280
9283
  "multiple": false,
9281
9284
  "type": "option"
9282
9285
  },
9283
- "force": {
9284
- "char": "f",
9285
- "description": "Skip confirmation prompt (will replace existing phases)",
9286
- "name": "force",
9287
- "allowNo": false,
9288
- "type": "boolean"
9289
- },
9290
9286
  "json": {
9291
9287
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9292
9288
  "name": "json",
@@ -9296,48 +9292,353 @@
9296
9292
  },
9297
9293
  "hasDynamicHelp": false,
9298
9294
  "hiddenAliases": [],
9299
- "id": "template:phase:apply",
9295
+ "id": "epic:link:block",
9300
9296
  "pluginAlias": "@proletariat/cli",
9301
9297
  "pluginName": "@proletariat/cli",
9302
9298
  "pluginType": "core",
9303
9299
  "strict": true,
9304
- "enableJsonFlag": false,
9305
9300
  "isESM": true,
9306
9301
  "relativePath": [
9307
9302
  "dist",
9308
9303
  "commands",
9309
- "template",
9310
- "phase",
9311
- "apply.js"
9304
+ "epic",
9305
+ "link",
9306
+ "block.js"
9312
9307
  ]
9313
9308
  },
9314
- "template:phase:create": {
9309
+ "epic:link:duplicates": {
9315
9310
  "aliases": [],
9316
9311
  "args": {
9317
- "name": {
9318
- "description": "Name for the new template",
9319
- "name": "name",
9312
+ "id": {
9313
+ "description": "Duplicate epic ID",
9314
+ "name": "id",
9315
+ "required": true
9316
+ },
9317
+ "original": {
9318
+ "description": "Original epic ID",
9319
+ "name": "original",
9320
9320
  "required": false
9321
9321
  }
9322
9322
  },
9323
- "description": "Create a new phase template",
9323
+ "description": "Mark an epic as duplicate of another",
9324
9324
  "examples": [
9325
- "<%= config.bin %> <%= command.id %> \"My Phases\"",
9326
- "<%= config.bin %> <%= command.id %> \"Sprint Phases\" --description \"Agile sprint phases\""
9325
+ "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002"
9327
9326
  ],
9328
9327
  "flags": {
9329
- "description": {
9330
- "char": "d",
9331
- "description": "Template description",
9332
- "name": "description",
9328
+ "project": {
9329
+ "char": "P",
9330
+ "description": "Project ID",
9331
+ "name": "project",
9333
9332
  "hasDynamicHelp": false,
9334
9333
  "multiple": false,
9335
9334
  "type": "option"
9336
- }
9337
- },
9338
- "hasDynamicHelp": false,
9339
- "hiddenAliases": [],
9340
- "id": "template:phase:create",
9335
+ },
9336
+ "json": {
9337
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9338
+ "name": "json",
9339
+ "allowNo": false,
9340
+ "type": "boolean"
9341
+ }
9342
+ },
9343
+ "hasDynamicHelp": false,
9344
+ "hiddenAliases": [],
9345
+ "id": "epic:link:duplicates",
9346
+ "pluginAlias": "@proletariat/cli",
9347
+ "pluginName": "@proletariat/cli",
9348
+ "pluginType": "core",
9349
+ "strict": true,
9350
+ "isESM": true,
9351
+ "relativePath": [
9352
+ "dist",
9353
+ "commands",
9354
+ "epic",
9355
+ "link",
9356
+ "duplicates.js"
9357
+ ]
9358
+ },
9359
+ "epic:link": {
9360
+ "aliases": [],
9361
+ "args": {
9362
+ "id": {
9363
+ "description": "Epic ID",
9364
+ "name": "id",
9365
+ "required": false
9366
+ }
9367
+ },
9368
+ "description": "Manage epic dependencies (links)",
9369
+ "examples": [
9370
+ "<%= config.bin %> <%= command.id %> EPIC-001 # List dependencies",
9371
+ "<%= config.bin %> <%= command.id %> EPIC-001 --blocks EPIC-002 # EPIC-001 is blocked by EPIC-002",
9372
+ "<%= config.bin %> <%= command.id %> EPIC-001 --relates EPIC-002 # EPIC-001 relates to EPIC-002",
9373
+ "<%= config.bin %> <%= command.id %> EPIC-001 --duplicates EPIC-002",
9374
+ "<%= config.bin %> <%= command.id %> EPIC-001 --all # Show all links"
9375
+ ],
9376
+ "flags": {
9377
+ "project": {
9378
+ "char": "P",
9379
+ "description": "Project ID (default: \"default\")",
9380
+ "name": "project",
9381
+ "hasDynamicHelp": false,
9382
+ "multiple": false,
9383
+ "type": "option"
9384
+ },
9385
+ "blocks": {
9386
+ "char": "b",
9387
+ "description": "Add blocking dependency: this epic is blocked by TARGET",
9388
+ "name": "blocks",
9389
+ "hasDynamicHelp": false,
9390
+ "multiple": false,
9391
+ "type": "option"
9392
+ },
9393
+ "relates": {
9394
+ "char": "r",
9395
+ "description": "Add relates_to dependency",
9396
+ "name": "relates",
9397
+ "hasDynamicHelp": false,
9398
+ "multiple": false,
9399
+ "type": "option"
9400
+ },
9401
+ "duplicates": {
9402
+ "char": "d",
9403
+ "description": "Add duplicates dependency",
9404
+ "name": "duplicates",
9405
+ "hasDynamicHelp": false,
9406
+ "multiple": false,
9407
+ "type": "option"
9408
+ },
9409
+ "all": {
9410
+ "char": "a",
9411
+ "description": "Show all dependencies (blockers and blocking)",
9412
+ "name": "all",
9413
+ "allowNo": false,
9414
+ "type": "boolean"
9415
+ },
9416
+ "json": {
9417
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9418
+ "name": "json",
9419
+ "allowNo": false,
9420
+ "type": "boolean"
9421
+ }
9422
+ },
9423
+ "hasDynamicHelp": false,
9424
+ "hiddenAliases": [],
9425
+ "id": "epic:link",
9426
+ "pluginAlias": "@proletariat/cli",
9427
+ "pluginName": "@proletariat/cli",
9428
+ "pluginType": "core",
9429
+ "strict": true,
9430
+ "isESM": true,
9431
+ "relativePath": [
9432
+ "dist",
9433
+ "commands",
9434
+ "epic",
9435
+ "link",
9436
+ "index.js"
9437
+ ]
9438
+ },
9439
+ "epic:link:relates": {
9440
+ "aliases": [],
9441
+ "args": {
9442
+ "id": {
9443
+ "description": "Epic ID",
9444
+ "name": "id",
9445
+ "required": true
9446
+ },
9447
+ "target": {
9448
+ "description": "Related epic ID",
9449
+ "name": "target",
9450
+ "required": false
9451
+ }
9452
+ },
9453
+ "description": "Add a relates_to dependency (informational link)",
9454
+ "examples": [
9455
+ "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002"
9456
+ ],
9457
+ "flags": {
9458
+ "project": {
9459
+ "char": "P",
9460
+ "description": "Project ID",
9461
+ "name": "project",
9462
+ "hasDynamicHelp": false,
9463
+ "multiple": false,
9464
+ "type": "option"
9465
+ },
9466
+ "json": {
9467
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9468
+ "name": "json",
9469
+ "allowNo": false,
9470
+ "type": "boolean"
9471
+ }
9472
+ },
9473
+ "hasDynamicHelp": false,
9474
+ "hiddenAliases": [],
9475
+ "id": "epic:link:relates",
9476
+ "pluginAlias": "@proletariat/cli",
9477
+ "pluginName": "@proletariat/cli",
9478
+ "pluginType": "core",
9479
+ "strict": true,
9480
+ "isESM": true,
9481
+ "relativePath": [
9482
+ "dist",
9483
+ "commands",
9484
+ "epic",
9485
+ "link",
9486
+ "relates.js"
9487
+ ]
9488
+ },
9489
+ "epic:link:remove": {
9490
+ "aliases": [],
9491
+ "args": {
9492
+ "id": {
9493
+ "description": "Epic ID",
9494
+ "name": "id",
9495
+ "required": true
9496
+ },
9497
+ "target": {
9498
+ "description": "Target epic ID to unlink",
9499
+ "name": "target",
9500
+ "required": false
9501
+ }
9502
+ },
9503
+ "description": "Remove a dependency from an epic",
9504
+ "examples": [
9505
+ "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002",
9506
+ "<%= config.bin %> <%= command.id %> EPIC-001 --all"
9507
+ ],
9508
+ "flags": {
9509
+ "project": {
9510
+ "char": "P",
9511
+ "description": "Project ID",
9512
+ "name": "project",
9513
+ "hasDynamicHelp": false,
9514
+ "multiple": false,
9515
+ "type": "option"
9516
+ },
9517
+ "type": {
9518
+ "char": "t",
9519
+ "description": "Dependency type",
9520
+ "name": "type",
9521
+ "hasDynamicHelp": false,
9522
+ "multiple": false,
9523
+ "options": [
9524
+ "blocks",
9525
+ "relates_to",
9526
+ "duplicates"
9527
+ ],
9528
+ "type": "option"
9529
+ },
9530
+ "all": {
9531
+ "char": "a",
9532
+ "description": "Remove all dependencies",
9533
+ "name": "all",
9534
+ "allowNo": false,
9535
+ "type": "boolean"
9536
+ },
9537
+ "json": {
9538
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9539
+ "name": "json",
9540
+ "allowNo": false,
9541
+ "type": "boolean"
9542
+ }
9543
+ },
9544
+ "hasDynamicHelp": false,
9545
+ "hiddenAliases": [],
9546
+ "id": "epic:link:remove",
9547
+ "pluginAlias": "@proletariat/cli",
9548
+ "pluginName": "@proletariat/cli",
9549
+ "pluginType": "core",
9550
+ "strict": true,
9551
+ "isESM": true,
9552
+ "relativePath": [
9553
+ "dist",
9554
+ "commands",
9555
+ "epic",
9556
+ "link",
9557
+ "remove.js"
9558
+ ]
9559
+ },
9560
+ "template:phase:apply": {
9561
+ "aliases": [],
9562
+ "args": {
9563
+ "template": {
9564
+ "description": "Phase template ID to apply",
9565
+ "name": "template",
9566
+ "required": true
9567
+ }
9568
+ },
9569
+ "description": "Apply a phase template to a project",
9570
+ "examples": [
9571
+ "<%= config.bin %> <%= command.id %> agile",
9572
+ "<%= config.bin %> <%= command.id %> waterfall --project my-project",
9573
+ "<%= config.bin %> <%= command.id %> agile --force"
9574
+ ],
9575
+ "flags": {
9576
+ "project": {
9577
+ "char": "p",
9578
+ "description": "Project ID or name",
9579
+ "name": "project",
9580
+ "hasDynamicHelp": false,
9581
+ "multiple": false,
9582
+ "type": "option"
9583
+ },
9584
+ "force": {
9585
+ "char": "f",
9586
+ "description": "Skip confirmation prompt (will replace existing phases)",
9587
+ "name": "force",
9588
+ "allowNo": false,
9589
+ "type": "boolean"
9590
+ },
9591
+ "json": {
9592
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9593
+ "name": "json",
9594
+ "allowNo": false,
9595
+ "type": "boolean"
9596
+ }
9597
+ },
9598
+ "hasDynamicHelp": false,
9599
+ "hiddenAliases": [],
9600
+ "id": "template:phase:apply",
9601
+ "pluginAlias": "@proletariat/cli",
9602
+ "pluginName": "@proletariat/cli",
9603
+ "pluginType": "core",
9604
+ "strict": true,
9605
+ "enableJsonFlag": false,
9606
+ "isESM": true,
9607
+ "relativePath": [
9608
+ "dist",
9609
+ "commands",
9610
+ "template",
9611
+ "phase",
9612
+ "apply.js"
9613
+ ]
9614
+ },
9615
+ "template:phase:create": {
9616
+ "aliases": [],
9617
+ "args": {
9618
+ "name": {
9619
+ "description": "Name for the new template",
9620
+ "name": "name",
9621
+ "required": false
9622
+ }
9623
+ },
9624
+ "description": "Create a new phase template",
9625
+ "examples": [
9626
+ "<%= config.bin %> <%= command.id %> \"My Phases\"",
9627
+ "<%= config.bin %> <%= command.id %> \"Sprint Phases\" --description \"Agile sprint phases\""
9628
+ ],
9629
+ "flags": {
9630
+ "description": {
9631
+ "char": "d",
9632
+ "description": "Template description",
9633
+ "name": "description",
9634
+ "hasDynamicHelp": false,
9635
+ "multiple": false,
9636
+ "type": "option"
9637
+ }
9638
+ },
9639
+ "hasDynamicHelp": false,
9640
+ "hiddenAliases": [],
9641
+ "id": "template:phase:create",
9341
9642
  "pluginAlias": "@proletariat/cli",
9342
9643
  "pluginName": "@proletariat/cli",
9343
9644
  "pluginType": "core",
@@ -9745,229 +10046,22 @@
9745
10046
  "feature",
9746
10047
  "bug",
9747
10048
  "refactor",
9748
- "docs",
9749
- "test",
9750
- "chore",
9751
- "performance",
9752
- "ci",
9753
- "build",
9754
- "security",
9755
- "database",
9756
- "release"
9757
- ],
9758
- "type": "option"
9759
- }
9760
- },
9761
- "hasDynamicHelp": false,
9762
- "hiddenAliases": [],
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,
10049
+ "docs",
10050
+ "test",
10051
+ "chore",
10052
+ "performance",
10053
+ "ci",
10054
+ "build",
10055
+ "security",
10056
+ "database",
10057
+ "release"
10058
+ ],
9965
10059
  "type": "option"
9966
10060
  }
9967
10061
  },
9968
10062
  "hasDynamicHelp": false,
9969
10063
  "hiddenAliases": [],
9970
- "id": "ticket:template:save",
10064
+ "id": "ticket:template:create",
9971
10065
  "pluginAlias": "@proletariat/cli",
9972
10066
  "pluginName": "@proletariat/cli",
9973
10067
  "pluginType": "core",
@@ -9978,31 +10072,27 @@
9978
10072
  "commands",
9979
10073
  "ticket",
9980
10074
  "template",
9981
- "save.js"
10075
+ "create.js"
9982
10076
  ]
9983
10077
  },
9984
- "epic:link:block": {
10078
+ "ticket:template:delete": {
9985
10079
  "aliases": [],
9986
10080
  "args": {
9987
10081
  "id": {
9988
- "description": "Epic ID that will be blocked",
10082
+ "description": "Template ID to delete",
9989
10083
  "name": "id",
9990
- "required": true
9991
- },
9992
- "blocker": {
9993
- "description": "Epic ID that blocks this epic",
9994
- "name": "blocker",
9995
10084
  "required": false
9996
10085
  }
9997
10086
  },
9998
- "description": "Add a blocking dependency (epic is blocked by another)",
10087
+ "description": "Delete a ticket template",
9999
10088
  "examples": [
10000
- "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002 # EPIC-001 is blocked by EPIC-002"
10089
+ "<%= config.bin %> <%= command.id %> my-template",
10090
+ "<%= config.bin %> <%= command.id %> my-template --force"
10001
10091
  ],
10002
10092
  "flags": {
10003
10093
  "project": {
10004
10094
  "char": "P",
10005
- "description": "Project ID",
10095
+ "description": "Project ID (uses first project if only one exists)",
10006
10096
  "name": "project",
10007
10097
  "hasDynamicHelp": false,
10008
10098
  "multiple": false,
@@ -10013,11 +10103,18 @@
10013
10103
  "name": "json",
10014
10104
  "allowNo": false,
10015
10105
  "type": "boolean"
10106
+ },
10107
+ "force": {
10108
+ "char": "f",
10109
+ "description": "Skip confirmation",
10110
+ "name": "force",
10111
+ "allowNo": false,
10112
+ "type": "boolean"
10016
10113
  }
10017
10114
  },
10018
10115
  "hasDynamicHelp": false,
10019
10116
  "hiddenAliases": [],
10020
- "id": "epic:link:block",
10117
+ "id": "ticket:template:delete",
10021
10118
  "pluginAlias": "@proletariat/cli",
10022
10119
  "pluginName": "@proletariat/cli",
10023
10120
  "pluginType": "core",
@@ -10026,33 +10123,24 @@
10026
10123
  "relativePath": [
10027
10124
  "dist",
10028
10125
  "commands",
10029
- "epic",
10030
- "link",
10031
- "block.js"
10126
+ "ticket",
10127
+ "template",
10128
+ "delete.js"
10032
10129
  ]
10033
10130
  },
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",
10131
+ "ticket:template": {
10132
+ "aliases": [
10133
+ "ticket:templates"
10134
+ ],
10135
+ "args": {},
10136
+ "description": "Interactive menu for ticket template operations",
10049
10137
  "examples": [
10050
- "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002"
10138
+ "<%= config.bin %> <%= command.id %>"
10051
10139
  ],
10052
10140
  "flags": {
10053
10141
  "project": {
10054
10142
  "char": "P",
10055
- "description": "Project ID",
10143
+ "description": "Project ID (uses first project if only one exists)",
10056
10144
  "name": "project",
10057
10145
  "hasDynamicHelp": false,
10058
10146
  "multiple": false,
@@ -10067,7 +10155,7 @@
10067
10155
  },
10068
10156
  "hasDynamicHelp": false,
10069
10157
  "hiddenAliases": [],
10070
- "id": "epic:link:duplicates",
10158
+ "id": "ticket:template",
10071
10159
  "pluginAlias": "@proletariat/cli",
10072
10160
  "pluginName": "@proletariat/cli",
10073
10161
  "pluginType": "core",
@@ -10076,120 +10164,50 @@
10076
10164
  "relativePath": [
10077
10165
  "dist",
10078
10166
  "commands",
10079
- "epic",
10080
- "link",
10081
- "duplicates.js"
10167
+ "ticket",
10168
+ "template",
10169
+ "index.js"
10082
10170
  ]
10083
10171
  },
10084
- "epic:link": {
10172
+ "ticket:template:list": {
10085
10173
  "aliases": [],
10086
- "args": {
10087
- "id": {
10088
- "description": "Epic ID",
10089
- "name": "id",
10090
- "required": false
10091
- }
10092
- },
10093
- "description": "Manage epic dependencies (links)",
10174
+ "args": {},
10175
+ "description": "List available ticket templates",
10094
10176
  "examples": [
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"
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"
10100
10181
  ],
10101
10182
  "flags": {
10102
10183
  "project": {
10103
10184
  "char": "P",
10104
- "description": "Project ID (default: \"default\")",
10185
+ "description": "Project ID (uses first project if only one exists)",
10105
10186
  "name": "project",
10106
10187
  "hasDynamicHelp": false,
10107
10188
  "multiple": false,
10108
10189
  "type": "option"
10109
10190
  },
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",
10191
+ "builtin": {
10192
+ "description": "Show only built-in templates",
10193
+ "exclusive": [
10194
+ "custom"
10195
+ ],
10196
+ "name": "builtin",
10138
10197
  "allowNo": false,
10139
10198
  "type": "boolean"
10140
10199
  },
10141
- "json": {
10142
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10143
- "name": "json",
10200
+ "custom": {
10201
+ "description": "Show only custom templates",
10202
+ "exclusive": [
10203
+ "builtin"
10204
+ ],
10205
+ "name": "custom",
10144
10206
  "allowNo": false,
10145
10207
  "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"
10190
10208
  },
10191
10209
  "json": {
10192
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
10210
+ "description": "Output as JSON",
10193
10211
  "name": "json",
10194
10212
  "allowNo": false,
10195
10213
  "type": "boolean"
@@ -10197,7 +10215,7 @@
10197
10215
  },
10198
10216
  "hasDynamicHelp": false,
10199
10217
  "hiddenAliases": [],
10200
- "id": "epic:link:relates",
10218
+ "id": "ticket:template:list",
10201
10219
  "pluginAlias": "@proletariat/cli",
10202
10220
  "pluginName": "@proletariat/cli",
10203
10221
  "pluginType": "core",
@@ -10206,69 +10224,51 @@
10206
10224
  "relativePath": [
10207
10225
  "dist",
10208
10226
  "commands",
10209
- "epic",
10210
- "link",
10211
- "relates.js"
10227
+ "ticket",
10228
+ "template",
10229
+ "list.js"
10212
10230
  ]
10213
10231
  },
10214
- "epic:link:remove": {
10232
+ "ticket:template:save": {
10215
10233
  "aliases": [],
10216
10234
  "args": {
10217
- "id": {
10218
- "description": "Epic ID",
10219
- "name": "id",
10220
- "required": true
10235
+ "ticket": {
10236
+ "description": "Ticket ID to create template from",
10237
+ "name": "ticket",
10238
+ "required": false
10221
10239
  },
10222
- "target": {
10223
- "description": "Target epic ID to unlink",
10224
- "name": "target",
10240
+ "name": {
10241
+ "description": "Template name",
10242
+ "name": "name",
10225
10243
  "required": false
10226
10244
  }
10227
10245
  },
10228
- "description": "Remove a dependency from an epic",
10246
+ "description": "Create a template from an existing ticket",
10229
10247
  "examples": [
10230
- "<%= config.bin %> <%= command.id %> EPIC-001 EPIC-002",
10231
- "<%= config.bin %> <%= command.id %> EPIC-001 --all"
10248
+ "<%= config.bin %> <%= command.id %> TKT-001 \"Bug Report Template\"",
10249
+ "<%= config.bin %> <%= command.id %> TKT-042 \"Feature Request\" --description \"Standard feature request template\""
10232
10250
  ],
10233
10251
  "flags": {
10234
10252
  "project": {
10235
10253
  "char": "P",
10236
- "description": "Project ID",
10254
+ "description": "Project ID (uses first project if only one exists)",
10237
10255
  "name": "project",
10238
10256
  "hasDynamicHelp": false,
10239
10257
  "multiple": false,
10240
10258
  "type": "option"
10241
10259
  },
10242
- "type": {
10243
- "char": "t",
10244
- "description": "Dependency type",
10245
- "name": "type",
10260
+ "description": {
10261
+ "char": "d",
10262
+ "description": "Template description",
10263
+ "name": "description",
10246
10264
  "hasDynamicHelp": false,
10247
10265
  "multiple": false,
10248
- "options": [
10249
- "blocks",
10250
- "relates_to",
10251
- "duplicates"
10252
- ],
10253
10266
  "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": "epic:link:remove",
10271
+ "id": "ticket:template:save",
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
- "epic",
10281
- "link",
10282
- "remove.js"
10280
+ "ticket",
10281
+ "template",
10282
+ "save.js"
10283
10283
  ]
10284
10284
  },
10285
10285
  "ticket:link:block": {
@@ -10589,5 +10589,5 @@
10589
10589
  ]
10590
10590
  }
10591
10591
  },
10592
- "version": "0.3.2"
10592
+ "version": "0.3.3"
10593
10593
  }