prjct-cli 0.8.8 → 0.9.1

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.
@@ -1,102 +1,23 @@
1
1
  ---
2
2
  allowed-tools: [Read, Write, Bash]
3
- description: 'Initialize prjct project (with architect mode for blank projects)'
3
+ description: 'Initialize prjct'
4
4
  ---
5
5
 
6
6
  # /p:init
7
7
 
8
- ## Usage
8
+ ## Flow
9
9
 
10
- ```
11
- /p:init # Existing project
12
- /p:init "[idea]" # New blank project (architect mode)
13
- ```
14
-
15
- ## Flow: Existing Project
16
-
17
- 1. Generate: project ID from path hash
18
- 2. Create: `~/.prjct-cli/projects/{id}/` structure (including `agents/`)
19
- 3. Write: `.prjct/prjct.config.json`
20
- 4. Run: `/p:analyze` to understand stack
21
- 5. Generate: agents based on stack
22
- 6. Log: `memory/context.jsonl`
23
-
24
- ## Flow: Blank Project (Architect Mode)
25
-
26
- 1. Generate: project ID
27
- 2. Activate: ARCHITECT role
28
- 3. Analyze: idea/requirements
29
- 4. Recommend: tech stack options (Next.js, React, Vue, etc.)
30
- 5. User confirms: choice
31
- 6. Create: directory structure + base files
32
- 7. Generate: initial roadmap
33
- 8. Generate: agents
34
- 9. Ask: "Ready to start with the first feature?"
35
-
36
- ## Directory Structure
37
-
38
- ```
39
- ~/.prjct-cli/projects/{id}/
40
- ├── core/ # now.md, next.md, context.md
41
- ├── progress/ # shipped.md, metrics.md
42
- ├── planning/ # ideas.md, roadmap.md
43
- ├── analysis/ # repo-summary.md
44
- ├── agents/ # AI agent definitions
45
- └── memory/ # context.jsonl
46
- ```
47
-
48
- ## Config Format
49
-
50
- ```json
51
- {
52
- "version": "0.6.0",
53
- "projectId": "{id}",
54
- "dataPath": "~/.prjct-cli/projects/{id}",
55
- "author": {
56
- "name": "{from git}",
57
- "email": "{from git}",
58
- "github": "{from remote}"
59
- }
60
- }
61
- ```
10
+ **Existing**: ID → dirs → config → analyze → agents
11
+ **Blank + idea**: ARCHITECT → analyze → recommend stack → create → roadmap
62
12
 
63
- ## Response: Existing Project
13
+ ## Structure
14
+ `~/.prjct-cli/projects/{id}/`: core, progress, planning, analysis, agents, memory
64
15
 
