@proletariat/cli 0.3.2 → 0.3.4

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 (3) hide show
  1. package/README.md +6 -6
  2. package/oclif.manifest.json +1540 -1540
  3. package/package.json +3 -2
@@ -3801,118 +3801,82 @@
3801
3801
  "view.js"
3802
3802
  ]
3803
3803
  },
3804
- "pmo:init": {
3804
+ "repo:add": {
3805
3805
  "aliases": [],
3806
- "args": {},
3807
- "description": "Initialize PMO (Project Management Office) in current directory or HQ",
3806
+ "args": {
3807
+ "path": {
3808
+ "description": "Repository path or Git URL",
3809
+ "name": "path",
3810
+ "required": false
3811
+ }
3812
+ },
3813
+ "description": "Add a repository to the HQ",
3808
3814
  "examples": [
3815
+ "<%= config.bin %> <%= command.id %> /path/to/repo",
3816
+ "<%= config.bin %> <%= command.id %> git@github.com:user/repo.git",
3809
3817
  "<%= config.bin %> <%= command.id %>",
3810
- "<%= config.bin %> <%= command.id %> --location repo:proletariat --template founder",
3811
- "<%= config.bin %> <%= command.id %> --location separate --template scrum"
3818
+ "<%= config.bin %> <%= command.id %> --bulk"
3812
3819
  ],
3813
3820
  "flags": {
3814
- "location": {
3815
- "char": "l",
3816
- "description": "PMO location (separate or repo:name)",
3817
- "name": "location",
3821
+ "project": {
3822
+ "char": "P",
3823
+ "description": "Project ID (uses first project if only one exists)",
3824
+ "name": "project",
3818
3825
  "hasDynamicHelp": false,
3819
3826
  "multiple": false,
3820
3827
  "type": "option"
3821
3828
  },
3822
- "template": {
3823
- "char": "t",
3824
- "description": "Board template",
3825
- "name": "template",
3829
+ "action": {
3830
+ "char": "a",
3831
+ "description": "Action for local paths",
3832
+ "name": "action",
3833
+ "default": "clone",
3826
3834
  "hasDynamicHelp": false,
3827
3835
  "multiple": false,
3828
3836
  "options": [
3829
- "kanban",
3830
- "scrum",
3831
- "founder",
3832
- "custom"
3837
+ "clone",
3838
+ "move"
3833
3839
  ],
3834
3840
  "type": "option"
3835
3841
  },
3836
- "name": {
3837
- "char": "n",
3838
- "description": "Board name",
3839
- "name": "name",
3840
- "hasDynamicHelp": false,
3841
- "multiple": false,
3842
- "type": "option"
3843
- },
3844
- "json": {
3845
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
3846
- "name": "json",
3842
+ "bulk": {
3843
+ "char": "b",
3844
+ "description": "Add multiple repositories interactively",
3845
+ "name": "bulk",
3847
3846
  "allowNo": false,
3848
3847
  "type": "boolean"
3849
3848
  }
3850
3849
  },
3851
3850
  "hasDynamicHelp": false,
3852
3851
  "hiddenAliases": [],
3853
- "id": "pmo:init",
3852
+ "id": "repo:add",
3854
3853
  "pluginAlias": "@proletariat/cli",
3855
3854
  "pluginName": "@proletariat/cli",
3856
3855
  "pluginType": "core",
3857
3856
  "strict": true,
3858
- "enableJsonFlag": false,
3859
3857
  "isESM": true,
3860
3858
  "relativePath": [
3861
3859
  "dist",
3862
3860
  "commands",
3863
- "pmo",
3864
- "init.js"
3861
+ "repo",
3862
+ "add.js"
3865
3863
  ]
3866
3864
  },
3867
- "pr:create": {
3865
+ "repo": {
3868
3866
  "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",
3867
+ "args": {},
3868
+ "description": "Repository management operations",
3877
3869
  "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"
3870
+ "<%= config.bin %> <%= command.id %> list",
3871
+ "<%= config.bin %> <%= command.id %> add /path/to/repo",
3872
+ "<%= config.bin %> <%= command.id %> remove my-repo",
3873
+ "<%= config.bin %> <%= command.id %> view my-repo"
3882
3874
  ],
3883
3875
  "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",
3876
+ "project": {
3877
+ "char": "P",
3878
+ "description": "Project ID (uses first project if only one exists)",
3879
+ "name": "project",
3916
3880
  "hasDynamicHelp": false,
3917
3881
  "multiple": false,
3918
3882
  "type": "option"
@@ -3926,83 +3890,111 @@
3926
3890
  },
3927
3891
  "hasDynamicHelp": false,
3928
3892
  "hiddenAliases": [],
3929
- "id": "pr:create",
3893
+ "id": "repo",
3930
3894
  "pluginAlias": "@proletariat/cli",
3931
3895
  "pluginName": "@proletariat/cli",
3932
3896
  "pluginType": "core",
3933
3897
  "strict": true,
3934
- "enableJsonFlag": false,
3935
3898
  "isESM": true,
3936
3899
  "relativePath": [
3937
3900
  "dist",
3938
3901
  "commands",
3939
- "pr",
3940
- "create.js"
3902
+ "repo",
3903
+ "index.js"
3941
3904
  ]
3942
3905
  },
3943
- "pr": {
3906
+ "repo:list": {
3944
3907
  "aliases": [],
3945
3908
  "args": {},
3946
- "description": "Interactive menu for pull request operations",
3909
+ "description": "List all repositories in the HQ",
3947
3910
  "examples": [
3948
- "<%= config.bin %> <%= command.id %>"
3911
+ "<%= config.bin %> <%= command.id %>",
3912
+ "<%= config.bin %> <%= command.id %> --format compact",
3913
+ "<%= config.bin %> <%= command.id %> --format json"
3949
3914
  ],
3950
3915
  "flags": {
3951
- "json": {
3952
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
3953
- "name": "json",
3954
- "allowNo": false,
3955
- "type": "boolean"
3916
+ "project": {
3917
+ "char": "P",
3918
+ "description": "Project ID (uses first project if only one exists)",
3919
+ "name": "project",
3920
+ "hasDynamicHelp": false,
3921
+ "multiple": false,
3922
+ "type": "option"
3923
+ },
3924
+ "format": {
3925
+ "char": "f",
3926
+ "description": "Output format",
3927
+ "name": "format",
3928
+ "default": "table",
3929
+ "hasDynamicHelp": false,
3930
+ "multiple": false,
3931
+ "options": [
3932
+ "table",
3933
+ "compact",
3934
+ "json"
3935
+ ],
3936
+ "type": "option"
3956
3937
  }
3957
3938
  },
3958
3939
  "hasDynamicHelp": false,
3959
3940
  "hiddenAliases": [],
3960
- "id": "pr",
3941
+ "id": "repo:list",
3961
3942
  "pluginAlias": "@proletariat/cli",
3962
3943
  "pluginName": "@proletariat/cli",
3963
3944
  "pluginType": "core",
3964
3945
  "strict": true,
3965
- "enableJsonFlag": false,
3966
3946
  "isESM": true,
3967
3947
  "relativePath": [
3968
3948
  "dist",
3969
3949
  "commands",
3970
- "pr",
3971
- "index.js"
3950
+ "repo",
3951
+ "list.js"
3972
3952
  ]
3973
3953
  },
3974
- "pr:link": {
3954
+ "repo:remove": {
3975
3955
  "aliases": [],
3976
3956
  "args": {
3977
- "ticketId": {
3978
- "description": "Ticket ID to link PR to",
3979
- "name": "ticketId",
3957
+ "name": {
3958
+ "description": "Repository name to remove",
3959
+ "name": "name",
3980
3960
  "required": false
3981
3961
  }
3982
3962
  },
3983
- "description": "Link an existing GitHub pull request to a ticket",
3963
+ "description": "Remove a repository from the HQ",
3984
3964
  "examples": [
3965
+ "<%= config.bin %> <%= command.id %> my-repo",
3966
+ "<%= config.bin %> <%= command.id %> my-repo --force",
3985
3967
  "<%= 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"
3968
+ "<%= config.bin %> <%= command.id %> --bulk"
3989
3969
  ],
3990
3970
  "flags": {
3991
- "pr": {
3992
- "char": "p",
3993
- "description": "PR number to link",
3994
- "name": "pr",
3971
+ "project": {
3972
+ "char": "P",
3973
+ "description": "Project ID (uses first project if only one exists)",
3974
+ "name": "project",
3995
3975
  "hasDynamicHelp": false,
3996
3976
  "multiple": false,
3997
3977
  "type": "option"
3998
3978
  },
3999
- "url": {
4000
- "char": "u",
4001
- "description": "PR URL to link",
4002
- "name": "url",
4003
- "hasDynamicHelp": false,
4004
- "multiple": false,
4005
- "type": "option"
3979
+ "force": {
3980
+ "char": "f",
3981
+ "description": "Skip confirmation prompt",
3982
+ "name": "force",
3983
+ "allowNo": false,
3984
+ "type": "boolean"
3985
+ },
3986
+ "keep-files": {
3987
+ "description": "Remove from database but keep files",
3988
+ "name": "keep-files",
3989
+ "allowNo": false,
3990
+ "type": "boolean"
3991
+ },
3992
+ "bulk": {
3993
+ "char": "b",
3994
+ "description": "Remove multiple repositories interactively",
3995
+ "name": "bulk",
3996
+ "allowNo": false,
3997
+ "type": "boolean"
4006
3998
  },
4007
3999
  "json": {
4008
4000
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
@@ -4013,56 +4005,56 @@
4013
4005
  },
4014
4006
  "hasDynamicHelp": false,
4015
4007
  "hiddenAliases": [],
4016
- "id": "pr:link",
4008
+ "id": "repo:remove",
4017
4009
  "pluginAlias": "@proletariat/cli",
4018
4010
  "pluginName": "@proletariat/cli",
4019
4011
  "pluginType": "core",
4020
4012
  "strict": true,
4021
- "enableJsonFlag": false,
4022
4013
  "isESM": true,
4023
4014
  "relativePath": [
4024
4015
  "dist",
4025
4016
  "commands",
4026
- "pr",
4027
- "link.js"
4017
+ "repo",
4018
+ "remove.js"
4028
4019
  ]
4029
4020
  },
4030
- "pr:status": {
4021
+ "repo:view": {
4031
4022
  "aliases": [],
4032
4023
  "args": {
4033
- "ticketId": {
4034
- "description": "Ticket ID to check PR status for",
4035
- "name": "ticketId",
4024
+ "name": {
4025
+ "description": "Repository name to view",
4026
+ "name": "name",
4036
4027
  "required": false
4037
4028
  }
4038
4029
  },
4039
- "description": "View PR status for a ticket",
4030
+ "description": "View detailed information about a repository",
4040
4031
  "examples": [
4041
- "<%= config.bin %> <%= command.id %>",
4042
- "<%= config.bin %> <%= command.id %> TKT-001"
4032
+ "<%= config.bin %> <%= command.id %> my-repo",
4033
+ "<%= config.bin %> <%= command.id %>"
4043
4034
  ],
4044
4035
  "flags": {
4045
- "json": {
4046
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4047
- "name": "json",
4048
- "allowNo": false,
4049
- "type": "boolean"
4036
+ "project": {
4037
+ "char": "P",
4038
+ "description": "Project ID (uses first project if only one exists)",
4039
+ "name": "project",
4040
+ "hasDynamicHelp": false,
4041
+ "multiple": false,
4042
+ "type": "option"
4050
4043
  }
4051
4044
  },
4052
4045
  "hasDynamicHelp": false,
4053
4046
  "hiddenAliases": [],
4054
- "id": "pr:status",
4047
+ "id": "repo:view",
4055
4048
  "pluginAlias": "@proletariat/cli",
4056
4049
  "pluginName": "@proletariat/cli",
4057
4050
  "pluginType": "core",
4058
4051
  "strict": true,
4059
- "enableJsonFlag": false,
4060
4052
  "isESM": true,
4061
4053
  "relativePath": [
4062
4054
  "dist",
4063
4055
  "commands",
4064
- "pr",
4065
- "status.js"
4056
+ "repo",
4057
+ "view.js"
4066
4058
  ]
4067
4059
  },
4068
4060
  "session:attach": {
@@ -4214,82 +4206,118 @@
4214
4206
  "list.js"
4215
4207
  ]
4216
4208
  },
4217
- "repo:add": {
4209
+ "pmo:init": {
4218
4210
  "aliases": [],
4219
- "args": {
4220
- "path": {
4221
- "description": "Repository path or Git URL",
4222
- "name": "path",
4223
- "required": false
4224
- }
4225
- },
4226
- "description": "Add a repository to the HQ",
4211
+ "args": {},
4212
+ "description": "Initialize PMO (Project Management Office) in current directory or HQ",
4227
4213
  "examples": [
4228
- "<%= config.bin %> <%= command.id %> /path/to/repo",
4229
- "<%= config.bin %> <%= command.id %> git@github.com:user/repo.git",
4230
4214
  "<%= config.bin %> <%= command.id %>",
4231
- "<%= config.bin %> <%= command.id %> --bulk"
4215
+ "<%= config.bin %> <%= command.id %> --location repo:proletariat --template founder",
4216
+ "<%= config.bin %> <%= command.id %> --location separate --template scrum"
4232
4217
  ],
4233
4218
  "flags": {
4234
- "project": {
4235
- "char": "P",
4236
- "description": "Project ID (uses first project if only one exists)",
4237
- "name": "project",
4219
+ "location": {
4220
+ "char": "l",
4221
+ "description": "PMO location (separate or repo:name)",
4222
+ "name": "location",
4238
4223
  "hasDynamicHelp": false,
4239
4224
  "multiple": false,
4240
4225
  "type": "option"
4241
4226
  },
4242
- "action": {
4243
- "char": "a",
4244
- "description": "Action for local paths",
4245
- "name": "action",
4246
- "default": "clone",
4227
+ "template": {
4228
+ "char": "t",
4229
+ "description": "Board template",
4230
+ "name": "template",
4247
4231
  "hasDynamicHelp": false,
4248
4232
  "multiple": false,
4249
4233
  "options": [
4250
- "clone",
4251
- "move"
4234
+ "kanban",
4235
+ "scrum",
4236
+ "founder",
4237
+ "custom"
4252
4238
  ],
4253
4239
  "type": "option"
4254
4240
  },
4255
- "bulk": {
4256
- "char": "b",
4257
- "description": "Add multiple repositories interactively",
4258
- "name": "bulk",
4241
+ "name": {
4242
+ "char": "n",
4243
+ "description": "Board name",
4244
+ "name": "name",
4245
+ "hasDynamicHelp": false,
4246
+ "multiple": false,
4247
+ "type": "option"
4248
+ },
4249
+ "json": {
4250
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4251
+ "name": "json",
4259
4252
  "allowNo": false,
4260
4253
  "type": "boolean"
4261
4254
  }
4262
4255
  },
4263
4256
  "hasDynamicHelp": false,
4264
4257
  "hiddenAliases": [],
4265
- "id": "repo:add",
4258
+ "id": "pmo:init",
4266
4259
  "pluginAlias": "@proletariat/cli",
4267
4260
  "pluginName": "@proletariat/cli",
4268
4261
  "pluginType": "core",
4269
4262
  "strict": true,
4263
+ "enableJsonFlag": false,
4270
4264
  "isESM": true,
4271
4265
  "relativePath": [
4272
4266
  "dist",
4273
4267
  "commands",
4274
- "repo",
4275
- "add.js"
4268
+ "pmo",
4269
+ "init.js"
4276
4270
  ]
4277
4271
  },
4278
- "repo": {
4272
+ "pr:create": {
4279
4273
  "aliases": [],
4280
- "args": {},
4281
- "description": "Repository management operations",
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",
4282
4282
  "examples": [
4283
- "<%= config.bin %> <%= command.id %> list",
4284
- "<%= config.bin %> <%= command.id %> add /path/to/repo",
4285
- "<%= config.bin %> <%= command.id %> remove my-repo",
4286
- "<%= config.bin %> <%= command.id %> view my-repo"
4283
+ "<%= config.bin %> <%= command.id %>",
4284
+ "<%= config.bin %> <%= command.id %> TKT-001",
4285
+ "<%= config.bin %> <%= command.id %> --draft",
4286
+ "<%= config.bin %> <%= command.id %> --base develop"
4287
4287
  ],
4288
4288
  "flags": {
4289
- "project": {
4290
- "char": "P",
4291
- "description": "Project ID (uses first project if only one exists)",
4292
- "name": "project",
4289
+ "base": {
4290
+ "char": "b",
4291
+ "description": "Base branch for the PR (defaults to main/master)",
4292
+ "name": "base",
4293
+ "hasDynamicHelp": false,
4294
+ "multiple": false,
4295
+ "type": "option"
4296
+ },
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": {
4311
+ "char": "t",
4312
+ "description": "PR title (auto-generated from ticket if not provided)",
4313
+ "name": "title",
4314
+ "hasDynamicHelp": false,
4315
+ "multiple": false,
4316
+ "type": "option"
4317
+ },
4318
+ "body": {
4319
+ "description": "PR body/description",
4320
+ "name": "body",
4293
4321
  "hasDynamicHelp": false,
4294
4322
  "multiple": false,
4295
4323
  "type": "option"
@@ -4303,111 +4331,83 @@
4303
4331
  },
4304
4332
  "hasDynamicHelp": false,
4305
4333
  "hiddenAliases": [],
4306
- "id": "repo",
4334
+ "id": "pr:create",
4307
4335
  "pluginAlias": "@proletariat/cli",
4308
4336
  "pluginName": "@proletariat/cli",
4309
4337
  "pluginType": "core",
4310
4338
  "strict": true,
4339
+ "enableJsonFlag": false,
4311
4340
  "isESM": true,
4312
4341
  "relativePath": [
4313
4342
  "dist",
4314
4343
  "commands",
4315
- "repo",
4316
- "index.js"
4344
+ "pr",
4345
+ "create.js"
4317
4346
  ]
4318
4347
  },
4319
- "repo:list": {
4348
+ "pr": {
4320
4349
  "aliases": [],
4321
4350
  "args": {},
4322
- "description": "List all repositories in the HQ",
4351
+ "description": "Interactive menu for pull request operations",
4323
4352
  "examples": [
4324
- "<%= config.bin %> <%= command.id %>",
4325
- "<%= config.bin %> <%= command.id %> --format compact",
4326
- "<%= config.bin %> <%= command.id %> --format json"
4353
+ "<%= config.bin %> <%= command.id %>"
4327
4354
  ],
4328
4355
  "flags": {
4329
- "project": {
4330
- "char": "P",
4331
- "description": "Project ID (uses first project if only one exists)",
4332
- "name": "project",
4333
- "hasDynamicHelp": false,
4334
- "multiple": false,
4335
- "type": "option"
4336
- },
4337
- "format": {
4338
- "char": "f",
4339
- "description": "Output format",
4340
- "name": "format",
4341
- "default": "table",
4342
- "hasDynamicHelp": false,
4343
- "multiple": false,
4344
- "options": [
4345
- "table",
4346
- "compact",
4347
- "json"
4348
- ],
4349
- "type": "option"
4356
+ "json": {
4357
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4358
+ "name": "json",
4359
+ "allowNo": false,
4360
+ "type": "boolean"
4350
4361
  }
4351
4362
  },
4352
4363
  "hasDynamicHelp": false,
4353
4364
  "hiddenAliases": [],
4354
- "id": "repo:list",
4365
+ "id": "pr",
4355
4366
  "pluginAlias": "@proletariat/cli",
4356
4367
  "pluginName": "@proletariat/cli",
4357
4368
  "pluginType": "core",
4358
4369
  "strict": true,
4370
+ "enableJsonFlag": false,
4359
4371
  "isESM": true,
4360
4372
  "relativePath": [
4361
4373
  "dist",
4362
4374
  "commands",
4363
- "repo",
4364
- "list.js"
4375
+ "pr",
4376
+ "index.js"
4365
4377
  ]
4366
4378
  },
4367
- "repo:remove": {
4379
+ "pr:link": {
4368
4380
  "aliases": [],
4369
4381
  "args": {
4370
- "name": {
4371
- "description": "Repository name to remove",
4372
- "name": "name",
4382
+ "ticketId": {
4383
+ "description": "Ticket ID to link PR to",
4384
+ "name": "ticketId",
4373
4385
  "required": false
4374
4386
  }
4375
4387
  },
4376
- "description": "Remove a repository from the HQ",
4388
+ "description": "Link an existing GitHub pull request to a ticket",
4377
4389
  "examples": [
4378
- "<%= config.bin %> <%= command.id %> my-repo",
4379
- "<%= config.bin %> <%= command.id %> my-repo --force",
4380
4390
  "<%= config.bin %> <%= command.id %>",
4381
- "<%= config.bin %> <%= command.id %> --bulk"
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"
4382
4394
  ],
4383
4395
  "flags": {
4384
- "project": {
4385
- "char": "P",
4386
- "description": "Project ID (uses first project if only one exists)",
4387
- "name": "project",
4396
+ "pr": {
4397
+ "char": "p",
4398
+ "description": "PR number to link",
4399
+ "name": "pr",
4388
4400
  "hasDynamicHelp": false,
4389
4401
  "multiple": false,
4390
4402
  "type": "option"
4391
4403
  },
4392
- "force": {
4393
- "char": "f",
4394
- "description": "Skip confirmation prompt",
4395
- "name": "force",
4396
- "allowNo": false,
4397
- "type": "boolean"
4398
- },
4399
- "keep-files": {
4400
- "description": "Remove from database but keep files",
4401
- "name": "keep-files",
4402
- "allowNo": false,
4403
- "type": "boolean"
4404
- },
4405
- "bulk": {
4406
- "char": "b",
4407
- "description": "Remove multiple repositories interactively",
4408
- "name": "bulk",
4409
- "allowNo": false,
4410
- "type": "boolean"
4404
+ "url": {
4405
+ "char": "u",
4406
+ "description": "PR URL to link",
4407
+ "name": "url",
4408
+ "hasDynamicHelp": false,
4409
+ "multiple": false,
4410
+ "type": "option"
4411
4411
  },
4412
4412
  "json": {
4413
4413
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
@@ -4418,56 +4418,56 @@
4418
4418
  },
4419
4419
  "hasDynamicHelp": false,
4420
4420
  "hiddenAliases": [],
4421
- "id": "repo:remove",
4421
+ "id": "pr:link",
4422
4422
  "pluginAlias": "@proletariat/cli",
4423
4423
  "pluginName": "@proletariat/cli",
4424
4424
  "pluginType": "core",
4425
4425
  "strict": true,
4426
+ "enableJsonFlag": false,
4426
4427
  "isESM": true,
4427
4428
  "relativePath": [
4428
4429
  "dist",
4429
4430
  "commands",
4430
- "repo",
4431
- "remove.js"
4431
+ "pr",
4432
+ "link.js"
4432
4433
  ]
4433
4434
  },
4434
- "repo:view": {
4435
+ "pr:status": {
4435
4436
  "aliases": [],
4436
4437
  "args": {
4437
- "name": {
4438
- "description": "Repository name to view",
4439
- "name": "name",
4438
+ "ticketId": {
4439
+ "description": "Ticket ID to check PR status for",
4440
+ "name": "ticketId",
4440
4441
  "required": false
4441
4442
  }
4442
4443
  },
4443
- "description": "View detailed information about a repository",
4444
+ "description": "View PR status for a ticket",
4444
4445
  "examples": [
4445
- "<%= config.bin %> <%= command.id %> my-repo",
4446
- "<%= config.bin %> <%= command.id %>"
4446
+ "<%= config.bin %> <%= command.id %>",
4447
+ "<%= config.bin %> <%= command.id %> TKT-001"
4447
4448
  ],
4448
4449
  "flags": {
4449
- "project": {
4450
- "char": "P",
4451
- "description": "Project ID (uses first project if only one exists)",
4452
- "name": "project",
4453
- "hasDynamicHelp": false,
4454
- "multiple": false,
4455
- "type": "option"
4450
+ "json": {
4451
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4452
+ "name": "json",
4453
+ "allowNo": false,
4454
+ "type": "boolean"
4456
4455
  }
4457
4456
  },
4458
4457
  "hasDynamicHelp": false,
4459
4458
  "hiddenAliases": [],
4460
- "id": "repo:view",
4459
+ "id": "pr:status",
4461
4460
  "pluginAlias": "@proletariat/cli",
4462
4461
  "pluginName": "@proletariat/cli",
4463
4462
  "pluginType": "core",
4464
4463
  "strict": true,
4464
+ "enableJsonFlag": false,
4465
4465
  "isESM": true,
4466
4466
  "relativePath": [
4467
4467
  "dist",
4468
4468
  "commands",
4469
- "repo",
4470
- "view.js"
4469
+ "pr",
4470
+ "status.js"
4471
4471
  ]
4472
4472
  },
4473
4473
  "template:delete": {
@@ -4639,19 +4639,19 @@
4639
4639
  "list.js"
4640
4640
  ]
4641
4641
  },
4642
- "status:create": {
4642
+ "spec:create": {
4643
4643
  "aliases": [],
4644
4644
  "args": {
4645
- "name": {
4646
- "description": "Status name",
4647
- "name": "name",
4645
+ "title": {
4646
+ "description": "Spec title",
4647
+ "name": "title",
4648
4648
  "required": false
4649
4649
  }
4650
4650
  },
4651
- "description": "Create a new workflow status",
4651
+ "description": "Create a new spec",
4652
4652
  "examples": [
4653
- "<%= config.bin %> <%= command.id %> \"In Review\" --category started",
4654
- "<%= config.bin %> <%= command.id %> --name \"Blocked\" --category started --color \"#EF4444\"",
4653
+ "<%= config.bin %> <%= command.id %> \"User Authentication\"",
4654
+ "<%= config.bin %> <%= command.id %> --title \"API Design\" --type product",
4655
4655
  "<%= config.bin %> <%= command.id %> -i # Interactive mode"
4656
4656
  ],
4657
4657
  "flags": {
@@ -4663,50 +4663,48 @@
4663
4663
  "multiple": false,
4664
4664
  "type": "option"
4665
4665
  },
4666
- "name": {
4667
- "char": "n",
4668
- "description": "Status name",
4669
- "name": "name",
4666
+ "title": {
4667
+ "char": "t",
4668
+ "description": "Spec title",
4669
+ "name": "title",
4670
4670
  "hasDynamicHelp": false,
4671
4671
  "multiple": false,
4672
4672
  "type": "option"
4673
4673
  },
4674
- "category": {
4675
- "char": "c",
4676
- "description": "Status category",
4677
- "name": "category",
4674
+ "status": {
4675
+ "char": "s",
4676
+ "description": "Spec status",
4677
+ "name": "status",
4678
+ "default": "draft",
4678
4679
  "hasDynamicHelp": false,
4679
4680
  "multiple": false,
4680
4681
  "options": [
4681
- "backlog",
4682
- "unstarted",
4683
- "started",
4684
- "completed",
4685
- "canceled"
4682
+ "draft",
4683
+ "active",
4684
+ "implemented"
4686
4685
  ],
4687
4686
  "type": "option"
4688
4687
  },
4689
- "color": {
4690
- "description": "Hex color code (e.g., #FF0000)",
4691
- "name": "color",
4688
+ "type": {
4689
+ "description": "Spec type",
4690
+ "name": "type",
4692
4691
  "hasDynamicHelp": false,
4693
4692
  "multiple": false,
4693
+ "options": [
4694
+ "product",
4695
+ "platform",
4696
+ "infra",
4697
+ "integration"
4698
+ ],
4694
4699
  "type": "option"
4695
4700
  },
4696
- "description": {
4697
- "char": "d",
4698
- "description": "Status description",
4699
- "name": "description",
4701
+ "problem": {
4702
+ "description": "Problem statement",
4703
+ "name": "problem",
4700
4704
  "hasDynamicHelp": false,
4701
4705
  "multiple": false,
4702
4706
  "type": "option"
4703
4707
  },
4704
- "default": {
4705
- "description": "Set as default status for new tickets",
4706
- "name": "default",
4707
- "allowNo": false,
4708
- "type": "boolean"
4709
- },
4710
4708
  "interactive": {
4711
4709
  "char": "i",
4712
4710
  "description": "Interactive mode",
@@ -4723,7 +4721,7 @@
4723
4721
  },
4724
4722
  "hasDynamicHelp": false,
4725
4723
  "hiddenAliases": [],
4726
- "id": "status:create",
4724
+ "id": "spec:create",
4727
4725
  "pluginAlias": "@proletariat/cli",
4728
4726
  "pluginName": "@proletariat/cli",
4729
4727
  "pluginType": "core",
@@ -4732,60 +4730,14 @@
4732
4730
  "relativePath": [
4733
4731
  "dist",
4734
4732
  "commands",
4735
- "status",
4733
+ "spec",
4736
4734
  "create.js"
4737
4735
  ]
4738
4736
  },
4739
- "status:delete": {
4737
+ "spec": {
4740
4738
  "aliases": [],
4741
- "args": {
4742
- "id": {
4743
- "description": "Status ID",
4744
- "name": "id",
4745
- "required": true
4746
- }
4747
- },
4748
- "description": "Delete a workflow status",
4749
- "examples": [
4750
- "<%= config.bin %> <%= command.id %> my-project-blocked",
4751
- "<%= config.bin %> <%= command.id %> my-project-review --force"
4752
- ],
4753
- "flags": {
4754
- "json": {
4755
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4756
- "name": "json",
4757
- "allowNo": false,
4758
- "type": "boolean"
4759
- },
4760
- "force": {
4761
- "char": "f",
4762
- "description": "Skip confirmation prompt",
4763
- "name": "force",
4764
- "allowNo": false,
4765
- "type": "boolean"
4766
- }
4767
- },
4768
- "hasDynamicHelp": false,
4769
- "hiddenAliases": [],
4770
- "id": "status:delete",
4771
- "pluginAlias": "@proletariat/cli",
4772
- "pluginName": "@proletariat/cli",
4773
- "pluginType": "core",
4774
- "strict": true,
4775
- "isESM": true,
4776
- "relativePath": [
4777
- "dist",
4778
- "commands",
4779
- "status",
4780
- "delete.js"
4781
- ]
4782
- },
4783
- "status": {
4784
- "aliases": [
4785
- "statuses"
4786
- ],
4787
4739
  "args": {},
4788
- "description": "Interactive menu for workflow status operations",
4740
+ "description": "Interactive menu for spec operations",
4789
4741
  "examples": [
4790
4742
  "<%= config.bin %> <%= command.id %>"
4791
4743
  ],
@@ -4807,7 +4759,7 @@
4807
4759
  },
4808
4760
  "hasDynamicHelp": false,
4809
4761
  "hiddenAliases": [],
4810
- "id": "status",
4762
+ "id": "spec",
4811
4763
  "pluginAlias": "@proletariat/cli",
4812
4764
  "pluginName": "@proletariat/cli",
4813
4765
  "pluginType": "core",
@@ -4816,18 +4768,18 @@
4816
4768
  "relativePath": [
4817
4769
  "dist",
4818
4770
  "commands",
4819
- "status",
4771
+ "spec",
4820
4772
  "index.js"
4821
4773
  ]
4822
4774
  },
4823
- "status:list": {
4775
+ "spec:list": {
4824
4776
  "aliases": [],
4825
4777
  "args": {},
4826
- "description": "List all workflow statuses for a project",
4778
+ "description": "List all specs",
4827
4779
  "examples": [
4828
4780
  "<%= config.bin %> <%= command.id %>",
4829
- "<%= config.bin %> <%= command.id %> --project my-project",
4830
- "<%= config.bin %> <%= command.id %> --category started"
4781
+ "<%= config.bin %> <%= command.id %> --status active",
4782
+ "<%= config.bin %> <%= command.id %> --type product"
4831
4783
  ],
4832
4784
  "flags": {
4833
4785
  "project": {
@@ -4838,31 +4790,44 @@
4838
4790
  "multiple": false,
4839
4791
  "type": "option"
4840
4792
  },
4841
- "category": {
4842
- "char": "c",
4843
- "description": "Filter by category",
4844
- "name": "category",
4793
+ "status": {
4794
+ "char": "s",
4795
+ "description": "Filter by status",
4796
+ "name": "status",
4845
4797
  "hasDynamicHelp": false,
4846
4798
  "multiple": false,
4847
4799
  "options": [
4848
- "backlog",
4849
- "unstarted",
4850
- "started",
4851
- "completed",
4852
- "canceled"
4800
+ "draft",
4801
+ "active",
4802
+ "implemented"
4853
4803
  ],
4854
4804
  "type": "option"
4855
4805
  },
4856
- "json": {
4857
- "description": "Output as JSON",
4858
- "name": "json",
4859
- "allowNo": false,
4860
- "type": "boolean"
4806
+ "type": {
4807
+ "char": "t",
4808
+ "description": "Filter by type",
4809
+ "name": "type",
4810
+ "hasDynamicHelp": false,
4811
+ "multiple": false,
4812
+ "options": [
4813
+ "product",
4814
+ "platform",
4815
+ "infra",
4816
+ "integration"
4817
+ ],
4818
+ "type": "option"
4819
+ },
4820
+ "search": {
4821
+ "description": "Search in title/problem/solution",
4822
+ "name": "search",
4823
+ "hasDynamicHelp": false,
4824
+ "multiple": false,
4825
+ "type": "option"
4861
4826
  }
4862
4827
  },
4863
4828
  "hasDynamicHelp": false,
4864
4829
  "hiddenAliases": [],
4865
- "id": "status:list",
4830
+ "id": "spec:list",
4866
4831
  "pluginAlias": "@proletariat/cli",
4867
4832
  "pluginName": "@proletariat/cli",
4868
4833
  "pluginType": "core",
@@ -4871,24 +4836,23 @@
4871
4836
  "relativePath": [
4872
4837
  "dist",
4873
4838
  "commands",
4874
- "status",
4839
+ "spec",
4875
4840
  "list.js"
4876
4841
  ]
4877
4842
  },
4878
- "status:move": {
4843
+ "spec:plan": {
4879
4844
  "aliases": [],
4880
4845
  "args": {
4881
- "id": {
4882
- "description": "Status ID - prompts with dropdown if not provided",
4883
- "name": "id",
4846
+ "spec": {
4847
+ "description": "Spec ID",
4848
+ "name": "spec",
4884
4849
  "required": false
4885
4850
  }
4886
4851
  },
4887
- "description": "Reorder a status within its category",
4852
+ "description": "Generate tickets from spec by comparing ideal state vs codebase (uses LLM)",
4888
4853
  "examples": [
4889
- "<%= config.bin %> <%= command.id %> my-project-in-review --position 0 # Move to first",
4890
- "<%= config.bin %> <%= command.id %> my-project-blocked --position 2",
4891
- "<%= config.bin %> <%= command.id %> # Interactive mode"
4854
+ "<%= config.bin %> <%= command.id %> user-authentication",
4855
+ "<%= config.bin %> <%= command.id %> --spec api-design --dry-run"
4892
4856
  ],
4893
4857
  "flags": {
4894
4858
  "project": {
@@ -4905,19 +4869,24 @@
4905
4869
  "allowNo": false,
4906
4870
  "type": "boolean"
4907
4871
  },
4908
- "position": {
4909
- "char": "p",
4910
- "description": "New position (0-indexed) within the category",
4911
- "name": "position",
4912
- "required": false,
4872
+ "spec": {
4873
+ "char": "s",
4874
+ "description": "Spec ID",
4875
+ "name": "spec",
4913
4876
  "hasDynamicHelp": false,
4914
4877
  "multiple": false,
4915
4878
  "type": "option"
4879
+ },
4880
+ "dry-run": {
4881
+ "description": "Show what would be created without creating tickets",
4882
+ "name": "dry-run",
4883
+ "allowNo": false,
4884
+ "type": "boolean"
4916
4885
  }
4917
4886
  },
4918
4887
  "hasDynamicHelp": false,
4919
4888
  "hiddenAliases": [],
4920
- "id": "status:move",
4889
+ "id": "spec:plan",
4921
4890
  "pluginAlias": "@proletariat/cli",
4922
4891
  "pluginName": "@proletariat/cli",
4923
4892
  "pluginType": "core",
@@ -4926,25 +4895,28 @@
4926
4895
  "relativePath": [
4927
4896
  "dist",
4928
4897
  "commands",
4929
- "status",
4930
- "move.js"
4898
+ "spec",
4899
+ "plan.js"
4931
4900
  ]
4932
4901
  },
4933
- "status:update": {
4902
+ "spec:ticket": {
4934
4903
  "aliases": [],
4935
4904
  "args": {
4936
- "id": {
4937
- "description": "Status ID - prompts with dropdown if not provided",
4938
- "name": "id",
4905
+ "ticketId": {
4906
+ "description": "Ticket ID",
4907
+ "name": "ticketId",
4908
+ "required": false
4909
+ },
4910
+ "specId": {
4911
+ "description": "Spec ID (filename without .md)",
4912
+ "name": "specId",
4939
4913
  "required": false
4940
4914
  }
4941
4915
  },
4942
- "description": "Update a workflow status",
4916
+ "description": "Assign a ticket to a spec document",
4943
4917
  "examples": [
4944
- "<%= config.bin %> <%= command.id %> my-project-in-review --name \"Code Review\"",
4945
- "<%= config.bin %> <%= command.id %> my-project-blocked --color \"#EF4444\"",
4946
- "<%= config.bin %> <%= command.id %> my-project-todo --default # Set as default",
4947
- "<%= config.bin %> <%= command.id %> # Interactive mode"
4918
+ "<%= config.bin %> <%= command.id %> PRLT-001 user-authentication",
4919
+ "<%= config.bin %> <%= command.id %> --ticket PRLT-001 --spec api-design"
4948
4920
  ],
4949
4921
  "flags": {
4950
4922
  "project": {
@@ -4961,61 +4933,86 @@
4961
4933
  "allowNo": false,
4962
4934
  "type": "boolean"
4963
4935
  },
4964
- "name": {
4965
- "char": "n",
4966
- "description": "New status name",
4967
- "name": "name",
4936
+ "ticket": {
4937
+ "char": "t",
4938
+ "description": "Ticket ID",
4939
+ "name": "ticket",
4968
4940
  "hasDynamicHelp": false,
4969
4941
  "multiple": false,
4970
4942
  "type": "option"
4971
4943
  },
4972
- "category": {
4973
- "char": "c",
4974
- "description": "New category",
4975
- "name": "category",
4944
+ "spec": {
4945
+ "char": "s",
4946
+ "description": "Spec ID (filename without .md)",
4947
+ "name": "spec",
4976
4948
  "hasDynamicHelp": false,
4977
4949
  "multiple": false,
4978
- "options": [
4979
- "backlog",
4980
- "unstarted",
4981
- "started",
4982
- "completed",
4983
- "canceled"
4984
- ],
4985
4950
  "type": "option"
4986
- },
4987
- "color": {
4988
- "description": "Hex color code (e.g., #FF0000)",
4989
- "name": "color",
4951
+ }
4952
+ },
4953
+ "hasDynamicHelp": false,
4954
+ "hiddenAliases": [],
4955
+ "id": "spec:ticket",
4956
+ "pluginAlias": "@proletariat/cli",
4957
+ "pluginName": "@proletariat/cli",
4958
+ "pluginType": "core",
4959
+ "strict": true,
4960
+ "isESM": true,
4961
+ "relativePath": [
4962
+ "dist",
4963
+ "commands",
4964
+ "spec",
4965
+ "ticket.js"
4966
+ ]
4967
+ },
4968
+ "spec:view": {
4969
+ "aliases": [],
4970
+ "args": {
4971
+ "spec": {
4972
+ "description": "Spec ID",
4973
+ "name": "spec",
4974
+ "required": false
4975
+ }
4976
+ },
4977
+ "description": "View a spec and its linked tickets",
4978
+ "examples": [
4979
+ "<%= config.bin %> <%= command.id %> user-authentication",
4980
+ "<%= config.bin %> <%= command.id %> --spec api-design"
4981
+ ],
4982
+ "flags": {
4983
+ "project": {
4984
+ "char": "P",
4985
+ "description": "Project ID (uses first project if only one exists)",
4986
+ "name": "project",
4990
4987
  "hasDynamicHelp": false,
4991
4988
  "multiple": false,
4992
4989
  "type": "option"
4993
4990
  },
4994
- "description": {
4995
- "char": "d",
4996
- "description": "Status description",
4997
- "name": "description",
4991
+ "json": {
4992
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
4993
+ "name": "json",
4994
+ "allowNo": false,
4995
+ "type": "boolean"
4996
+ },
4997
+ "spec": {
4998
+ "char": "s",
4999
+ "description": "Spec ID",
5000
+ "name": "spec",
4998
5001
  "hasDynamicHelp": false,
4999
5002
  "multiple": false,
5000
5003
  "type": "option"
5001
5004
  },
5002
- "default": {
5003
- "description": "Set as default status for new tickets",
5004
- "name": "default",
5005
- "allowNo": true,
5006
- "type": "boolean"
5007
- },
5008
- "interactive": {
5009
- "char": "i",
5010
- "description": "Interactive mode",
5011
- "name": "interactive",
5005
+ "full": {
5006
+ "char": "f",
5007
+ "description": "Show all spec sections",
5008
+ "name": "full",
5012
5009
  "allowNo": false,
5013
5010
  "type": "boolean"
5014
5011
  }
5015
5012
  },
5016
5013
  "hasDynamicHelp": false,
5017
5014
  "hiddenAliases": [],
5018
- "id": "status:update",
5015
+ "id": "spec:view",
5019
5016
  "pluginAlias": "@proletariat/cli",
5020
5017
  "pluginName": "@proletariat/cli",
5021
5018
  "pluginType": "core",
@@ -5024,23 +5021,23 @@
5024
5021
  "relativePath": [
5025
5022
  "dist",
5026
5023
  "commands",
5027
- "status",
5028
- "update.js"
5024
+ "spec",
5025
+ "view.js"
5029
5026
  ]
5030
5027
  },
5031
- "spec:create": {
5028
+ "status:create": {
5032
5029
  "aliases": [],
5033
5030
  "args": {
5034
- "title": {
5035
- "description": "Spec title",
5036
- "name": "title",
5031
+ "name": {
5032
+ "description": "Status name",
5033
+ "name": "name",
5037
5034
  "required": false
5038
5035
  }
5039
5036
  },
5040
- "description": "Create a new spec",
5037
+ "description": "Create a new workflow status",
5041
5038
  "examples": [
5042
- "<%= config.bin %> <%= command.id %> \"User Authentication\"",
5043
- "<%= config.bin %> <%= command.id %> --title \"API Design\" --type product",
5039
+ "<%= config.bin %> <%= command.id %> \"In Review\" --category started",
5040
+ "<%= config.bin %> <%= command.id %> --name \"Blocked\" --category started --color \"#EF4444\"",
5044
5041
  "<%= config.bin %> <%= command.id %> -i # Interactive mode"
5045
5042
  ],
5046
5043
  "flags": {
@@ -5052,48 +5049,50 @@
5052
5049
  "multiple": false,
5053
5050
  "type": "option"
5054
5051
  },
5055
- "title": {
5056
- "char": "t",
5057
- "description": "Spec title",
5058
- "name": "title",
5052
+ "name": {
5053
+ "char": "n",
5054
+ "description": "Status name",
5055
+ "name": "name",
5059
5056
  "hasDynamicHelp": false,
5060
5057
  "multiple": false,
5061
5058
  "type": "option"
5062
5059
  },
5063
- "status": {
5064
- "char": "s",
5065
- "description": "Spec status",
5066
- "name": "status",
5067
- "default": "draft",
5060
+ "category": {
5061
+ "char": "c",
5062
+ "description": "Status category",
5063
+ "name": "category",
5068
5064
  "hasDynamicHelp": false,
5069
5065
  "multiple": false,
5070
5066
  "options": [
5071
- "draft",
5072
- "active",
5073
- "implemented"
5067
+ "backlog",
5068
+ "unstarted",
5069
+ "started",
5070
+ "completed",
5071
+ "canceled"
5074
5072
  ],
5075
5073
  "type": "option"
5076
5074
  },
5077
- "type": {
5078
- "description": "Spec type",
5079
- "name": "type",
5075
+ "color": {
5076
+ "description": "Hex color code (e.g., #FF0000)",
5077
+ "name": "color",
5080
5078
  "hasDynamicHelp": false,
5081
5079
  "multiple": false,
5082
- "options": [
5083
- "product",
5084
- "platform",
5085
- "infra",
5086
- "integration"
5087
- ],
5088
5080
  "type": "option"
5089
5081
  },
5090
- "problem": {
5091
- "description": "Problem statement",
5092
- "name": "problem",
5082
+ "description": {
5083
+ "char": "d",
5084
+ "description": "Status description",
5085
+ "name": "description",
5093
5086
  "hasDynamicHelp": false,
5094
5087
  "multiple": false,
5095
5088
  "type": "option"
5096
5089
  },
5090
+ "default": {
5091
+ "description": "Set as default status for new tickets",
5092
+ "name": "default",
5093
+ "allowNo": false,
5094
+ "type": "boolean"
5095
+ },
5097
5096
  "interactive": {
5098
5097
  "char": "i",
5099
5098
  "description": "Interactive mode",
@@ -5110,7 +5109,7 @@
5110
5109
  },
5111
5110
  "hasDynamicHelp": false,
5112
5111
  "hiddenAliases": [],
5113
- "id": "spec:create",
5112
+ "id": "status:create",
5114
5113
  "pluginAlias": "@proletariat/cli",
5115
5114
  "pluginName": "@proletariat/cli",
5116
5115
  "pluginType": "core",
@@ -5119,14 +5118,60 @@
5119
5118
  "relativePath": [
5120
5119
  "dist",
5121
5120
  "commands",
5122
- "spec",
5121
+ "status",
5123
5122
  "create.js"
5124
5123
  ]
5125
5124
  },
5126
- "spec": {
5125
+ "status:delete": {
5127
5126
  "aliases": [],
5127
+ "args": {
5128
+ "id": {
5129
+ "description": "Status ID",
5130
+ "name": "id",
5131
+ "required": true
5132
+ }
5133
+ },
5134
+ "description": "Delete a workflow status",
5135
+ "examples": [
5136
+ "<%= config.bin %> <%= command.id %> my-project-blocked",
5137
+ "<%= config.bin %> <%= command.id %> my-project-review --force"
5138
+ ],
5139
+ "flags": {
5140
+ "json": {
5141
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5142
+ "name": "json",
5143
+ "allowNo": false,
5144
+ "type": "boolean"
5145
+ },
5146
+ "force": {
5147
+ "char": "f",
5148
+ "description": "Skip confirmation prompt",
5149
+ "name": "force",
5150
+ "allowNo": false,
5151
+ "type": "boolean"
5152
+ }
5153
+ },
5154
+ "hasDynamicHelp": false,
5155
+ "hiddenAliases": [],
5156
+ "id": "status:delete",
5157
+ "pluginAlias": "@proletariat/cli",
5158
+ "pluginName": "@proletariat/cli",
5159
+ "pluginType": "core",
5160
+ "strict": true,
5161
+ "isESM": true,
5162
+ "relativePath": [
5163
+ "dist",
5164
+ "commands",
5165
+ "status",
5166
+ "delete.js"
5167
+ ]
5168
+ },
5169
+ "status": {
5170
+ "aliases": [
5171
+ "statuses"
5172
+ ],
5128
5173
  "args": {},
5129
- "description": "Interactive menu for spec operations",
5174
+ "description": "Interactive menu for workflow status operations",
5130
5175
  "examples": [
5131
5176
  "<%= config.bin %> <%= command.id %>"
5132
5177
  ],
@@ -5148,7 +5193,7 @@
5148
5193
  },
5149
5194
  "hasDynamicHelp": false,
5150
5195
  "hiddenAliases": [],
5151
- "id": "spec",
5196
+ "id": "status",
5152
5197
  "pluginAlias": "@proletariat/cli",
5153
5198
  "pluginName": "@proletariat/cli",
5154
5199
  "pluginType": "core",
@@ -5157,18 +5202,18 @@
5157
5202
  "relativePath": [
5158
5203
  "dist",
5159
5204
  "commands",
5160
- "spec",
5205
+ "status",
5161
5206
  "index.js"
5162
5207
  ]
5163
5208
  },
5164
- "spec:list": {
5209
+ "status:list": {
5165
5210
  "aliases": [],
5166
5211
  "args": {},
5167
- "description": "List all specs",
5212
+ "description": "List all workflow statuses for a project",
5168
5213
  "examples": [
5169
5214
  "<%= config.bin %> <%= command.id %>",
5170
- "<%= config.bin %> <%= command.id %> --status active",
5171
- "<%= config.bin %> <%= command.id %> --type product"
5215
+ "<%= config.bin %> <%= command.id %> --project my-project",
5216
+ "<%= config.bin %> <%= command.id %> --category started"
5172
5217
  ],
5173
5218
  "flags": {
5174
5219
  "project": {
@@ -5179,44 +5224,31 @@
5179
5224
  "multiple": false,
5180
5225
  "type": "option"
5181
5226
  },
5182
- "status": {
5183
- "char": "s",
5184
- "description": "Filter by status",
5185
- "name": "status",
5186
- "hasDynamicHelp": false,
5187
- "multiple": false,
5188
- "options": [
5189
- "draft",
5190
- "active",
5191
- "implemented"
5192
- ],
5193
- "type": "option"
5194
- },
5195
- "type": {
5196
- "char": "t",
5197
- "description": "Filter by type",
5198
- "name": "type",
5227
+ "category": {
5228
+ "char": "c",
5229
+ "description": "Filter by category",
5230
+ "name": "category",
5199
5231
  "hasDynamicHelp": false,
5200
5232
  "multiple": false,
5201
5233
  "options": [
5202
- "product",
5203
- "platform",
5204
- "infra",
5205
- "integration"
5234
+ "backlog",
5235
+ "unstarted",
5236
+ "started",
5237
+ "completed",
5238
+ "canceled"
5206
5239
  ],
5207
5240
  "type": "option"
5208
5241
  },
5209
- "search": {
5210
- "description": "Search in title/problem/solution",
5211
- "name": "search",
5212
- "hasDynamicHelp": false,
5213
- "multiple": false,
5214
- "type": "option"
5242
+ "json": {
5243
+ "description": "Output as JSON",
5244
+ "name": "json",
5245
+ "allowNo": false,
5246
+ "type": "boolean"
5215
5247
  }
5216
5248
  },
5217
5249
  "hasDynamicHelp": false,
5218
5250
  "hiddenAliases": [],
5219
- "id": "spec:list",
5251
+ "id": "status:list",
5220
5252
  "pluginAlias": "@proletariat/cli",
5221
5253
  "pluginName": "@proletariat/cli",
5222
5254
  "pluginType": "core",
@@ -5225,23 +5257,24 @@
5225
5257
  "relativePath": [
5226
5258
  "dist",
5227
5259
  "commands",
5228
- "spec",
5260
+ "status",
5229
5261
  "list.js"
5230
5262
  ]
5231
5263
  },
5232
- "spec:plan": {
5264
+ "status:move": {
5233
5265
  "aliases": [],
5234
5266
  "args": {
5235
- "spec": {
5236
- "description": "Spec ID",
5237
- "name": "spec",
5267
+ "id": {
5268
+ "description": "Status ID - prompts with dropdown if not provided",
5269
+ "name": "id",
5238
5270
  "required": false
5239
5271
  }
5240
5272
  },
5241
- "description": "Generate tickets from spec by comparing ideal state vs codebase (uses LLM)",
5273
+ "description": "Reorder a status within its category",
5242
5274
  "examples": [
5243
- "<%= config.bin %> <%= command.id %> user-authentication",
5244
- "<%= config.bin %> <%= command.id %> --spec api-design --dry-run"
5275
+ "<%= config.bin %> <%= command.id %> my-project-in-review --position 0 # Move to first",
5276
+ "<%= config.bin %> <%= command.id %> my-project-blocked --position 2",
5277
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
5245
5278
  ],
5246
5279
  "flags": {
5247
5280
  "project": {
@@ -5258,24 +5291,19 @@
5258
5291
  "allowNo": false,
5259
5292
  "type": "boolean"
5260
5293
  },
5261
- "spec": {
5262
- "char": "s",
5263
- "description": "Spec ID",
5264
- "name": "spec",
5294
+ "position": {
5295
+ "char": "p",
5296
+ "description": "New position (0-indexed) within the category",
5297
+ "name": "position",
5298
+ "required": false,
5265
5299
  "hasDynamicHelp": false,
5266
5300
  "multiple": false,
5267
5301
  "type": "option"
5268
- },
5269
- "dry-run": {
5270
- "description": "Show what would be created without creating tickets",
5271
- "name": "dry-run",
5272
- "allowNo": false,
5273
- "type": "boolean"
5274
5302
  }
5275
5303
  },
5276
5304
  "hasDynamicHelp": false,
5277
5305
  "hiddenAliases": [],
5278
- "id": "spec:plan",
5306
+ "id": "status:move",
5279
5307
  "pluginAlias": "@proletariat/cli",
5280
5308
  "pluginName": "@proletariat/cli",
5281
5309
  "pluginType": "core",
@@ -5284,28 +5312,25 @@
5284
5312
  "relativePath": [
5285
5313
  "dist",
5286
5314
  "commands",
5287
- "spec",
5288
- "plan.js"
5315
+ "status",
5316
+ "move.js"
5289
5317
  ]
5290
5318
  },
5291
- "spec:ticket": {
5319
+ "status:update": {
5292
5320
  "aliases": [],
5293
5321
  "args": {
5294
- "ticketId": {
5295
- "description": "Ticket ID",
5296
- "name": "ticketId",
5297
- "required": false
5298
- },
5299
- "specId": {
5300
- "description": "Spec ID (filename without .md)",
5301
- "name": "specId",
5322
+ "id": {
5323
+ "description": "Status ID - prompts with dropdown if not provided",
5324
+ "name": "id",
5302
5325
  "required": false
5303
5326
  }
5304
5327
  },
5305
- "description": "Assign a ticket to a spec document",
5328
+ "description": "Update a workflow status",
5306
5329
  "examples": [
5307
- "<%= config.bin %> <%= command.id %> PRLT-001 user-authentication",
5308
- "<%= config.bin %> <%= command.id %> --ticket PRLT-001 --spec api-design"
5330
+ "<%= config.bin %> <%= command.id %> my-project-in-review --name \"Code Review\"",
5331
+ "<%= config.bin %> <%= command.id %> my-project-blocked --color \"#EF4444\"",
5332
+ "<%= config.bin %> <%= command.id %> my-project-todo --default # Set as default",
5333
+ "<%= config.bin %> <%= command.id %> # Interactive mode"
5309
5334
  ],
5310
5335
  "flags": {
5311
5336
  "project": {
@@ -5322,86 +5347,61 @@
5322
5347
  "allowNo": false,
5323
5348
  "type": "boolean"
5324
5349
  },
5325
- "ticket": {
5326
- "char": "t",
5327
- "description": "Ticket ID",
5328
- "name": "ticket",
5350
+ "name": {
5351
+ "char": "n",
5352
+ "description": "New status name",
5353
+ "name": "name",
5329
5354
  "hasDynamicHelp": false,
5330
5355
  "multiple": false,
5331
5356
  "type": "option"
5332
5357
  },
5333
- "spec": {
5334
- "char": "s",
5335
- "description": "Spec ID (filename without .md)",
5336
- "name": "spec",
5358
+ "category": {
5359
+ "char": "c",
5360
+ "description": "New category",
5361
+ "name": "category",
5337
5362
  "hasDynamicHelp": false,
5338
5363
  "multiple": false,
5364
+ "options": [
5365
+ "backlog",
5366
+ "unstarted",
5367
+ "started",
5368
+ "completed",
5369
+ "canceled"
5370
+ ],
5339
5371
  "type": "option"
5340
- }
5341
- },
5342
- "hasDynamicHelp": false,
5343
- "hiddenAliases": [],
5344
- "id": "spec:ticket",
5345
- "pluginAlias": "@proletariat/cli",
5346
- "pluginName": "@proletariat/cli",
5347
- "pluginType": "core",
5348
- "strict": true,
5349
- "isESM": true,
5350
- "relativePath": [
5351
- "dist",
5352
- "commands",
5353
- "spec",
5354
- "ticket.js"
5355
- ]
5356
- },
5357
- "spec:view": {
5358
- "aliases": [],
5359
- "args": {
5360
- "spec": {
5361
- "description": "Spec ID",
5362
- "name": "spec",
5363
- "required": false
5364
- }
5365
- },
5366
- "description": "View a spec and its linked tickets",
5367
- "examples": [
5368
- "<%= config.bin %> <%= command.id %> user-authentication",
5369
- "<%= config.bin %> <%= command.id %> --spec api-design"
5370
- ],
5371
- "flags": {
5372
- "project": {
5373
- "char": "P",
5374
- "description": "Project ID (uses first project if only one exists)",
5375
- "name": "project",
5372
+ },
5373
+ "color": {
5374
+ "description": "Hex color code (e.g., #FF0000)",
5375
+ "name": "color",
5376
5376
  "hasDynamicHelp": false,
5377
5377
  "multiple": false,
5378
5378
  "type": "option"
5379
5379
  },
5380
- "json": {
5381
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
5382
- "name": "json",
5383
- "allowNo": false,
5384
- "type": "boolean"
5385
- },
5386
- "spec": {
5387
- "char": "s",
5388
- "description": "Spec ID",
5389
- "name": "spec",
5380
+ "description": {
5381
+ "char": "d",
5382
+ "description": "Status description",
5383
+ "name": "description",
5390
5384
  "hasDynamicHelp": false,
5391
5385
  "multiple": false,
5392
5386
  "type": "option"
5393
5387
  },
5394
- "full": {
5395
- "char": "f",
5396
- "description": "Show all spec sections",
5397
- "name": "full",
5388
+ "default": {
5389
+ "description": "Set as default status for new tickets",
5390
+ "name": "default",
5391
+ "allowNo": true,
5392
+ "type": "boolean"
5393
+ },
5394
+ "interactive": {
5395
+ "char": "i",
5396
+ "description": "Interactive mode",
5397
+ "name": "interactive",
5398
5398
  "allowNo": false,
5399
5399
  "type": "boolean"
5400
5400
  }
5401
5401
  },
5402
5402
  "hasDynamicHelp": false,
5403
5403
  "hiddenAliases": [],
5404
- "id": "spec:view",
5404
+ "id": "status:update",
5405
5405
  "pluginAlias": "@proletariat/cli",
5406
5406
  "pluginName": "@proletariat/cli",
5407
5407
  "pluginType": "core",
@@ -5410,8 +5410,8 @@
5410
5410
  "relativePath": [
5411
5411
  "dist",
5412
5412
  "commands",
5413
- "spec",
5414
- "view.js"
5413
+ "status",
5414
+ "update.js"
5415
5415
  ]
5416
5416
  },
5417
5417
  "ticket:bulk": {
@@ -6563,58 +6563,69 @@
6563
6563
  "view.js"
6564
6564
  ]
6565
6565
  },
6566
- "workspace:add": {
6566
+ "work:complete": {
6567
6567
  "aliases": [],
6568
6568
  "args": {
6569
- "path": {
6570
- "description": "Path to the workspace to register",
6571
- "name": "path",
6572
- "required": true
6569
+ "ticketId": {
6570
+ "description": "Ticket ID - prompts with dropdown if not provided",
6571
+ "name": "ticketId",
6572
+ "required": false
6573
6573
  }
6574
6574
  },
6575
- "description": "Register an existing workspace in the machine config",
6575
+ "description": "Mark work as complete (moves ticket to Done column)",
6576
6576
  "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"
6577
+ "<%= config.bin %> <%= command.id %>",
6578
+ "<%= config.bin %> <%= command.id %> TKT-001"
6580
6579
  ],
6581
6580
  "flags": {
6582
- "name": {
6583
- "char": "n",
6584
- "description": "Custom name for the workspace (defaults to directory basename or workspace config name)",
6585
- "name": "name",
6581
+ "project": {
6582
+ "char": "P",
6583
+ "description": "Project ID (uses first project if only one exists)",
6584
+ "name": "project",
6586
6585
  "hasDynamicHelp": false,
6587
6586
  "multiple": false,
6588
6587
  "type": "option"
6588
+ },
6589
+ "json": {
6590
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6591
+ "name": "json",
6592
+ "allowNo": false,
6593
+ "type": "boolean"
6589
6594
  }
6590
6595
  },
6591
6596
  "hasDynamicHelp": false,
6592
6597
  "hiddenAliases": [],
6593
- "id": "workspace:add",
6598
+ "id": "work:complete",
6594
6599
  "pluginAlias": "@proletariat/cli",
6595
6600
  "pluginName": "@proletariat/cli",
6596
6601
  "pluginType": "core",
6597
6602
  "strict": true,
6598
- "enableJsonFlag": false,
6599
6603
  "isESM": true,
6600
6604
  "relativePath": [
6601
6605
  "dist",
6602
6606
  "commands",
6603
- "workspace",
6604
- "add.js"
6607
+ "work",
6608
+ "complete.js"
6605
6609
  ]
6606
6610
  },
6607
- "workspace:list": {
6611
+ "work": {
6608
6612
  "aliases": [],
6609
6613
  "args": {},
6610
- "description": "List all registered and discovered HQ workspaces",
6614
+ "description": "Interactive menu for work operations (ownership, assignment, execution)",
6611
6615
  "examples": [
6612
- "<%= config.bin %> <%= command.id %>",
6613
- "<%= config.bin %> <%= command.id %> --json"
6616
+ "<%= config.bin %> <%= command.id %>"
6614
6617
  ],
6615
6618
  "flags": {
6619
+ "project": {
6620
+ "char": "P",
6621
+ "description": "Project ID (uses first project if only one exists)",
6622
+ "name": "project",
6623
+ "hasDynamicHelp": false,
6624
+ "multiple": false,
6625
+ "type": "option"
6626
+ },
6616
6627
  "json": {
6617
- "description": "Output as JSON for machine-readable format",
6628
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6618
6629
  "name": "json",
6619
6630
  "allowNo": false,
6620
6631
  "type": "boolean"
@@ -6622,233 +6633,73 @@
6622
6633
  },
6623
6634
  "hasDynamicHelp": false,
6624
6635
  "hiddenAliases": [],
6625
- "id": "workspace:list",
6636
+ "id": "work",
6626
6637
  "pluginAlias": "@proletariat/cli",
6627
6638
  "pluginName": "@proletariat/cli",
6628
6639
  "pluginType": "core",
6629
6640
  "strict": true,
6630
- "enableJsonFlag": false,
6631
6641
  "isESM": true,
6632
6642
  "relativePath": [
6633
6643
  "dist",
6634
6644
  "commands",
6635
- "workspace",
6636
- "list.js"
6645
+ "work",
6646
+ "index.js"
6637
6647
  ]
6638
6648
  },
6639
- "workspace:remove": {
6649
+ "work:ready": {
6640
6650
  "aliases": [],
6641
6651
  "args": {
6642
- "nameOrPath": {
6643
- "description": "Workspace name or path to unregister",
6644
- "name": "nameOrPath",
6645
- "required": true
6652
+ "ticketId": {
6653
+ "description": "Ticket ID - prompts with dropdown if not provided",
6654
+ "name": "ticketId",
6655
+ "required": false
6646
6656
  }
6647
6657
  },
6648
- "description": "Unregister a workspace from the machine config (does NOT delete files)",
6658
+ "description": "Mark work as ready for review (moves ticket to In Review column)",
6649
6659
  "examples": [
6650
- "<%= config.bin %> <%= command.id %> my-workspace",
6651
- "<%= config.bin %> <%= command.id %> /path/to/workspace"
6660
+ "<%= config.bin %> <%= command.id %>",
6661
+ "<%= config.bin %> <%= command.id %> TKT-001",
6662
+ "<%= config.bin %> <%= command.id %> --pr",
6663
+ "<%= config.bin %> <%= command.id %> TKT-001 --pr --draft",
6664
+ "<%= config.bin %> <%= command.id %> --json # Output choices as JSON"
6652
6665
  ],
6653
6666
  "flags": {
6667
+ "project": {
6668
+ "char": "P",
6669
+ "description": "Project ID (uses first project if only one exists)",
6670
+ "name": "project",
6671
+ "hasDynamicHelp": false,
6672
+ "multiple": false,
6673
+ "type": "option"
6674
+ },
6654
6675
  "json": {
6655
6676
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
6656
6677
  "name": "json",
6657
6678
  "allowNo": false,
6658
6679
  "type": "boolean"
6680
+ },
6681
+ "pr": {
6682
+ "description": "Create a pull request for this work",
6683
+ "name": "pr",
6684
+ "allowNo": false,
6685
+ "type": "boolean"
6686
+ },
6687
+ "draft": {
6688
+ "description": "Create PR as draft (only with --pr)",
6689
+ "name": "draft",
6690
+ "allowNo": false,
6691
+ "type": "boolean"
6692
+ },
6693
+ "no-pr": {
6694
+ "description": "Skip PR creation prompt",
6695
+ "name": "no-pr",
6696
+ "allowNo": false,
6697
+ "type": "boolean"
6659
6698
  }
6660
6699
  },
6661
6700
  "hasDynamicHelp": false,
6662
6701
  "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
- ],
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",
6702
+ "id": "work:ready",
6852
6703
  "pluginAlias": "@proletariat/cli",
6853
6704
  "pluginName": "@proletariat/cli",
6854
6705
  "pluginType": "core",
@@ -7557,81 +7408,230 @@
7557
7408
  "watch.js"
7558
7409
  ]
7559
7410
  },
7560
- "workflow:create": {
7411
+ "workspace:add": {
7561
7412
  "aliases": [],
7562
7413
  "args": {
7563
- "name": {
7564
- "description": "Workflow name",
7565
- "name": "name",
7566
- "required": false
7414
+ "path": {
7415
+ "description": "Path to the workspace to register",
7416
+ "name": "path",
7417
+ "required": true
7567
7418
  }
7568
7419
  },
7569
- "description": "Create a new custom workflow",
7420
+ "description": "Register an existing workspace in the machine config",
7570
7421
  "examples": [
7571
- "<%= config.bin %> <%= command.id %> \"My Workflow\"",
7572
- "<%= config.bin %> <%= command.id %> \"Sprint Board\" --description \"Agile sprint workflow\"",
7573
- "<%= config.bin %> <%= command.id %> \"Simple\" --statuses \"Todo,In Progress,Done\""
7422
+ "<%= config.bin %> <%= command.id %> /path/to/workspace",
7423
+ "<%= config.bin %> <%= command.id %> . --name my-workspace",
7424
+ "<%= config.bin %> <%= command.id %> ~/projects/my-hq"
7574
7425
  ],
7575
7426
  "flags": {
7576
- "project": {
7577
- "char": "P",
7578
- "description": "Project ID (uses first project if only one exists)",
7579
- "name": "project",
7580
- "hasDynamicHelp": false,
7581
- "multiple": false,
7582
- "type": "option"
7583
- },
7584
- "description": {
7585
- "char": "d",
7586
- "description": "Workflow description",
7587
- "name": "description",
7588
- "hasDynamicHelp": false,
7589
- "multiple": false,
7590
- "type": "option"
7591
- },
7592
- "statuses": {
7593
- "char": "s",
7594
- "description": "Comma-separated list of status names (uses default categories)",
7595
- "name": "statuses",
7427
+ "name": {
7428
+ "char": "n",
7429
+ "description": "Custom name for the workspace (defaults to directory basename or workspace config name)",
7430
+ "name": "name",
7596
7431
  "hasDynamicHelp": false,
7597
7432
  "multiple": false,
7598
7433
  "type": "option"
7599
- },
7600
- "json": {
7601
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
7602
- "name": "json",
7603
- "allowNo": false,
7604
- "type": "boolean"
7605
7434
  }
7606
7435
  },
7607
7436
  "hasDynamicHelp": false,
7608
7437
  "hiddenAliases": [],
7609
- "id": "workflow:create",
7438
+ "id": "workspace:add",
7610
7439
  "pluginAlias": "@proletariat/cli",
7611
7440
  "pluginName": "@proletariat/cli",
7612
7441
  "pluginType": "core",
7613
7442
  "strict": true,
7443
+ "enableJsonFlag": false,
7614
7444
  "isESM": true,
7615
7445
  "relativePath": [
7616
7446
  "dist",
7617
7447
  "commands",
7618
- "workflow",
7619
- "create.js"
7448
+ "workspace",
7449
+ "add.js"
7620
7450
  ]
7621
7451
  },
7622
- "workflow:delete": {
7452
+ "workspace:list": {
7623
7453
  "aliases": [],
7624
- "args": {
7625
- "id": {
7626
- "description": "Workflow ID to delete - prompts with dropdown if not provided",
7627
- "name": "id",
7628
- "required": false
7629
- }
7630
- },
7631
- "description": "Delete a custom workflow",
7454
+ "args": {},
7455
+ "description": "List all registered and discovered HQ workspaces",
7632
7456
  "examples": [
7633
- "<%= config.bin %> <%= command.id %> my-workflow",
7634
- "<%= config.bin %> <%= command.id %> my-workflow --force # Skip confirmation",
7457
+ "<%= config.bin %> <%= command.id %>",
7458
+ "<%= config.bin %> <%= command.id %> --json"
7459
+ ],
7460
+ "flags": {
7461
+ "json": {
7462
+ "description": "Output as JSON for machine-readable format",
7463
+ "name": "json",
7464
+ "allowNo": false,
7465
+ "type": "boolean"
7466
+ }
7467
+ },
7468
+ "hasDynamicHelp": false,
7469
+ "hiddenAliases": [],
7470
+ "id": "workspace:list",
7471
+ "pluginAlias": "@proletariat/cli",
7472
+ "pluginName": "@proletariat/cli",
7473
+ "pluginType": "core",
7474
+ "strict": true,
7475
+ "enableJsonFlag": false,
7476
+ "isESM": true,
7477
+ "relativePath": [
7478
+ "dist",
7479
+ "commands",
7480
+ "workspace",
7481
+ "list.js"
7482
+ ]
7483
+ },
7484
+ "workspace:remove": {
7485
+ "aliases": [],
7486
+ "args": {
7487
+ "nameOrPath": {
7488
+ "description": "Workspace name or path to unregister",
7489
+ "name": "nameOrPath",
7490
+ "required": true
7491
+ }
7492
+ },
7493
+ "description": "Unregister a workspace from the machine config (does NOT delete files)",
7494
+ "examples": [
7495
+ "<%= config.bin %> <%= command.id %> my-workspace",
7496
+ "<%= config.bin %> <%= command.id %> /path/to/workspace"
7497
+ ],
7498
+ "flags": {
7499
+ "json": {
7500
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
7501
+ "name": "json",
7502
+ "allowNo": false,
7503
+ "type": "boolean"
7504
+ }
7505
+ },
7506
+ "hasDynamicHelp": false,
7507
+ "hiddenAliases": [],
7508
+ "id": "workspace:remove",
7509
+ "pluginAlias": "@proletariat/cli",
7510
+ "pluginName": "@proletariat/cli",
7511
+ "pluginType": "core",
7512
+ "strict": true,
7513
+ "enableJsonFlag": false,
7514
+ "isESM": true,
7515
+ "relativePath": [
7516
+ "dist",
7517
+ "commands",
7518
+ "workspace",
7519
+ "remove.js"
7520
+ ]
7521
+ },
7522
+ "workspace:use": {
7523
+ "aliases": [],
7524
+ "args": {
7525
+ "nameOrPath": {
7526
+ "description": "Workspace name or path",
7527
+ "name": "nameOrPath",
7528
+ "required": true
7529
+ }
7530
+ },
7531
+ "description": "Set the active workspace",
7532
+ "examples": [
7533
+ "<%= config.bin %> <%= command.id %> my-workspace",
7534
+ "<%= config.bin %> <%= command.id %> /path/to/workspace"
7535
+ ],
7536
+ "flags": {
7537
+ "json": {
7538
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
7539
+ "name": "json",
7540
+ "allowNo": false,
7541
+ "type": "boolean"
7542
+ }
7543
+ },
7544
+ "hasDynamicHelp": false,
7545
+ "hiddenAliases": [],
7546
+ "id": "workspace:use",
7547
+ "pluginAlias": "@proletariat/cli",
7548
+ "pluginName": "@proletariat/cli",
7549
+ "pluginType": "core",
7550
+ "strict": true,
7551
+ "enableJsonFlag": false,
7552
+ "isESM": true,
7553
+ "relativePath": [
7554
+ "dist",
7555
+ "commands",
7556
+ "workspace",
7557
+ "use.js"
7558
+ ]
7559
+ },
7560
+ "workflow:create": {
7561
+ "aliases": [],
7562
+ "args": {
7563
+ "name": {
7564
+ "description": "Workflow name",
7565
+ "name": "name",
7566
+ "required": false
7567
+ }
7568
+ },
7569
+ "description": "Create a new custom workflow",
7570
+ "examples": [
7571
+ "<%= config.bin %> <%= command.id %> \"My Workflow\"",
7572
+ "<%= config.bin %> <%= command.id %> \"Sprint Board\" --description \"Agile sprint workflow\"",
7573
+ "<%= config.bin %> <%= command.id %> \"Simple\" --statuses \"Todo,In Progress,Done\""
7574
+ ],
7575
+ "flags": {
7576
+ "project": {
7577
+ "char": "P",
7578
+ "description": "Project ID (uses first project if only one exists)",
7579
+ "name": "project",
7580
+ "hasDynamicHelp": false,
7581
+ "multiple": false,
7582
+ "type": "option"
7583
+ },
7584
+ "description": {
7585
+ "char": "d",
7586
+ "description": "Workflow description",
7587
+ "name": "description",
7588
+ "hasDynamicHelp": false,
7589
+ "multiple": false,
7590
+ "type": "option"
7591
+ },
7592
+ "statuses": {
7593
+ "char": "s",
7594
+ "description": "Comma-separated list of status names (uses default categories)",
7595
+ "name": "statuses",
7596
+ "hasDynamicHelp": false,
7597
+ "multiple": false,
7598
+ "type": "option"
7599
+ },
7600
+ "json": {
7601
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
7602
+ "name": "json",
7603
+ "allowNo": false,
7604
+ "type": "boolean"
7605
+ }
7606
+ },
7607
+ "hasDynamicHelp": false,
7608
+ "hiddenAliases": [],
7609
+ "id": "workflow:create",
7610
+ "pluginAlias": "@proletariat/cli",
7611
+ "pluginName": "@proletariat/cli",
7612
+ "pluginType": "core",
7613
+ "strict": true,
7614
+ "isESM": true,
7615
+ "relativePath": [
7616
+ "dist",
7617
+ "commands",
7618
+ "workflow",
7619
+ "create.js"
7620
+ ]
7621
+ },
7622
+ "workflow:delete": {
7623
+ "aliases": [],
7624
+ "args": {
7625
+ "id": {
7626
+ "description": "Workflow ID to delete - prompts with dropdown if not provided",
7627
+ "name": "id",
7628
+ "required": false
7629
+ }
7630
+ },
7631
+ "description": "Delete a custom workflow",
7632
+ "examples": [
7633
+ "<%= config.bin %> <%= command.id %> my-workflow",
7634
+ "<%= config.bin %> <%= command.id %> my-workflow --force # Skip confirmation",
7635
7635
  "<%= config.bin %> <%= command.id %> # Interactive selection"
7636
7636
  ],
7637
7637
  "flags": {
@@ -8180,86 +8180,259 @@
8180
8180
  "update.js"
8181
8181
  ]
8182
8182
  },
8183
- "agent:temp:cleanup": {
8183
+ "agent:staff:add": {
8184
8184
  "aliases": [],
8185
8185
  "args": {
8186
- "name": {
8187
- "description": "Agent name to clean up",
8188
- "name": "name",
8186
+ "names": {
8187
+ "description": "Agent names to add (space-separated)",
8188
+ "name": "names",
8189
8189
  "required": false
8190
8190
  }
8191
8191
  },
8192
- "description": "Clean up agent resources (containers, directories, tmux sessions)",
8192
+ "description": "Add new agents to the workspace",
8193
8193
  "examples": [
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"
8194
+ "<%= config.bin %> <%= command.id %> zeus",
8195
+ "<%= config.bin %> <%= command.id %> agent-1 agent-2",
8196
+ "<%= config.bin %> <%= command.id %> --theme billionaires",
8197
+ "<%= config.bin %> <%= command.id %> my-agent --no-container"
8199
8198
  ],
8200
8199
  "flags": {
8201
- "project": {
8202
- "char": "P",
8203
- "description": "Project ID (uses first project if only one exists)",
8204
- "name": "project",
8205
- "hasDynamicHelp": false,
8206
- "multiple": false,
8207
- "type": "option"
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",
8200
+ "no-container": {
8201
+ "description": "Skip devcontainer setup (not recommended for autonomous agents)",
8202
+ "name": "no-container",
8238
8203
  "allowNo": false,
8239
8204
  "type": "boolean"
8240
8205
  },
8241
- "push": {
8242
- "description": "Push unpushed commits before cleanup",
8243
- "name": "push",
8244
- "allowNo": false,
8245
- "type": "boolean"
8206
+ "theme": {
8207
+ "char": "t",
8208
+ "description": "Pick agent name(s) from a theme (billionaires, toyotas, companies, or custom)",
8209
+ "name": "theme",
8210
+ "hasDynamicHelp": false,
8211
+ "multiple": false,
8212
+ "type": "option"
8246
8213
  },
8247
8214
  "json": {
8248
8215
  "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8249
8216
  "name": "json",
8250
8217
  "allowNo": false,
8251
8218
  "type": "boolean"
8252
- },
8253
- "no-interactive": {
8254
- "description": "Alias for --json flag",
8255
- "name": "no-interactive",
8256
- "allowNo": false,
8257
- "type": "boolean"
8258
8219
  }
8259
8220
  },
8260
8221
  "hasDynamicHelp": false,
8261
8222
  "hiddenAliases": [],
8262
- "id": "agent:temp:cleanup",
8223
+ "id": "agent:staff:add",
8224
+ "pluginAlias": "@proletariat/cli",
8225
+ "pluginName": "@proletariat/cli",
8226
+ "pluginType": "core",
8227
+ "strict": false,
8228
+ "enableJsonFlag": false,
8229
+ "isESM": true,
8230
+ "relativePath": [
8231
+ "dist",
8232
+ "commands",
8233
+ "agent",
8234
+ "staff",
8235
+ "add.js"
8236
+ ]
8237
+ },
8238
+ "agent:staff": {
8239
+ "aliases": [],
8240
+ "args": {},
8241
+ "description": "Manage staff (persistent) agents",
8242
+ "examples": [
8243
+ "<%= config.bin %> <%= command.id %> list",
8244
+ "<%= config.bin %> <%= command.id %> add",
8245
+ "<%= config.bin %> <%= command.id %> remove camry"
8246
+ ],
8247
+ "flags": {
8248
+ "project": {
8249
+ "char": "P",
8250
+ "description": "Project ID (uses first project if only one exists)",
8251
+ "name": "project",
8252
+ "hasDynamicHelp": false,
8253
+ "multiple": false,
8254
+ "type": "option"
8255
+ },
8256
+ "json": {
8257
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8258
+ "name": "json",
8259
+ "allowNo": false,
8260
+ "type": "boolean"
8261
+ },
8262
+ "no-interactive": {
8263
+ "description": "Alias for --json flag",
8264
+ "name": "no-interactive",
8265
+ "allowNo": false,
8266
+ "type": "boolean"
8267
+ }
8268
+ },
8269
+ "hasDynamicHelp": false,
8270
+ "hiddenAliases": [],
8271
+ "id": "agent:staff",
8272
+ "pluginAlias": "@proletariat/cli",
8273
+ "pluginName": "@proletariat/cli",
8274
+ "pluginType": "core",
8275
+ "strict": true,
8276
+ "isESM": true,
8277
+ "relativePath": [
8278
+ "dist",
8279
+ "commands",
8280
+ "agent",
8281
+ "staff",
8282
+ "index.js"
8283
+ ]
8284
+ },
8285
+ "agent:staff:list": {
8286
+ "aliases": [],
8287
+ "args": {},
8288
+ "description": "List all staff (persistent) agents and their status",
8289
+ "examples": [
8290
+ "<%= config.bin %> <%= command.id %>"
8291
+ ],
8292
+ "flags": {},
8293
+ "hasDynamicHelp": false,
8294
+ "hiddenAliases": [],
8295
+ "id": "agent:staff:list",
8296
+ "pluginAlias": "@proletariat/cli",
8297
+ "pluginName": "@proletariat/cli",
8298
+ "pluginType": "core",
8299
+ "strict": true,
8300
+ "enableJsonFlag": false,
8301
+ "isESM": true,
8302
+ "relativePath": [
8303
+ "dist",
8304
+ "commands",
8305
+ "agent",
8306
+ "staff",
8307
+ "list.js"
8308
+ ]
8309
+ },
8310
+ "agent:staff:remove": {
8311
+ "aliases": [],
8312
+ "args": {
8313
+ "name": {
8314
+ "description": "Agent name to remove",
8315
+ "name": "name",
8316
+ "required": false
8317
+ }
8318
+ },
8319
+ "description": "Remove a specific agent from the workspace",
8320
+ "examples": [
8321
+ "<%= config.bin %> <%= command.id %> camry",
8322
+ "<%= config.bin %> <%= command.id %>"
8323
+ ],
8324
+ "flags": {
8325
+ "project": {
8326
+ "char": "P",
8327
+ "description": "Project ID (uses first project if only one exists)",
8328
+ "name": "project",
8329
+ "hasDynamicHelp": false,
8330
+ "multiple": false,
8331
+ "type": "option"
8332
+ },
8333
+ "json": {
8334
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8335
+ "name": "json",
8336
+ "allowNo": false,
8337
+ "type": "boolean"
8338
+ }
8339
+ },
8340
+ "hasDynamicHelp": false,
8341
+ "hiddenAliases": [],
8342
+ "id": "agent:staff:remove",
8343
+ "pluginAlias": "@proletariat/cli",
8344
+ "pluginName": "@proletariat/cli",
8345
+ "pluginType": "core",
8346
+ "strict": true,
8347
+ "isESM": true,
8348
+ "relativePath": [
8349
+ "dist",
8350
+ "commands",
8351
+ "agent",
8352
+ "staff",
8353
+ "remove.js"
8354
+ ]
8355
+ },
8356
+ "agent:temp:cleanup": {
8357
+ "aliases": [],
8358
+ "args": {
8359
+ "name": {
8360
+ "description": "Agent name to clean up",
8361
+ "name": "name",
8362
+ "required": false
8363
+ }
8364
+ },
8365
+ "description": "Clean up agent resources (containers, directories, tmux sessions)",
8366
+ "examples": [
8367
+ "<%= config.bin %> <%= command.id %> bold-bezos-1",
8368
+ "<%= config.bin %> <%= command.id %> --temp",
8369
+ "<%= config.bin %> <%= command.id %> --temp --dry-run",
8370
+ "<%= config.bin %> <%= command.id %> --all",
8371
+ "<%= config.bin %> <%= command.id %> --json"
8372
+ ],
8373
+ "flags": {
8374
+ "project": {
8375
+ "char": "P",
8376
+ "description": "Project ID (uses first project if only one exists)",
8377
+ "name": "project",
8378
+ "hasDynamicHelp": false,
8379
+ "multiple": false,
8380
+ "type": "option"
8381
+ },
8382
+ "temp": {
8383
+ "description": "Clean up all ephemeral agents with no running work",
8384
+ "name": "temp",
8385
+ "allowNo": false,
8386
+ "type": "boolean"
8387
+ },
8388
+ "all": {
8389
+ "description": "Clean up ALL ephemeral agents (including those with running work)",
8390
+ "name": "all",
8391
+ "allowNo": false,
8392
+ "type": "boolean"
8393
+ },
8394
+ "dry-run": {
8395
+ "description": "Show what would be cleaned without actually doing it",
8396
+ "name": "dry-run",
8397
+ "allowNo": false,
8398
+ "type": "boolean"
8399
+ },
8400
+ "yes": {
8401
+ "char": "y",
8402
+ "description": "Skip confirmation prompt",
8403
+ "name": "yes",
8404
+ "allowNo": false,
8405
+ "type": "boolean"
8406
+ },
8407
+ "force": {
8408
+ "char": "f",
8409
+ "description": "Force cleanup even if there is uncommitted/unpushed work",
8410
+ "name": "force",
8411
+ "allowNo": false,
8412
+ "type": "boolean"
8413
+ },
8414
+ "push": {
8415
+ "description": "Push unpushed commits before cleanup",
8416
+ "name": "push",
8417
+ "allowNo": false,
8418
+ "type": "boolean"
8419
+ },
8420
+ "json": {
8421
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8422
+ "name": "json",
8423
+ "allowNo": false,
8424
+ "type": "boolean"
8425
+ },
8426
+ "no-interactive": {
8427
+ "description": "Alias for --json flag",
8428
+ "name": "no-interactive",
8429
+ "allowNo": false,
8430
+ "type": "boolean"
8431
+ }
8432
+ },
8433
+ "hasDynamicHelp": false,
8434
+ "hiddenAliases": [],
8435
+ "id": "agent:temp:cleanup",
8263
8436
  "pluginAlias": "@proletariat/cli",
8264
8437
  "pluginName": "@proletariat/cli",
8265
8438
  "pluginType": "core",
@@ -8783,33 +8956,29 @@
8783
8956
  "save.js"
8784
8957
  ]
8785
8958
  },
8786
- "agent:staff:add": {
8959
+ "spec:link:depends": {
8787
8960
  "aliases": [],
8788
8961
  "args": {
8789
- "names": {
8790
- "description": "Agent names to add (space-separated)",
8791
- "name": "names",
8962
+ "id": {
8963
+ "description": "Spec ID that depends on another",
8964
+ "name": "id",
8965
+ "required": true
8966
+ },
8967
+ "target": {
8968
+ "description": "Spec ID that this spec depends on",
8969
+ "name": "target",
8792
8970
  "required": false
8793
8971
  }
8794
8972
  },
8795
- "description": "Add new agents to the workspace",
8973
+ "description": "Add a depends_on dependency (spec requires another to be completed first)",
8796
8974
  "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"
8975
+ "<%= config.bin %> <%= command.id %> my-feature other-spec"
8801
8976
  ],
8802
8977
  "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",
8978
+ "project": {
8979
+ "char": "P",
8980
+ "description": "Project ID (uses first project if only one exists)",
8981
+ "name": "project",
8813
8982
  "hasDynamicHelp": false,
8814
8983
  "multiple": false,
8815
8984
  "type": "option"
@@ -8823,180 +8992,11 @@
8823
8992
  },
8824
8993
  "hasDynamicHelp": false,
8825
8994
  "hiddenAliases": [],
8826
- "id": "agent:staff:add",
8995
+ "id": "spec:link:depends",
8827
8996
  "pluginAlias": "@proletariat/cli",
8828
8997
  "pluginName": "@proletariat/cli",
8829
8998
  "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",
8899
- "pluginAlias": "@proletariat/cli",
8900
- "pluginName": "@proletariat/cli",
8901
- "pluginType": "core",
8902
- "strict": true,
8903
- "enableJsonFlag": false,
8904
- "isESM": true,
8905
- "relativePath": [
8906
- "dist",
8907
- "commands",
8908
- "agent",
8909
- "staff",
8910
- "list.js"
8911
- ]
8912
- },
8913
- "agent:staff:remove": {
8914
- "aliases": [],
8915
- "args": {
8916
- "name": {
8917
- "description": "Agent name to remove",
8918
- "name": "name",
8919
- "required": false
8920
- }
8921
- },
8922
- "description": "Remove a specific agent from the workspace",
8923
- "examples": [
8924
- "<%= config.bin %> <%= command.id %> camry",
8925
- "<%= config.bin %> <%= command.id %>"
8926
- ],
8927
- "flags": {
8928
- "project": {
8929
- "char": "P",
8930
- "description": "Project ID (uses first project if only one exists)",
8931
- "name": "project",
8932
- "hasDynamicHelp": false,
8933
- "multiple": false,
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"
8941
- }
8942
- },
8943
- "hasDynamicHelp": false,
8944
- "hiddenAliases": [],
8945
- "id": "agent:staff:remove",
8946
- "pluginAlias": "@proletariat/cli",
8947
- "pluginName": "@proletariat/cli",
8948
- "pluginType": "core",
8949
- "strict": true,
8950
- "isESM": true,
8951
- "relativePath": [
8952
- "dist",
8953
- "commands",
8954
- "agent",
8955
- "staff",
8956
- "remove.js"
8957
- ]
8958
- },
8959
- "spec:link:depends": {
8960
- "aliases": [],
8961
- "args": {
8962
- "id": {
8963
- "description": "Spec ID that depends on another",
8964
- "name": "id",
8965
- "required": true
8966
- },
8967
- "target": {
8968
- "description": "Spec ID that this spec depends on",
8969
- "name": "target",
8970
- "required": false
8971
- }
8972
- },
8973
- "description": "Add a depends_on dependency (spec requires another to be completed first)",
8974
- "examples": [
8975
- "<%= config.bin %> <%= command.id %> my-feature other-spec"
8976
- ],
8977
- "flags": {
8978
- "project": {
8979
- "char": "P",
8980
- "description": "Project ID (uses first project if only one exists)",
8981
- "name": "project",
8982
- "hasDynamicHelp": false,
8983
- "multiple": false,
8984
- "type": "option"
8985
- },
8986
- "json": {
8987
- "description": "Output prompt configuration as JSON (for AI agents/scripts)",
8988
- "name": "json",
8989
- "allowNo": false,
8990
- "type": "boolean"
8991
- }
8992
- },
8993
- "hasDynamicHelp": false,
8994
- "hiddenAliases": [],
8995
- "id": "spec:link:depends",
8996
- "pluginAlias": "@proletariat/cli",
8997
- "pluginName": "@proletariat/cli",
8998
- "pluginType": "core",
8999
- "strict": true,
8999
+ "strict": true,
9000
9000
  "isESM": true,
9001
9001
  "relativePath": [
9002
9002
  "dist",
@@ -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,77 +9292,382 @@
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"
9335
+ },
9336
+ "json": {
9337
+ "description": "Output prompt configuration as JSON (for AI agents/scripts)",
9338
+ "name": "json",
9339
+ "allowNo": false,
9340
+ "type": "boolean"
9336
9341
  }
9337
9342
  },
9338
9343
  "hasDynamicHelp": false,
9339
9344
  "hiddenAliases": [],
9340
- "id": "template:phase:create",
9345
+ "id": "epic:link:duplicates",
9341
9346
  "pluginAlias": "@proletariat/cli",
9342
9347
  "pluginName": "@proletariat/cli",
9343
9348
  "pluginType": "core",
9344
9349
  "strict": true,
9345
- "enableJsonFlag": false,
9346
9350
  "isESM": true,
9347
9351
  "relativePath": [
9348
9352
  "dist",
9349
9353
  "commands",
9350
- "template",
9351
- "phase",
9352
- "create.js"
9354
+ "epic",
9355
+ "link",
9356
+ "duplicates.js"
9353
9357
  ]
9354
9358
  },
9355
- "template:phase:delete": {
9359
+ "epic:link": {
9356
9360
  "aliases": [],
9357
9361
  "args": {
9358
9362
  "id": {
9359
- "description": "Template ID to delete",
9363
+ "description": "Epic ID",
9360
9364
  "name": "id",
9361
- "required": true
9365
+ "required": false
9362
9366
  }
9363
9367
  },
9364
- "description": "Delete a phase template",
9368
+ "description": "Manage epic dependencies (links)",
9365
9369
  "examples": [
9366
- "<%= config.bin %> <%= command.id %> my-template",
9367
- "<%= config.bin %> <%= command.id %> my-template --force"
9368
- ],
9369
- "flags": {
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",
9642
+ "pluginAlias": "@proletariat/cli",
9643
+ "pluginName": "@proletariat/cli",
9644
+ "pluginType": "core",
9645
+ "strict": true,
9646
+ "enableJsonFlag": false,
9647
+ "isESM": true,
9648
+ "relativePath": [
9649
+ "dist",
9650
+ "commands",
9651
+ "template",
9652
+ "phase",
9653
+ "create.js"
9654
+ ]
9655
+ },
9656
+ "template:phase:delete": {
9657
+ "aliases": [],
9658
+ "args": {
9659
+ "id": {
9660
+ "description": "Template ID to delete",
9661
+ "name": "id",
9662
+ "required": true
9663
+ }
9664
+ },
9665
+ "description": "Delete a phase template",
9666
+ "examples": [
9667
+ "<%= config.bin %> <%= command.id %> my-template",
9668
+ "<%= config.bin %> <%= command.id %> my-template --force"
9669
+ ],
9670
+ "flags": {
9370
9671
  "force": {
9371
9672
  "char": "f",
9372
9673
  "description": "Skip confirmation",
@@ -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.4"
10593
10593
  }