@proletariat/cli 0.3.10 → 0.3.12

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 (152) hide show
  1. package/README.md +149 -192
  2. package/bin/dev.js +0 -0
  3. package/dist/commands/action/index.js +1 -1
  4. package/dist/commands/action/run.js +8 -12
  5. package/dist/commands/agent/auth.d.ts +30 -0
  6. package/dist/commands/agent/auth.js +172 -0
  7. package/dist/commands/agent/discover.d.ts +9 -0
  8. package/dist/commands/agent/discover.js +67 -0
  9. package/dist/commands/agent/index.js +47 -12
  10. package/dist/commands/agent/list.d.ts +4 -1
  11. package/dist/commands/agent/list.js +78 -16
  12. package/dist/commands/agent/login.js +35 -31
  13. package/dist/commands/agent/restart.js +2 -0
  14. package/dist/commands/agent/shell.js +78 -19
  15. package/dist/commands/agent/staff/add.js +1 -12
  16. package/dist/commands/agent/staff/remove.js +9 -7
  17. package/dist/commands/agent/status.js +17 -4
  18. package/dist/commands/agent/temp/cleanup.js +7 -3
  19. package/dist/commands/agent/themes/index.js +4 -5
  20. package/dist/commands/agent/themes/list.js +5 -5
  21. package/dist/commands/agent/visit.js +17 -4
  22. package/dist/commands/branch/create.d.ts +4 -0
  23. package/dist/commands/branch/create.js +16 -8
  24. package/dist/commands/branch/index.js +1 -1
  25. package/dist/commands/branch/where.js +1 -0
  26. package/dist/commands/claude.d.ts +38 -0
  27. package/dist/commands/claude.js +899 -0
  28. package/dist/commands/commit.js +1 -1
  29. package/dist/commands/config/index.d.ts +12 -0
  30. package/dist/commands/config/index.js +271 -0
  31. package/dist/commands/docker/clean.js +2 -2
  32. package/dist/commands/docker/index.js +2 -2
  33. package/dist/commands/docker/list.js +3 -8
  34. package/dist/commands/docker/logs.js +2 -2
  35. package/dist/commands/docker/prune.js +1 -1
  36. package/dist/commands/docker/restart.js +2 -2
  37. package/dist/commands/docker/shell.js +2 -2
  38. package/dist/commands/docker/start.js +2 -2
  39. package/dist/commands/docker/status.js +1 -1
  40. package/dist/commands/docker/stop.js +2 -2
  41. package/dist/commands/docker/sync.js +2 -2
  42. package/dist/commands/epic/index.js +1 -1
  43. package/dist/commands/epic/link/index.js +25 -14
  44. package/dist/commands/epic/link/remove.js +2 -0
  45. package/dist/commands/epic/list.js +5 -5
  46. package/dist/commands/epic/progress.js +10 -4
  47. package/dist/commands/epic/spec.js +2 -0
  48. package/dist/commands/epic/ticket.js +3 -0
  49. package/dist/commands/execution/stop.js +1 -0
  50. package/dist/commands/init.js +4 -4
  51. package/dist/commands/project/index.js +1 -1
  52. package/dist/commands/project/spec.js +7 -0
  53. package/dist/commands/repo/add.js +1 -0
  54. package/dist/commands/repo/remove.js +1 -0
  55. package/dist/commands/roadmap/add-project.d.ts +18 -0
  56. package/dist/commands/roadmap/add-project.js +135 -0
  57. package/dist/commands/roadmap/create.d.ts +22 -0
  58. package/dist/commands/roadmap/create.js +156 -0
  59. package/dist/commands/roadmap/delete.d.ts +17 -0
  60. package/dist/commands/roadmap/delete.js +104 -0
  61. package/dist/commands/roadmap/generate.d.ts +22 -0
  62. package/dist/commands/roadmap/generate.js +201 -0
  63. package/dist/commands/roadmap/index.d.ts +13 -0
  64. package/dist/commands/roadmap/index.js +61 -0
  65. package/dist/commands/roadmap/list.d.ts +12 -0
  66. package/dist/commands/roadmap/list.js +42 -0
  67. package/dist/commands/roadmap/remove-project.d.ts +18 -0
  68. package/dist/commands/roadmap/remove-project.js +147 -0
  69. package/dist/commands/roadmap/reorder.d.ts +17 -0
  70. package/dist/commands/roadmap/reorder.js +157 -0
  71. package/dist/commands/roadmap/update.d.ts +19 -0
  72. package/dist/commands/roadmap/update.js +136 -0
  73. package/dist/commands/roadmap/view.d.ts +16 -0
  74. package/dist/commands/roadmap/view.js +103 -0
  75. package/dist/commands/spec/index.js +1 -1
  76. package/dist/commands/spec/link/index.js +24 -13
  77. package/dist/commands/spec/link/remove.js +2 -0
  78. package/dist/commands/status/index.js +1 -1
  79. package/dist/commands/status/list.js +0 -8
  80. package/dist/commands/template/delete.js +2 -0
  81. package/dist/commands/terminal/title.d.ts +12 -0
  82. package/dist/commands/terminal/title.js +48 -0
  83. package/dist/commands/ticket/complete.js +2 -0
  84. package/dist/commands/ticket/create.js +4 -2
  85. package/dist/commands/ticket/delete.js +2 -0
  86. package/dist/commands/ticket/edit.js +8 -2
  87. package/dist/commands/ticket/link/index.js +17 -3
  88. package/dist/commands/ticket/link/remove.js +2 -0
  89. package/dist/commands/ticket/list.js +1 -2
  90. package/dist/commands/ticket/move.js +2 -0
  91. package/dist/commands/ticket/project.js +3 -1
  92. package/dist/commands/ticket/reassign.js +2 -0
  93. package/dist/commands/ticket/spec.js +4 -2
  94. package/dist/commands/ticket/template/apply.js +4 -3
  95. package/dist/commands/ticket/template/create.js +2 -0
  96. package/dist/commands/ticket/template/index.js +1 -1
  97. package/dist/commands/ticket/update.js +2 -0
  98. package/dist/commands/work/index.js +1 -1
  99. package/dist/commands/work/revise.js +7 -1
  100. package/dist/commands/work/spawn.d.ts +2 -1
  101. package/dist/commands/work/spawn.js +131 -36
  102. package/dist/commands/work/start.d.ts +2 -1
  103. package/dist/commands/work/start.js +349 -69
  104. package/dist/commands/work/watch.js +10 -2
  105. package/dist/commands/workflow/create.js +3 -3
  106. package/dist/commands/workflow/switch.js +2 -1
  107. package/dist/commands/workspace/remove.js +0 -8
  108. package/dist/commands/workspace/use.js +1 -9
  109. package/dist/lib/agents/commands.js +18 -13
  110. package/dist/lib/database/index.d.ts +19 -12
  111. package/dist/lib/database/index.js +158 -42
  112. package/dist/lib/docker/resolve.js +1 -1
  113. package/dist/lib/execution/config.d.ts +6 -0
  114. package/dist/lib/execution/config.js +15 -2
  115. package/dist/lib/execution/devcontainer.d.ts +2 -0
  116. package/dist/lib/execution/devcontainer.js +41 -9
  117. package/dist/lib/execution/runners.d.ts +85 -3
  118. package/dist/lib/execution/runners.js +925 -228
  119. package/dist/lib/execution/spawner.d.ts +2 -2
  120. package/dist/lib/execution/spawner.js +4 -3
  121. package/dist/lib/execution/storage.d.ts +2 -1
  122. package/dist/lib/execution/storage.js +9 -13
  123. package/dist/lib/execution/types.d.ts +10 -1
  124. package/dist/lib/execution/types.js +3 -1
  125. package/dist/lib/init/index.js +1 -0
  126. package/dist/lib/machine-config.js +1 -1
  127. package/dist/lib/pmo/base-command.js +5 -9
  128. package/dist/lib/pmo/index.js +2 -0
  129. package/dist/lib/pmo/schema.d.ts +6 -0
  130. package/dist/lib/pmo/schema.js +36 -0
  131. package/dist/lib/pmo/storage/base.js +3 -3
  132. package/dist/lib/pmo/storage/index.d.ts +16 -1
  133. package/dist/lib/pmo/storage/index.js +45 -0
  134. package/dist/lib/pmo/storage/roadmaps.d.ts +62 -0
  135. package/dist/lib/pmo/storage/roadmaps.js +301 -0
  136. package/dist/lib/pmo/storage/specs.js +2 -0
  137. package/dist/lib/pmo/storage/types.d.ts +14 -0
  138. package/dist/lib/pmo/sync-manager.d.ts +1 -1
  139. package/dist/lib/pmo/sync-manager.js +1 -1
  140. package/dist/lib/pmo/types.d.ts +41 -0
  141. package/dist/lib/pmo/utils.d.ts +2 -0
  142. package/dist/lib/pmo/utils.js +22 -1
  143. package/dist/lib/repos/index.js +7 -1
  144. package/dist/lib/terminal.d.ts +31 -0
  145. package/dist/lib/terminal.js +48 -0
  146. package/dist/lib/themes.d.ts +21 -3
  147. package/dist/lib/themes.js +80 -23
  148. package/dist/lib/workspace-config.d.ts +80 -0
  149. package/dist/lib/workspace-config.js +100 -0
  150. package/oclif.manifest.json +2236 -1396
  151. package/package.json +10 -6
  152. package/LICENSE +0 -21