65
- ```
66
- prjct initialized!
67
-
68
- 📁 Data: ~/.prjct-cli/projects/{id}
69
- 📝 Config: .prjct/prjct.config.json
70
- 📊 Analysis: {stack_summary}
71
- 🤖 Agents: {N} agents generated
72
-
73
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━
74
- 🎯 WHAT DO YOU WANT TO DO FIRST?
75
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━
76
-
77
- 5 clear paths:
78
- 1. 🚀 Add feature → /p:feature "{desc}"
79
- 2. 🐛 Fix bug → /p:bug "{desc}"
80
- 3. 🔍 Analyze deeper → /p:analyze
81
- 4. 📊 See status → /p:status or /p:recap
82
- 5. 💡 Not sure? → /p:suggest or /p:help
83
-
84
- 💬 OR JUST TELL ME: "I want to add authentication" / "What should I do?"
85
-
86
- Let's ship something! 🚀
87
- ```
88
-
89
- ## Response: Blank Project
90
-
91
- After ARCHITECT MODE activates and user confirms stack:
92
-
93
- ```
94
- ✅ Structure created!
16
+ ## Config
17
+ `.prjct/prjct.config.json`: version, projectId, dataPath, author
95
18
 
96
- 📁 Project: {path}
97
- 📦 Stack: {chosen_stack}
98
- 📋 Initial roadmap: {N} features
99
- 🤖 Agents: {N} specialists generated
19
+ ## Response
20
+ `✅ Init | {stack} | {N} agents | Next: /p:feature or /p:help`
100
21
 
101
22
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━
102
23
  🎯 WHAT'S NEXT?
@@ -1,34 +1,14 @@
1
1
  ---
2
2
  allowed-tools: [Read]
3
- description: 'Show priority queue (top 5 non-blocking)'
3
+ description: 'Show priority queue'
4
4
  ---
5
5
 
6
6
  # /p:next
7
7
 
8
8
  ## Flow
9
+ 1. Check `core/now.md` → warn if active
10
+ 2. Read `core/next.md` → top 5 non-blocked
9
11
 
10
- 1. Check: `core/now.md` → if active task, show warning
11
- 2. Read: `core/next.md` filter blocked tasks
12
- 3. Return: top 5 actionable
13
-
14
- ## Response (active task)
15
-
16
- ```
17
- ⚠️ Active: {current_task}
18
- Started: {time_ago}
19
-
20
- Complete first: /p:done
21
-
22
- 📋 Queue preview:
23
- {top_5_numbered}
24
- ```
25
-
26
- ## Response (no active)
27
-
28
- ```
29
- 📋 Priority Queue
30
-
31
- {numbered_tasks_1_to_5}
32
-
33
- /p:build {1-5} | /p:build "{task}"
34
- ```
12
+ ## Response
13
+ **Active**: `⚠️ Active: {task} | Complete: /p:done`
14
+ **Queue**: Show 1-5 → `/p:work {N}`
@@ -1,34 +1,14 @@
1
1
  ---
2
- allowed-tools: [Read, Write, GetTimestamp, GetDate]
3
- description: 'Manage current focus task'
4
- timestamp-rule: 'CRITICAL - ALWAYS use GetTimestamp() tool for ALL timestamps. NEVER generate timestamps manually. LLM does not know current date/time.'
2
+ allowed-tools: [Read, Write, GetTimestamp]
3
+ description: 'Current task'
4
+ timestamp-rule: 'GetTimestamp() for timestamps'
5
5
  ---
6
6
 
7
7
  # /p:now
8
8
 
9
- ## Usage
10
-
11
- ```
12
- /p:now # Show
13
- /p:now [task] # Set
14
- ```
15
-
16
9
  ## Flow
17
-
18
- **Show**: Read `core/now.md` display task + elapsed
19
-
20
- **Set**:
21
-
22
- 1. Write: `core/now.md` with task + timestamp (use GetTimestamp() tool)
23
- 2. Update: `core/context.md`, `progress/metrics.md`
24
- 3. Log: `memory/context.jsonl` (use GetTimestamp() tool)
10
+ **Show**: Read `core/now.md`
11
+ **Set**: Write now.md + {GetTimestamp()} Log
25
12
 
26
13
  ## Response
27
-
28
- ```
29
- 🎯 {task}
30
- Started: {time}
31
-
32
- Done? → /p:done
33
- Stuck? → /p:stuck
34
- ```
14
+ `🎯 {task} | Started: {time} | Done: /p:done`
@@ -0,0 +1,18 @@
1
+ ---
2
+ allowed-tools: [Read, Write, GetTimestamp]
3
+ description: 'Pause task'
4
+ timestamp-rule: 'GetTimestamp() for paused'
5
+ ---
6
+
7
+ # /p:pause
8
+
9
+ ## Check
10
+ Requires active in `core/stack.jsonl`
11
+
12
+ ## Flow
13
+ 1. Find active → Set status='paused', paused={GetTimestamp()}
14
+ 2. Update stack.jsonl + now.md
15
+ 3. Log: `{"ts":"{GetTimestamp()}","type":"task_pause","task":"{t}"}`
16
+
17
+ ## Response
18
+ `⏸️ {task} | Active: {duration} | Resume: /p:resume`
@@ -1,59 +1,14 @@
1
1
  ---
2
2
  allowed-tools: [Read]
3
- description: 'Progress metrics for period'
3
+ description: 'Progress metrics'
4
4
  ---
5
5
 
6
6
  # /p:progress
7
7
 
8
- ## Usage
9
-
10
- ```
11
- /p:progress [day|week|month] # Default: week
12
- ```
13
-
14
8
  ## Flow
15
-
16
- 1. Parse: timeframe (day/week/month)
17
- 2. **Calculate date range**: Based on timeframe
18
- 3. **Read sessions**: Query `progress/sessions/{YYYY-MM}/` for date range
19
- 4. **Aggregate**: Ships, tasks, duration from sessions
20
- 5. **Calculate**: Velocity, trends, quality metrics
21
- 6. Display: detailed metrics
22
-
23
- ## Session Queries by Period
24
-
25
- ```javascript
26
- // Day: Today's sessions
27
- const today = await readSessionFile('progress/sessions', today)
28
- const shipped = today.filter(s => s.type === 'feature_ship')
29
-
30
- // Week: Last 7 days
31
- const weekSessions = await readSessions('progress/sessions', -7, 'now')
32
- const velocity = weekSessions.filter(s => s.type === 'feature_ship').length / 7
33
-
34
- // Month: Last 30 days
35
- const monthSessions = await readSessions('progress/sessions', -30, 'now')
36
- const totalTime = monthSessions
37
- .filter(s => s.type === 'feature_ship')
38
- .reduce((sum, s) => sum + parseTime(s.duration), 0)
39
- ```
9
+ 1. Parse period (day/week/month, default: week)
10
+ 2. Read sessions → filter by date range
11
+ 3. Aggregate: ships, velocity, trends
40
12
 
41
13
  ## Response
42
-
43
- ```
44
- 📈 PROGRESS - This {period}
45
- ━━━━━━━━━━━━━━━━━━━━━
46
-
47
- 🚀 SHIPPED: {N} features
48
- ⚡ VELOCITY: {X.X} features/day
49
- 📊 TREND: {↗ +X%}
50
-
51
- Recent ships:
52
- • ✅ {feature} ({time_ago})
53
- • ✅ {feature} ({time_ago})
54
-
55
- 🏆 Best day: {day} ({N} features)
56
- 🔥 Streak: {N} days
57
-
58
- /p:ship | /p:status
59
- ```
14
+ `📈 {period} | 🚀 {N} shipped | ⚡ {velocity}/day | Trend: {↗%}`
@@ -1,63 +1,14 @@
1
1
  ---
2
2
  allowed-tools: [Read]
3
- description: 'Project context and status overview'
3
+ description: 'Project overview'
4
4
  ---
5
5
 
6
6
  # /p:recap
7
7
 
8
- ## Usage
9
-
10
- ```
11
- /p:recap # Full overview
12
- /p:context # Alias for recap
13
- ```
14
-
15
8
  ## Flow
16
-
17
- 1. **Read indexes**: Recent data from core/, progress/, planning/ (last 30 days)
18
- 2. **Read sessions**: Last 7 days from all session directories
19
- 3. **Aggregate**: Metrics from sessions (features added, tasks done, ships)
20
- 4. **Display**: Comprehensive context and status
21
-
22
- ## Session Queries
23
-
24
- ```javascript
25
- // Aggregate last 7 days activity
26
- const recentSessions = await readSessions('*/sessions', -7, 'now')
27
- const shipped = recentSessions.filter(s => s.type === 'feature_ship').length
28
- const tasksComplete = recentSessions.filter(s => s.type === 'task_complete').length
29
- const velocity = shipped / 7 // features per day
30
- ```
9
+ 1. Read: core/, progress/, planning/ (30 days)
10
+ 2. Read: sessions (7 days) aggregate metrics
11
+ 3. Show: project, focus, progress, activity
31
12
 
32
13
  ## Response
33
-
34
- ```
35
- 📊 PROJECT OVERVIEW
36
- ━━━━━━━━━━━━━━━━━━
37
-
38
- 📦 PROJECT
39
- Type: {type}
40
- Stack: {stack}
41
-
42
- 🎯 CURRENT FOCUS
43
- Task: {task}
44
- Started: {time_ago} ({duration})
45
-
46
- 📈 PROGRESS
47
- Shipped: {X} this week
48
- Velocity: {X.X} features/day
49
-
50
- 💡 PLANNING
51
- Queue: {N} tasks
52
- Ideas: {M} captured
53
- Roadmap: {X}% complete
54
-
55
- 🔄 RECENT ACTIVITY
56
- • {event}: {desc} ({time_ago})
57
- • {event}: {desc} ({time_ago})
58
- • {event}: {desc} ({time_ago})
59
-
60
- {motivational_message}
61
-
62
- /p:now | /p:status | /p:next
63
- ```
14
+ `📊 {project} | 🎯 {task} | 📈 {shipped}/week | Queue: {N}`
@@ -0,0 +1,97 @@
1
+ ---
2
+ allowed-tools: [Read, Write, GetTimestamp]
3
+ description: 'Resume paused task'
4
+ timestamp-rule: 'GetTimestamp() for resumed'
5
+ ---
6
+
7
+ # /p:resume
8
+
9
+ ## Check
10
+ - Requires paused tasks
11
+ - Blocks if active exists
12
+
13
+ ## Flow
14
+ 1. Select: last/ID/# → Set status='active', resumed={GetTimestamp()}
15
+ 2. Update stack.jsonl + now.md → Log resume
16
+
17
+ ## Response
18
+ `▶️ {task} | Paused: {duration} | {agent} | Done: /p:done`
19
+
20
+ ## Examples
21
+
22
+ ### Resume last paused
23
+ ```
24
+ /p:resume
25
+ → Resumes most recently paused task
26
+ → Picks up exactly where you left off
27
+ ```
28
+
29
+ ### Resume specific task
30
+ ```
31
+ /p:resume task-1234567890
32
+ → Resumes task by ID
33
+ ```
34
+
35
+ ### Resume by number
36
+ ```
37
+ /p:resume 2
38
+ → Resumes 2nd task from paused list
39
+ → Useful when shown list by /p:stack
40
+ ```
41
+
42
+ ## Stack Display Format
43
+
44
+ When multiple paused tasks exist:
45
+ ```
46
+ ⏸️ Paused tasks (3):
47
+
48
+ 1. Fix login validation bug
49
+ Paused 10m ago | Active time: 45m
50
+
51
+ 2. Implement dark mode toggle
52
+ Paused 2h ago | Active time: 1h 20m
53
+
54
+ 3. Update documentation
55
+ Paused yesterday | Active time: 30m
56
+
57
+ Resume: /p:resume {1-3}
58
+ ```
59
+
60
+ ## Natural Language Support
61
+
62
+ Detect intent for resume:
63
+ - "p. resume" → Resume last paused
64
+ - "p. continue" → Resume last paused
65
+ - "p. back to {task}" → Resume matching task
66
+ - "p. resume 2" → Resume task #2
67
+
68
+ ## Error Handling
69
+
70
+ ### No paused tasks
71
+ ```
72
+ ❌ No paused tasks to resume
73
+
74
+ See what's in queue:
75
+ → /p:next
76
+
77
+ Start new task:
78
+ → /p:work "{task}"
79
+ ```
80
+
81
+ ### Active task exists
82
+ ```
83
+ ❌ Already working on: {current_task}
84
+
85
+ Options:
86
+ → /p:done (complete current)
87
+ → /p:pause (pause current)
88
+ → /p:switch {task_id} (atomic switch)
89
+ ```
90
+
91
+ ### Invalid task ID
92
+ ```
93
+ ❌ Task {id} not found or not paused
94
+
95
+ See paused tasks:
96
+ → /p:stack
97
+ ```
@@ -1,82 +1,27 @@
1
1
  ---
2
2
  allowed-tools: [Read, Write, Bash, GetTimestamp, GetDate]
3
- description: 'Ship feature with complete automated workflow'
4
- timestamp-rule: 'CRITICAL - ALWAYS use GetTimestamp() and GetDate() tools for ALL timestamps and dates. NEVER generate dates manually. LLM does not know current date.'
3
+ description: 'Ship feature workflow'
4
+ timestamp-rule: 'GetTimestamp() and GetDate() for timestamps'
5
5
  ---
6
6
 
7
7
  # /p:ship
8
8
 
9
- ## Usage
9
+ ## Workflow (non-blocking)
10
+ 1. Lint → Tests → Docs update
11
+ 2. Version bump → CHANGELOG
12
+ 3. Commit + push (prjct footer)
13
+ 4. Log: `progress/sessions/{YY-MM}/{DD}.jsonl`
14
+ 5. Update: `progress/shipped.md` (30 days)
15
+ 6. Recommend: compact
10
16
 
11
- ```
12
- /p:ship # Current task
13
- /p:ship "<feature>" # Named feature
14
- ```
15
-
16
- ## Complete Workflow (Automated)
17
-
18
- 1. ✅ **Lint checks** → Run linters (non-blocking if fail)
19
- 2. ✅ **Run tests** → Execute test suite (non-blocking if fail)
20
- 3. ✅ **Update docs** → README, API docs, component docs if needed
21
- 4. ✅ **Update version** → Bump version (patch/minor based on changes)
22
- 5. ✅ **Update CHANGELOG** → Add entry with metadata
23
- 6. ✅ **Git commit** → With prjct footer format
24
- 7. ✅ **Git push** → Push to remote
25
- 8. ✅ **Log to session** → Append to `progress/sessions/{YYYY-MM}/{YYYY-MM-DD}.jsonl`
26
- 9. ✅ **Update index** → Prepend to `progress/shipped.md` (last 30 days only)
27
- 10. ✅ **Update roadmap** → Mark as complete in `planning/roadmap.md`
28
- 11. ✅ **Recommend compact** → Suggest conversation compacting
29
-
30
- ## Session Log Format
31
-
32
- Append to `progress/sessions/{YYYY-MM}/{YYYY-MM-DD}.jsonl`:
17
+ ## Data
18
+ Session: `{"ts":"{GetTimestamp()}","type":"feature_ship","name":"{f}","agent":"{a}","version":"{v}"}`
33
19
 
34
- **Use GetTimestamp() tool for real system time:**
35
-
36
- ```jsonl
37
- {"ts":"{GetTimestamp()}","type":"feature_ship","name":"{feature}","tasks_done":{N},"duration":"{Xh}","agent":"{agent}","version":"{X.Y.Z}"}
20
+ Commit footer:
38
21
  ```
39
-
40
- ## Commit Message Format
41
-
42
- ```
43
- feat: {feature_name}
44
-
45
- Agent: {agent}
46
- Dev: @{github_dev}
47
- Complexity: {complexity}
48
- Time: {actual_time}
49
-
50
22
  🤖 Generated with [p/](https://www.prjct.app/)
51
23
  Designed for [Claude](https://www.anthropic.com/claude)
52
24
  ```
53
25
 
54
- **CRITICAL**: This footer format MUST be used in ALL commits made by prjct.
55
-
56
26
  ## Response
57
-
58
- ```
59
- 🚀 {feature} shipped!
60
-
61
- Workflow completed:
62
- ✅ Lint checks: {pass/fail_continued}
63
- ✅ Tests: {pass/fail_continued}
64
- ✅ Docs: updated
65
- ✅ Version: {old} → {new}
66
- ✅ CHANGELOG: updated
67
- ✅ Git: committed + pushed
68
-
69
- {agent_icon} {agent} • {actual_time}
70
-
71
- 💡 Recommendation: Compact conversation now
72
- (Keeps context clean for next feature)
73
-
74
- /p:feature | /p:done
75
- ```
76
-
77
- ## Important Notes
78
-
79
- - **Tests/Lint failures DO NOT block shipping** → User sees results and decides
80
- - **ALWAYS** updates version and CHANGELOG
81
- - **ALWAYS** commits and pushes if workflow completes
82
- - Archive `shipped.md` entries > 30 days to `progress/archive/shipped-{YYYY-MM}.md`
27
+ `🚀 {feature} | {agent} | {time} | v{version} | Next: compact`
@@ -1,42 +1,17 @@
1
1
  ---
2
2
  allowed-tools: [Read]
3
- description: 'KPI dashboard with ASCII graphics'
3
+ description: 'KPI dashboard'
4
4
  ---
5
5
 
6
6
  # /p:status
7
7
 
8
8
  ## Flow
9
+ Read metrics → Calculate KPIs → ASCII dashboard
9
10
 
10
- 1. Read: all core files + progress files
11
- 2. Calculate: metrics (sprint %, tasks complete, days since ship, etc.)
12
- 3. Render: `ASCIIGraphics.createDashboard(data)`
13
-
14
- ## Data Structure
15
-
16
- ```js
17
- {
18
- sprintProgress: (complete / total) * 100,
19
- tasksComplete: count,
20
- tasksTotal: count,
21
- ideasCount: count,
22
- daysSinceShip: days,
23
- currentTask: string,
24
- taskTime: 'Xh Ym ago'
25
- }
26
- ```
27
-
28
- ## Output (Catppuccin Mocha)
29
-
11
+ ## Display
30
12
  ```
31
- ┌─ Project Status ────────────────┐
32
- Sprint Progress [████░] 80% │
33
- Tasks Complete 12/15 │
34
- Ideas Backlog 8 │
35
- │ Days Since Ship 3 │
36
- ├─ Current Focus ─────────────────┤
37
- │ → {current_task} │
38
- │ Started: {time_ago} │
39
- └─────────────────────────────────┘
13
+ Sprint: [████░] {%}
14
+ Tasks: {done}/{total}
15
+ Ship: {days} ago
16
+ Focus: {task}
40
17
  ```
41
-
42
- **Colors**: Mauve borders, Teal progress, Sapphire highlights, Green/Yellow/Red for status
@@ -1,34 +1,17 @@
1
1
  ---
2
2
  allowed-tools: [Read, Write, Bash, TodoWrite]
3
- description: 'Sync project state and generate dynamic agents'
3
+ description: 'Sync state + generate agents'
4
4
  ---
5
5
 
6
6
  # /p:sync
7
7
 
8
8
  ## Flow
9
+ 1. Execute `/p:analyze`
10
+ 2. Read `analysis/repo-summary.md`
11
+ 3. Generate agents per technology → `agents/`
12
+ 4. Log to memory
9
13
 
10
- 1. Run: `/p:analyze` → get current state
11
- 2. **Read**: `analysis/repo-summary.md`
12
- 3. **Generate**: Dynamic agents for each technology
13
- 4. Log: changes to `memory/context.jsonl`
14
-
15
- ## Agent Generation
16
-
17
- **See `templates/agents/AGENTS.md` for complete reference** with examples and guidelines.
18
-
19
- Use `generator.generateDynamicAgent(name, config)` for each specialist.
14
+ Use: `generateDynamicAgent(name, config)`
20
15
 
21
16
  ## Response
22
-
23
- ```
24
- 🔄 Sync complete!
25
-
26
- 🤖 Agents Generated:
27
- • {agent_name_1} - {role}
28
- • {agent_name_2} - {role}
29
-
30
- 📋 Based on: analysis/repo-summary.md
31
- 💡 See templates/agents/AGENTS.md for generation reference
32
-
33
- /p:context
34
- ```
17
+ `🔄 Synced | Generated: {agents} | Next: /p:context`
@@ -0,0 +1,44 @@
1
+ ---
2
+ allowed-tools: [Read, Write, GetTimestamp]
3
+ description: 'Show current task or start new one'
4
+ timestamp-rule: 'GetTimestamp() for all timestamps'
5
+ required-agent: auto-detect
6
+ enforce-agent: true
7
+ ---
8
+
9
+ # /p:work
10
+
11
+ ## Flow
12
+
13
+ **No params**: Show active task from `core/stack.jsonl`
14
+ **With task**: Start new (pause current if exists)
15
+ **With number**: Start task #N from `core/next.md`
16
+
17
+ ### Starting Task
18
+ 1. Check active → Pause if exists
19
+ 2. Parse input → String or number
20
+ 3. **ASSIGN AGENT** → Detect expertise, filter context (70-90% reduction)
21
+ 4. Create entry → status='active', agent, filtered_context
22
+ 5. Update → `core/stack.jsonl` + `core/now.md`
23
+ 6. Log → Agent usage to memory
24
+
25
+ ## Responses
26
+
27
+ **Active**: `🎯 {task} | {agent} | {duration}`
28
+ **Empty**: `💤 No active task | {paused_count} paused`
29
+ **Started**: `🚀 {task} | Agent: {agent}`
30
+ **Switched**: `⏸️ Paused {old} → Started {new}`
31
+
32
+ ## Agent Detection
33
+ Keywords → Agent:
34
+ - UI/frontend/React → `fe`
35
+ - API/backend/database → `be`
36
+ - design/UX → `ux`
37
+ - test/QA/bug → `qa`
38
+ - docs/README → `docs`
39
+ - else → `general`
40
+
41
+ ## Errors
42
+ **Active exists**: Show options (pause/done/switch)
43
+ **Invalid #**: Task not in queue
44
+ **Migration**: Replaces /p:now and /p:build