package/README.md CHANGED
@@ -9,26 +9,29 @@
9
9
 
10
10
  ### Seize the means of production - Ship 100x.
11
11
 
12
- > **Multi-agent orchestration of AI labor.** Spin up workers for all work, on demand.
12
+ > **Agent orchestration platform for AI labor.** Spin up workers for all work, on demand.
13
+ >
14
+ > Themed agents, including billionaires - Finally, they work for us.
13
15
 
14
- > ⚠️ **Beta Software** — Under active development. Commands and APIs may change between versions.
16
+ > ⚠️ **Beta Software** — Under active development. Commands and APIs may change between versions, and bugs are actively being squashed. [Book a call](https://cal.com/chrismcdermut) — Feedback, ideas, or talk multi-agent workflows.
15
17
 
16
18
  ---
17
19
 
18
20
  # TLDR
19
21
 
20
- **prlt** coordinates AI coding agents from one CLI. Isolated workspaces, secure containers, persistent state.
22
+ **prlt** is an agent orchestration platform for AI labor. Spin up workers on demand, coordinate multi-agent development from one CLI. Isolated workspaces, secure containers, persistent state.
21
23
 
22
24
  ```bash
23
25
  npm install -g @proletariat/cli
24
26
  prlt init
25
- prlt ticket create # Interactive: title, description, priority
26
- prlt work spawn # Interactive: select tickets, environment, action
27
+ prlt ticket create --title "Add OAuth" --category feature
28
+ prlt work spawn # Interactive: select tickets, environment, action
27
29
  ```
28
30
 
29
31
  Agent spawns in its own branch, writes code, opens PR. You review and merge.
30
32
 
31
33
  **Why prlt?**
34
+
32
35
  - **Isolated** - Each agent gets its own git branch. No conflicts.
33
36
  - **Secure** - Docker containers, sandboxed from your host.
34
37
  - **Durable** - Tmux sessions persist. Close window, agent keeps working.
@@ -45,40 +48,11 @@ Agent spawns in its own branch, writes code, opens PR. You review and merge.
45
48
  ```bash
46
49
  npm install -g @proletariat/cli # Install
47
50
  prlt init # Create HQ, add repos, choose theme
48
- prlt ticket create # Interactive: title, description, priority
51
+ prlt ticket create --title "Add OAuth" --category feature
49
52
  prlt work spawn # Interactive: select tickets, environment, action
50
53
  # Agent creates PR → You review → Merge → Done
51
54
  ```
52
55
 
53
- ```
54
- ┌─────┐ ┌──────┐ ┌───────┐ ┌────────┐
55
- │ You │ │ prlt │ │ Agent │ │ GitHub │
56
- └──┬──┘ └──┬───┘ └───┬───┘ └───┬────┘
57
- │ ticket create │ │ │
58
- │───────────────>│ │ │
59
- │ work spawn │ │ │
60
- │───────────────>│ │ │
61
- │ │ create branch │ │
62
- │ │ create workspace│ │
63
- │ │ spawn agent │ │
64
- │ │─────────────────>│ │
65
- │ │ │ read ticket │
66
- │ │ │ write code │
67
- │ │ │ commit │
68
- │ │ │─────────────────>│
69
- │ │ │ open PR │
70
- │ │ │─────────────────>│
71
- │ │ update status │ │
72
- │ │<─────────────────│ │
73
- │ PR ready │ │ │
74
- │<───────────────│ │ │
75
- │ review & approve │
76
- │─────────────────────────────────────────────────────>│
77
- ```
78
-
79
- <details>
80
- <summary>View interactive diagram (GitHub only)</summary>
81
-
82
56
  ```mermaid
83
57
  sequenceDiagram
84
58
  participant You
@@ -100,8 +74,6 @@ sequenceDiagram
100
74
  You->>GitHub: Review & approve
101
75
  ```
102
76
 
103
- </details>
104
-
105
77
  Spawn agents to implement, groom, or review—not just write code.
106
78
 
107
79
  ### Interactive Menus
@@ -109,34 +81,34 @@ Spawn agents to implement, groom, or review—not just write code.
109
81
  `prlt work` guides you through project and ticket selection:
110
82
 
111
83
  <p align="center">
112
- <img src="https://raw.githubusercontent.com/chrismcdermut/proletariat-cli/main/images/work/work-project-select.png" alt="Project Selection" width="600">
84
+ <img src="docs/images/work/work-project-select.png" alt="Project Selection" width="600">
113
85
  </p>
114
86
 
115
87
  Choose your operation—start a single agent, batch spawn, or watch a column:
116
88
 
117
89
  <p align="center">
118
- <img src="https://raw.githubusercontent.com/chrismcdermut/proletariat-cli/main/images/work/work-operations-menu.png" alt="Work Operations Menu" width="600">
90
+ <img src="docs/images/work/work-operations-menu.png" alt="Work Operations Menu" width="600">
119
91
  </p>
120
92
 
121
93
  Select tickets to spawn, grouped by priority:
122
94
 
123
95
  <p align="center">
124
- <img src="https://raw.githubusercontent.com/chrismcdermut/proletariat-cli/main/images/work/work-ticket-select.png" alt="Ticket Selection" width="800">
96
+ <img src="docs/images/work/work-ticket-select.png" alt="Ticket Selection" width="800">
125
97
  </p>
126
98
 
127
99
  ---
128
100
 
129
101
  # Deep Dive
130
102
 
131
- | Problem | Solution |
132
- | --- | --- |
133
- | Agents conflict with each other's changes | **Isolated** - Each agent gets its own git branch and worktree |
134
- | Agents run unsandboxed on your machine | **Secure** - Docker containers, sandboxed from your host (looking into host sandbox options) |
135
- | You lose track of who's doing what | **Trackable** - All state in one SQLite database, one CLI |
136
- | Sessions die when you close a window | **Durable** - Tmux sessions persist, detach/reattach anytime |
137
- | Context scattered across chat windows | **Structured** - Tickets with requirements, acceptance criteria |
138
- | Starting agents is heavyweight | **Ephemeral** - Spawn on demand, they work, they PR, they're done |
139
- | Context lost between agent runs | **Persistent** - Tickets accumulate context, hand off between agents |
103
+ | Problem | Solution |
104
+ | ----------------------------------------- | -------------------------------------------------------------------------------------------- |
105
+ | Agents conflict with each other's changes | **Isolated** - Each agent gets its own git branch and worktree |
106
+ | Agents run unsandboxed on your machine | **Secure** - Docker containers, sandboxed from your host (looking into host sandbox options) |
107
+ | You lose track of who's doing what | **Trackable** - All state in one SQLite database, one CLI |
108
+ | Sessions die when you close a window | **Durable** - Tmux sessions persist, detach/reattach anytime |
109
+ | Context scattered across chat windows | **Structured** - Tickets with requirements, acceptance criteria |
110
+ | Starting agents is heavyweight | **Ephemeral** - Spawn on demand, they work, they PR, they're done |
111
+ | Context lost between agent runs | **Persistent** - Tickets accumulate context, hand off between agents |
140
112
 
141
113
  ### Data Model
142
114
 
@@ -162,20 +134,20 @@ Workspace (HQ)
162
134
  └── Safe or YOLO permissions
163
135
  ```
164
136
 
165
- | Entity | Description |
166
- | --- | --- |
167
- | **Project** | Groups tickets and epics, references a workflow |
168
- | **Epic** | Work container with lifecycle (draft → active → complete) |
169
- | **Ticket** | Individual work item with requirements and acceptance criteria |
170
- | **Spec** | Static documentation (can span projects, linked to epics) |
171
- | **Workflow** | Status flow configuration (can be shared across projects) |
172
- | **Phase** | Stage in a workflow |
173
- | **Status** | Ticket state within a phase |
174
- | **Action** | Reusable prompt/action templates |
175
- | **Agent (Staff)** | Persistent named agent with dedicated workspace |
176
- | **Agent (Temp)** | Ephemeral agent spawned for a single ticket |
177
- | **Execution** | Running agent session on a ticket |
178
- | **Display** | Terminal (new tab) or Background (detached) |
137
+ | Entity | Description |
138
+ | ----------------- | -------------------------------------------------------------- |
139
+ | **Project** | Groups tickets and epics, references a workflow |
140
+ | **Epic** | Work container with lifecycle (draft → active → complete) |
141
+ | **Ticket** | Individual work item with requirements and acceptance criteria |
142
+ | **Spec** | Static documentation (can span projects, linked to epics) |
143
+ | **Workflow** | Status flow configuration (can be shared across projects) |
144
+ | **Phase** | Stage in a workflow |
145
+ | **Status** | Ticket state within a phase |
146
+ | **Action** | Reusable prompt/action templates |
147
+ | **Agent (Staff)** | Persistent named agent with dedicated workspace |
148
+ | **Agent (Temp)** | Ephemeral agent spawned for a single ticket |
149
+ | **Execution** | Running agent session on a ticket |
150
+ | **Display** | Terminal (new tab) or Background (detached) |
179
151
 
180
152
  ### Example Workflow
181
153
 
@@ -201,31 +173,6 @@ Scrum Workflow
201
173
 
202
174
  Tickets flow through statuses as work progresses. Agents automatically move tickets when they start work, open PRs, or complete tasks.
203
175
 
204
- ### Agent Naming Themes
205
-
206
- Themes control how agents are named. Staff agents use theme names directly (e.g., `bezos`, `camry`). Ephemeral agents add an adjective prefix (e.g., `bold-bezos`, `keen-camry`). Currently ephemeral names also include a number suffix (`bold-bezos-1`), but this will be removed soon.
207
-
208
- **Built-in Themes:**
209
-
210
- | Theme | Description | Example Names |
211
- | --- | --- | --- |
212
- | `billionaires` | Tech founders & executives (default) | `musk`, `gates`, `bezos` |
213
- | `toyotas` | Toyota vehicle models | `camry`, `supra`, `tacoma` |
214
- | `companies` | Major tech companies | `stripe`, `vercel`, `linear` |
215
-
216
- > *billionaires* — Finally, they work for us.
217
-
218
- **Theme Commands:**
219
-
220
- ```bash
221
- prlt agent themes list # List available themes
222
- prlt agent themes set billionaires # Set active theme
223
- prlt agent themes create mytheme # Create custom theme
224
- prlt agent themes add-names mytheme # Add names to custom theme
225
- ```
226
-
227
- Themes are selected during `prlt init`.
228
-
229
176
  ### Workspace Structure
230
177
 
231
178
  Each agent gets a copy of all repos (repo scoping coming soon). Work happens on isolated branches.
@@ -255,6 +202,31 @@ my-project/
255
202
  └── infra/
256
203
  ```
257
204
 
205
+ ### Agent Naming Themes
206
+
207
+ Themes control how agents are named. Staff agents use theme names directly (e.g., `bezos`, `camry`). Ephemeral agents add an adjective prefix (e.g., `bold-bezos`, `keen-camry`). Currently ephemeral names also include a number suffix (`bold-bezos-1`), but this will be removed soon.
208
+
209
+ **Built-in Themes:**
210
+
211
+ | Theme | Description | Example Names |
212
+ | -------------- | ------------------------------------ | ---------------------------- |
213
+ | `billionaires` | Tech founders & executives (default) | `musk`, `gates`, `bezos` |
214
+ | `toyotas` | Toyota vehicle models | `camry`, `supra`, `tacoma` |
215
+ | `companies` | Major tech companies | `stripe`, `vercel`, `linear` |
216
+
217
+ > _billionaires_ — Finally, they work for us.
218
+
219
+ **Theme Commands:**
220
+
221
+ ```bash
222
+ prlt agent themes list # List available themes
223
+ prlt agent themes set billionaires # Set active theme
224
+ prlt agent themes create mytheme # Create custom theme
225
+ prlt agent themes add-names mytheme # Add names to custom theme
226
+ ```
227
+
228
+ Themes are selected during `prlt init`.
229
+
258
230
  ### Three Ways to Use Commands
259
231
 
260
232
  #### 1. Interactive (Humans)
@@ -275,7 +247,7 @@ $ prlt ticket create
275
247
  View ticket details with `prlt ticket`:
276
248
 
277
249
  <p align="center">
278
- <img src="https://raw.githubusercontent.com/chrismcdermut/proletariat-cli/main/images/ticket/ticket-view.png" alt="Ticket View" width="600">
250
+ <img src="docs/images/ticket/ticket-view.png" alt="Ticket View" width="600">
279
251
  </p>
280
252
 
281
253
  #### 2. JSON Mode (AI Agents)
@@ -320,23 +292,23 @@ prlt ticket create \
320
292
 
321
293
  **Environment** - where the agent runs:
322
294
 
323
- | Environment | Flag | Best For |
324
- | --- | --- | --- |
325
- | 🐳 Docker | (default if devcontainer exists) | Safety—fully isolated container |
326
- | 🏃 Host | `--run-on-host` | Speed—no container overhead |
295
+ | Environment | Flag | Best For |
296
+ | ----------- | -------------------------------- | ------------------------------- |
297
+ | 🐳 Docker | (default if devcontainer exists) | Safety—fully isolated container |
298
+ | 🏃 Host | `--run-on-host` | Speed—no container overhead |
327
299
 
328
300
  **Display** - how you see it:
329
301
 
330
- | Display | Flag | Best For |
331
- | --- | --- | --- |
332
- | 📺 Terminal | `--display terminal` | Watch in new terminal tab |
333
- | 🔇 Background | `--display background` | Detached, reattach later |
302
+ | Display | Flag | Best For |
303
+ | ------------- | ---------------------- | ------------------------- |
304
+ | 📺 Terminal | `--display terminal` | Watch in new terminal tab |
305
+ | 🔇 Background | `--display background` | Detached, reattach later |
334
306
 
335
307
  **Permissions** - agent access level:
336
308
 
337
- | Mode | Flag | Description |
338
- | --- | --- | --- |
339
- | 🔒 Safe | (default) | Agent prompts for permissions |
309
+ | Mode | Flag | Description |
310
+ | ------- | -------------------- | ----------------------------------------------------------- |
311
+ | 🔒 Safe | (default) | Agent prompts for permissions |
340
312
  | 🕺 YOLO | `--skip-permissions` | No prompts, full access. Use with Docker for safe autonomy. |
341
313
 
342
314
  All sessions run in tmux under the hood—close the window, agent keeps working.
@@ -360,6 +332,7 @@ prlt work start TKT-042 --skip-permissions
360
332
  Work on multiple tickets simultaneously.
361
333
 
362
334
  **Interactive (humans):**
335
+
363
336
  ```bash
364
337
  $ prlt work spawn
365
338
 
@@ -374,10 +347,12 @@ $ prlt work spawn
374
347
  Spawning 2 tickets...
375
348
  ```
376
349
 
377
- **JSON mode (AI agents):** *(multi-select WIP)*
350
+ **JSON mode (AI agents):** _(multi-select WIP)_
351
+
378
352
  ```bash
379
353
  $ prlt work spawn --json --many
380
354
  ```
355
+
381
356
  ```json
382
357
  {
383
358
  "prompt": {
@@ -392,6 +367,7 @@ $ prlt work spawn --json --many
392
367
  ```
393
368
 
394
369
  **Flags (scripts/CI):**
370
+
395
371
  ```bash
396
372
  prlt work spawn TKT-042 TKT-043 --action implement --mode docker
397
373
  ```
@@ -403,27 +379,9 @@ Each agent works in its own branch. No conflicts.
403
379
  Monitor running agents with `prlt execution`:
404
380
 
405
381
  <p align="center">
406
- <img src="https://raw.githubusercontent.com/chrismcdermut/proletariat-cli/main/images/execution/execution-list.png" alt="Execution List" width="800">
382
+ <img src="docs/images/execution/execution-list.png" alt="Execution List" width="800">
407
383
  </p>
408
384
 
409
- ```
410
- ┌─────────────────────┐ ┌─────────────────────┐ ┌──────────────────────────────┐
411
- │ You │ │ Agents │ │ GitHub │
412
- ├─────────────────────┤ ├─────────────────────┤ ├──────────────────────────────┤
413
- │ │ │ Agent 1 │ │ PR #101 │
414
- │ prlt work spawn ───┼─────>│ TKT-042 OAuth ──┼─────>│ feat/TKT-042-oauth │
415
- │ │ │ │ │ │
416
- │ │ │ Agent 2 │ │ PR #102 │
417
- │ ───┼─────>│ TKT-043 Rate Limit─┼─────>│ feat/TKT-043-rate-limit │
418
- │ │ │ │ │ │
419
- │ │ │ Agent 3 │ │ PR #103 │
420
- │ ───┼─────>│ TKT-044 Notifs ──┼─────>│ feat/TKT-044-notifications │
421
- └─────────────────────┘ └─────────────────────┘ └──────────────────────────────┘
422
- ```
423
-
424
- <details>
425
- <summary>View interactive diagram (GitHub only)</summary>
426
-
427
385
  ```mermaid
428
386
  flowchart LR
429
387
  subgraph You
@@ -451,12 +409,10 @@ flowchart LR
451
409
  A3 --> PR3
452
410
  ```
453
411
 
454
- </details>
455
-
456
412
  Agent-created PRs ready for review:
457
413
 
458
414
  <p align="center">
459
- <img src="https://raw.githubusercontent.com/chrismcdermut/proletariat-cli/main/images/execution/github-prs.png" alt="GitHub Pull Requests" width="800">
415
+ <img src="docs/images/execution/github-prs.png" alt="GitHub Pull Requests" width="800">
460
416
  </p>
461
417
 
462
418
  ### Command Reference
@@ -469,43 +425,43 @@ Agent-created PRs ready for review:
469
425
  <!-- ticket -->
470
426
  <tr><td rowspan="11"><b>ticket</b></td><td><code>prlt ticket create</code></td><td>Create new ticket</td></tr>
471
427
  <tr><td><code>prlt ticket list</code></td><td>List all tickets</td></tr>
472
- <tr><td><code>prlt ticket view &lt;id&gt;</code></td><td>View ticket details</td></tr>
473
- <tr><td><code>prlt ticket edit &lt;id&gt;</code></td><td>Edit ticket</td></tr>
474
- <tr><td><code>prlt ticket move &lt;id&gt; &lt;status&gt;</code></td><td>Change status</td></tr>
475
- <tr><td><code>prlt ticket delete &lt;id&gt;</code></td><td>Delete ticket</td></tr>
476
- <tr><td><code>prlt ticket complete &lt;id&gt;</code></td><td>Mark ticket complete</td></tr>
428
+ <tr><td><code>prlt ticket view <id></code></td><td>View ticket details</td></tr>
429
+ <tr><td><code>prlt ticket edit <id></code></td><td>Edit ticket</td></tr>
430
+ <tr><td><code>prlt ticket move <id> <status></code></td><td>Change status</td></tr>
431
+ <tr><td><code>prlt ticket delete <id></code></td><td>Delete ticket</td></tr>
432
+ <tr><td><code>prlt ticket complete <id></code></td><td>Mark ticket complete</td></tr>
477
433
  <tr><td><code>prlt ticket bulk</code></td><td>Bulk ticket operations</td></tr>
478
- <tr><td><code>prlt ticket link block &lt;id&gt;</code></td><td>Link blocking ticket</td></tr>
479
- <tr><td><code>prlt ticket link relates &lt;id&gt;</code></td><td>Link related ticket</td></tr>
434
+ <tr><td><code>prlt ticket link block <id></code></td><td>Link blocking ticket</td></tr>
435
+ <tr><td><code>prlt ticket link relates <id></code></td><td>Link related ticket</td></tr>
480
436
  <tr><td><code>prlt ticket template save</code></td><td>Save ticket as template</td></tr>
481
437
  <!-- work -->
482
- <tr><td rowspan="7"><b>work</b></td><td><code>prlt work start &lt;id&gt;</code></td><td>Spawn agent on ticket</td></tr>
438
+ <tr><td rowspan="7"><b>work</b></td><td><code>prlt work start <id></code></td><td>Spawn agent on ticket</td></tr>
483
439
  <tr><td><code>prlt work spawn</code></td><td>Batch spawn tickets</td></tr>
484
440
  <tr><td><code>prlt work spawn-all</code></td><td>Spawn all planned tickets</td></tr>
485
- <tr><td><code>prlt work complete &lt;id&gt;</code></td><td>Mark work done</td></tr>
486
- <tr><td><code>prlt work ready &lt;id&gt;</code></td><td>Mark ready for review</td></tr>
487
- <tr><td><code>prlt work revise &lt;id&gt;</code></td><td>Request revision</td></tr>
441
+ <tr><td><code>prlt work complete <id></code></td><td>Mark work done</td></tr>
442
+ <tr><td><code>prlt work ready <id></code></td><td>Mark ready for review</td></tr>
443
+ <tr><td><code>prlt work revise <id></code></td><td>Request revision</td></tr>
488
444
  <tr><td><code>prlt work watch</code></td><td>Watch work progress</td></tr>
489
445
  <!-- execution -->
490
446
  <tr><td rowspan="3"><b>execution</b></td><td><code>prlt execution list</code></td><td>List running agents</td></tr>
491
- <tr><td><code>prlt execution logs &lt;id&gt;</code></td><td>View agent output</td></tr>
492
- <tr><td><code>prlt execution stop &lt;id&gt;</code></td><td>Stop an agent</td></tr>
447
+ <tr><td><code>prlt execution logs <id></code></td><td>View agent output</td></tr>
448
+ <tr><td><code>prlt execution stop <id></code></td><td>Stop an agent</td></tr>
493
449
  <!-- agent -->
494
450
  <tr><td rowspan="11"><b>agent</b></td><td><code>prlt agent list</code></td><td>List all agents</td></tr>
495
- <tr><td><code>prlt agent status &lt;name&gt;</code></td><td>Check agent status</td></tr>
496
- <tr><td><code>prlt agent shell &lt;name&gt;</code></td><td>Shell into agent workspace</td></tr>
497
- <tr><td><code>prlt agent visit &lt;name&gt;</code></td><td>Navigate to workspace</td></tr>
498
- <tr><td><code>prlt agent login &lt;name&gt;</code></td><td>Auth Claude in container</td></tr>
499
- <tr><td><code>prlt agent rebuild &lt;name&gt;</code></td><td>Rebuild agent workspace</td></tr>
500
- <tr><td><code>prlt agent restart &lt;name&gt;</code></td><td>Restart agent</td></tr>
501
- <tr><td><code>prlt agent staff add &lt;names&gt;</code></td><td>Add named agents</td></tr>
451
+ <tr><td><code>prlt agent status <name></code></td><td>Check agent status</td></tr>
452
+ <tr><td><code>prlt agent shell <name></code></td><td>Shell into agent workspace</td></tr>
453
+ <tr><td><code>prlt agent visit <name></code></td><td>Navigate to workspace</td></tr>
454
+ <tr><td><code>prlt agent login <name></code></td><td>Auth Claude in container</td></tr>
455
+ <tr><td><code>prlt agent rebuild <name></code></td><td>Rebuild agent workspace</td></tr>
456
+ <tr><td><code>prlt agent restart <name></code></td><td>Restart agent</td></tr>
457
+ <tr><td><code>prlt agent staff add <names></code></td><td>Add named agents</td></tr>
502
458
  <tr><td><code>prlt agent staff list</code></td><td>List staff agents</td></tr>
503
459
  <tr><td><code>prlt agent temp list</code></td><td>List ephemeral agents</td></tr>
504
460
  <tr><td><code>prlt agent temp cleanup</code></td><td>Remove ephemeral agents</td></tr>
505
461
  <!-- agent themes -->
506
462
  <tr><td rowspan="4"><b>agent themes</b></td><td><code>prlt agent themes list</code></td><td>List available themes</td></tr>
507
- <tr><td><code>prlt agent themes set &lt;name&gt;</code></td><td>Set active theme</td></tr>
508
- <tr><td><code>prlt agent themes create &lt;name&gt;</code></td><td>Create custom theme</td></tr>
463
+ <tr><td><code>prlt agent themes set <name></code></td><td>Set active theme</td></tr>
464
+ <tr><td><code>prlt agent themes create <name></code></td><td>Create custom theme</td></tr>
509
465
  <tr><td><code>prlt agent themes add-names</code></td><td>Add names to theme</td></tr>
510
466
  <!-- board -->
511
467
  <tr><td rowspan="2"><b>board</b></td><td><code>prlt board</code></td><td>View kanban board</td></tr>
@@ -513,35 +469,35 @@ Agent-created PRs ready for review:
513
469
  <!-- project -->
514
470
  <tr><td rowspan="6"><b>project</b></td><td><code>prlt project create</code></td><td>Create project</td></tr>
515
471
  <tr><td><code>prlt project list</code></td><td>List projects</td></tr>
516
- <tr><td><code>prlt project view &lt;id&gt;</code></td><td>View project details</td></tr>
517
- <tr><td><code>prlt project archive &lt;id&gt;</code></td><td>Archive project</td></tr>
518
- <tr><td><code>prlt project unarchive &lt;id&gt;</code></td><td>Unarchive project</td></tr>
519
- <tr><td><code>prlt project delete &lt;id&gt;</code></td><td>Delete project</td></tr>
472
+ <tr><td><code>prlt project view <id></code></td><td>View project details</td></tr>
473
+ <tr><td><code>prlt project archive <id></code></td><td>Archive project</td></tr>
474
+ <tr><td><code>prlt project unarchive <id></code></td><td>Unarchive project</td></tr>
475
+ <tr><td><code>prlt project delete <id></code></td><td>Delete project</td></tr>
520
476
  <!-- epic -->
521
477
  <tr><td rowspan="10"><b>epic</b></td><td><code>prlt epic create</code></td><td>Create epic</td></tr>
522
478
  <tr><td><code>prlt epic list</code></td><td>List epics</td></tr>
523
- <tr><td><code>prlt epic view &lt;id&gt;</code></td><td>View epic details</td></tr>
524
- <tr><td><code>prlt epic ticket &lt;id&gt;</code></td><td>Add tickets to epic</td></tr>
525
- <tr><td><code>prlt epic progress &lt;id&gt;</code></td><td>View epic progress</td></tr>
526
- <tr><td><code>prlt epic move &lt;id&gt; &lt;status&gt;</code></td><td>Move epic status</td></tr>
527
- <tr><td><code>prlt epic archive &lt;id&gt;</code></td><td>Archive epic</td></tr>
528
- <tr><td><code>prlt epic activate &lt;id&gt;</code></td><td>Activate epic</td></tr>
479
+ <tr><td><code>prlt epic view <id></code></td><td>View epic details</td></tr>
480
+ <tr><td><code>prlt epic ticket <id></code></td><td>Add tickets to epic</td></tr>
481
+ <tr><td><code>prlt epic progress <id></code></td><td>View epic progress</td></tr>
482
+ <tr><td><code>prlt epic move <id> <status></code></td><td>Move epic status</td></tr>
483
+ <tr><td><code>prlt epic archive <id></code></td><td>Archive epic</td></tr>
484
+ <tr><td><code>prlt epic activate <id></code></td><td>Activate epic</td></tr>
529
485
  <tr><td><code>prlt epic reorder</code></td><td>Reorder epics</td></tr>
530
- <tr><td><code>prlt epic link block &lt;id&gt;</code></td><td>Link blocking epic</td></tr>
486
+ <tr><td><code>prlt epic link block <id></code></td><td>Link blocking epic</td></tr>
531
487
  <!-- spec -->
532
488
  <tr><td rowspan="6"><b>spec</b></td><td><code>prlt spec create</code></td><td>Create specification</td></tr>
533
489
  <tr><td><code>prlt spec list</code></td><td>List specifications</td></tr>
534
- <tr><td><code>prlt spec view &lt;id&gt;</code></td><td>View specification</td></tr>
535
- <tr><td><code>prlt spec plan &lt;id&gt;</code></td><td>Generate plan from spec</td></tr>
536
- <tr><td><code>prlt spec ticket &lt;id&gt;</code></td><td>Create ticket from spec</td></tr>
537
- <tr><td><code>prlt spec link relates &lt;id&gt;</code></td><td>Link related spec</td></tr>
490
+ <tr><td><code>prlt spec view <id></code></td><td>View specification</td></tr>
491
+ <tr><td><code>prlt spec plan <id></code></td><td>Generate plan from spec</td></tr>
492
+ <tr><td><code>prlt spec ticket <id></code></td><td>Create ticket from spec</td></tr>
493
+ <tr><td><code>prlt spec link relates <id></code></td><td>Link related spec</td></tr>
538
494
  <!-- action -->
539
495
  <tr><td rowspan="6"><b>action</b></td><td><code>prlt action create</code></td><td>Create action template</td></tr>
540
496
  <tr><td><code>prlt action list</code></td><td>List actions</td></tr>
541
- <tr><td><code>prlt action show &lt;id&gt;</code></td><td>Show action details</td></tr>
542
- <tr><td><code>prlt action run &lt;id&gt;</code></td><td>Run action</td></tr>
543
- <tr><td><code>prlt action update &lt;id&gt;</code></td><td>Update action</td></tr>
544
- <tr><td><code>prlt action delete &lt;id&gt;</code></td><td>Delete action</td></tr>
497
+ <tr><td><code>prlt action show <id></code></td><td>Show action details</td></tr>
498
+ <tr><td><code>prlt action run <id></code></td><td>Run action</td></tr>
499
+ <tr><td><code>prlt action update <id></code></td><td>Update action</td></tr>
500
+ <tr><td><code>prlt action delete <id></code></td><td>Delete action</td></tr>
545
501
  <!-- branch -->
546
502
  <tr><td rowspan="3"><b>branch</b></td><td><code>prlt branch create</code></td><td>Create branch</td></tr>
547
503
  <tr><td><code>prlt branch list</code></td><td>List branches</td></tr>
@@ -549,61 +505,62 @@ Agent-created PRs ready for review:
549
505
  <!-- status -->
550
506
  <tr><td rowspan="5"><b>status</b></td><td><code>prlt status list</code></td><td>List workflow statuses</td></tr>
551
507
  <tr><td><code>prlt status create</code></td><td>Create custom status</td></tr>
552
- <tr><td><code>prlt status update &lt;id&gt;</code></td><td>Update status</td></tr>
553
- <tr><td><code>prlt status move &lt;id&gt;</code></td><td>Reorder status</td></tr>
554
- <tr><td><code>prlt status delete &lt;id&gt;</code></td><td>Delete status</td></tr>
508
+ <tr><td><code>prlt status update <id></code></td><td>Update status</td></tr>
509
+ <tr><td><code>prlt status move <id></code></td><td>Reorder status</td></tr>
510
+ <tr><td><code>prlt status delete <id></code></td><td>Delete status</td></tr>
555
511
  <!-- workflow -->
556
512
  <tr><td rowspan="5"><b>workflow</b></td><td><code>prlt workflow list</code></td><td>List workflows</td></tr>
557
513
  <tr><td><code>prlt workflow create</code></td><td>Create workflow</td></tr>
558
- <tr><td><code>prlt workflow view &lt;id&gt;</code></td><td>View workflow</td></tr>
559
- <tr><td><code>prlt workflow switch &lt;id&gt;</code></td><td>Switch active workflow</td></tr>
560
- <tr><td><code>prlt workflow delete &lt;id&gt;</code></td><td>Delete workflow</td></tr>
514
+ <tr><td><code>prlt workflow view <id></code></td><td>View workflow</td></tr>
515
+ <tr><td><code>prlt workflow switch <id></code></td><td>Switch active workflow</td></tr>
516
+ <tr><td><code>prlt workflow delete <id></code></td><td>Delete workflow</td></tr>
561
517
  <!-- phase -->
562
518
  <tr><td rowspan="5"><b>phase</b></td><td><code>prlt phase list</code></td><td>List phases</td></tr>
563
519
  <tr><td><code>prlt phase create</code></td><td>Create phase</td></tr>
564
- <tr><td><code>prlt phase update &lt;id&gt;</code></td><td>Update phase</td></tr>
565
- <tr><td><code>prlt phase move &lt;id&gt;</code></td><td>Reorder phase</td></tr>
566
- <tr><td><code>prlt phase delete &lt;id&gt;</code></td><td>Delete phase</td></tr>
520
+ <tr><td><code>prlt phase update <id></code></td><td>Update phase</td></tr>
521
+ <tr><td><code>prlt phase move <id></code></td><td>Reorder phase</td></tr>
522
+ <tr><td><code>prlt phase delete <id></code></td><td>Delete phase</td></tr>
567
523
  <!-- template -->
568
524
  <tr><td rowspan="5"><b>template</b></td><td><code>prlt template list</code></td><td>List templates</td></tr>
569
- <tr><td><code>prlt template delete &lt;id&gt;</code></td><td>Delete template</td></tr>
525
+ <tr><td><code>prlt template delete <id></code></td><td>Delete template</td></tr>
570
526
  <tr><td><code>prlt template ticket list</code></td><td>List ticket templates</td></tr>
571
527
  <tr><td><code>prlt template ticket apply</code></td><td>Apply ticket template</td></tr>
572
528
  <tr><td><code>prlt template phase list</code></td><td>List phase templates</td></tr>
573
529
  <!-- pr -->
574
530
  <tr><td rowspan="3"><b>pr</b></td><td><code>prlt pr create</code></td><td>Create pull request</td></tr>
575
- <tr><td><code>prlt pr status &lt;id&gt;</code></td><td>Check PR status</td></tr>
576
- <tr><td><code>prlt pr link &lt;id&gt; &lt;url&gt;</code></td><td>Link PR to ticket</td></tr>
531
+ <tr><td><code>prlt pr status <id></code></td><td>Check PR status</td></tr>
532
+ <tr><td><code>prlt pr link <id> <url></code></td><td>Link PR to ticket</td></tr>
577
533
  <!-- gh -->
578
534
  <tr><td rowspan="3"><b>gh</b></td><td><code>prlt gh login</code></td><td>Login to GitHub</td></tr>
579
535
  <tr><td><code>prlt gh status</code></td><td>Check auth status</td></tr>
580
536
  <tr><td><code>prlt gh token</code></td><td>Get GitHub token</td></tr>
581
537
  <!-- repo -->
582
- <tr><td rowspan="4"><b>repo</b></td><td><code>prlt repo add &lt;url&gt;</code></td><td>Add repository</td></tr>
538
+ <tr><td rowspan="4"><b>repo</b></td><td><code>prlt repo add <url></code></td><td>Add repository</td></tr>
583
539
  <tr><td><code>prlt repo list</code></td><td>List repositories</td></tr>
584
- <tr><td><code>prlt repo view &lt;name&gt;</code></td><td>View repository details</td></tr>
585
- <tr><td><code>prlt repo remove &lt;name&gt;</code></td><td>Remove repository</td></tr>
540
+ <tr><td><code>prlt repo view <name></code></td><td>View repository details</td></tr>
541
+ <tr><td><code>prlt repo remove <name></code></td><td>Remove repository</td></tr>
586
542
  <!-- docker -->
587
543
  <tr><td rowspan="10"><b>docker</b></td><td><code>prlt docker list</code></td><td>List containers</td></tr>
588
544
  <tr><td><code>prlt docker status</code></td><td>Check Docker status</td></tr>
589
- <tr><td><code>prlt docker start &lt;name&gt;</code></td><td>Start container</td></tr>
590
- <tr><td><code>prlt docker stop &lt;name&gt;</code></td><td>Stop container</td></tr>
591
- <tr><td><code>prlt docker restart &lt;name&gt;</code></td><td>Restart container</td></tr>
592
- <tr><td><code>prlt docker logs &lt;name&gt;</code></td><td>View container logs</td></tr>
593
- <tr><td><code>prlt docker shell &lt;name&gt;</code></td><td>Shell into container</td></tr>
594
- <tr><td><code>prlt docker sync &lt;name&gt;</code></td><td>Sync container files</td></tr>
545
+ <tr><td><code>prlt docker start <name></code></td><td>Start container</td></tr>
546
+ <tr><td><code>prlt docker stop <name></code></td><td>Stop container</td></tr>
547
+ <tr><td><code>prlt docker restart <name></code></td><td>Restart container</td></tr>
548
+ <tr><td><code>prlt docker logs <name></code></td><td>View container logs</td></tr>
549
+ <tr><td><code>prlt docker shell <name></code></td><td>Shell into container</td></tr>
550
+ <tr><td><code>prlt docker sync <name></code></td><td>Sync container files</td></tr>
595
551
  <tr><td><code>prlt docker clean</code></td><td>Remove stopped containers</td></tr>
596
552
  <tr><td><code>prlt docker prune</code></td><td>Remove unused resources</td></tr>
597
553
  <!-- session -->
598
554
  <tr><td rowspan="2"><b>session</b></td><td><code>prlt session list</code></td><td>List active tmux sessions</td></tr>
599
- <tr><td><code>prlt session attach &lt;name&gt;</code></td><td>Attach to tmux session</td></tr>
555
+ <tr><td><code>prlt session attach <name></code></td><td>Attach to tmux session</td></tr>
600
556
  <!-- workspace -->
601
557
  <tr><td rowspan="4"><b>workspace</b></td><td><code>prlt init</code></td><td>Initialize workspace</td></tr>
602
558
  <tr><td><code>prlt workspace list</code></td><td>List workspaces</td></tr>
603
559
  <tr><td><code>prlt workspace add</code></td><td>Add workspace</td></tr>
604
- <tr><td><code>prlt workspace use &lt;name&gt;</code></td><td>Switch workspace</td></tr>
560
+ <tr><td><code>prlt workspace use <name></code></td><td>Switch workspace</td></tr>
605
561
  <!-- utility -->
606
- <tr><td rowspan="3"><b>utility</b></td><td><code>prlt whoami</code></td><td>Show current context</td></tr>
562
+ <tr><td rowspan="4"><b>utility</b></td><td><code>prlt whoami</code></td><td>Show current context</td></tr>
563
+ <tr><td><code>prlt claude</code></td><td>Quick ad-hoc Claude session</td></tr>
607
564
  <tr><td><code>prlt commit</code></td><td>Conventional commit</td></tr>
608
565
  <tr><td><code>prlt autocomplete setup</code></td><td>Setup shell autocomplete</td></tr>
609
566
  </table>
@@ -655,9 +612,9 @@ Agent adds acceptance criteria, subtasks, estimates.
655
612
 
656
613
  ## Environment Variables
657
614
 
658
- | Variable | Purpose |
659
- | ------------------- | ----------------------------- |
660
- | `GITHUB_TOKEN` | GitHub operations (PRs, etc.) |
615
+ | Variable | Purpose |
616
+ | -------------- | ----------------------------- |
617
+ | `GITHUB_TOKEN` | GitHub operations (PRs, etc.) |
661
618
 
662
619
  Claude Code handles its own authentication via `claude login`.
663
620
 
@@ -678,7 +635,7 @@ Claude Code handles its own authentication via `claude login`.
678
635
 
679
636
  - **Discord**: [discord.gg/tmZyjNNSvw](https://discord.gg/tmZyjNNSvw)
680
637
  - **GitHub Issues**: [Report bugs or request features](https://github.com/chrismcdermut/proletariat-cli/issues)
681
- - **LinkedIn**: [Christopher McDermut](https://www.linkedin.com/in/christopher-mcdermut/)
638
+ - **Chat**: [Book a call](https://cal.com/chrismcdermut) — Feedback, ideas, or talk multi-agent workflows
682
639
 
683
640
  ---
684
641
 
package/bin/dev.js CHANGED
File without changes
@@ -1,7 +1,7 @@
1
1
  import { Flags } from '@oclif/core';
2
2
  import inquirer from 'inquirer';
3
3
  import { PMOCommand, pmoBaseFlags } from '../../lib/pmo/index.js';
4
- import { shouldOutputJson, } from '../../lib/prompt-json.js';
4
+ import { shouldOutputJson } from '../../lib/prompt-json.js';
5
5
  export default class Action extends PMOCommand {
6
6
  static description = 'Interactive menu for work action operations';
7
7
  static aliases = ['actions'];