prjct-cli 0.13.2 → 0.15.0

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 (193) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/bin/prjct +10 -13
  3. package/core/agentic/memory-system/semantic-memories.ts +2 -1
  4. package/core/agentic/plan-mode/plan-mode.ts +2 -1
  5. package/core/agentic/prompt-builder.ts +22 -43
  6. package/core/agentic/services.ts +5 -5
  7. package/core/agentic/smart-context.ts +7 -2
  8. package/core/command-registry/core-commands.ts +54 -29
  9. package/core/command-registry/optional-commands.ts +64 -0
  10. package/core/command-registry/setup-commands.ts +18 -3
  11. package/core/commands/analysis.ts +21 -68
  12. package/core/commands/analytics.ts +247 -213
  13. package/core/commands/base.ts +1 -1
  14. package/core/commands/index.ts +41 -36
  15. package/core/commands/maintenance.ts +300 -31
  16. package/core/commands/planning.ts +233 -22
  17. package/core/commands/setup.ts +3 -8
  18. package/core/commands/shipping.ts +14 -18
  19. package/core/commands/types.ts +8 -6
  20. package/core/commands/workflow.ts +105 -100
  21. package/core/context/generator.ts +317 -0
  22. package/core/context-sync.ts +7 -350
  23. package/core/data/index.ts +13 -32
  24. package/core/data/md-ideas-manager.ts +155 -0
  25. package/core/data/md-queue-manager.ts +4 -3
  26. package/core/data/md-shipped-manager.ts +90 -0
  27. package/core/data/md-state-manager.ts +11 -7
  28. package/core/domain/agent-generator.ts +23 -63
  29. package/core/events/index.ts +143 -0
  30. package/core/index.ts +17 -14
  31. package/core/infrastructure/capability-installer.ts +13 -149
  32. package/core/infrastructure/migrator/project-scanner.ts +2 -1
  33. package/core/infrastructure/path-manager.ts +4 -6
  34. package/core/infrastructure/setup.ts +3 -0
  35. package/core/infrastructure/uuid-migration.ts +750 -0
  36. package/core/outcomes/recorder.ts +2 -1
  37. package/core/plugin/loader.ts +4 -7
  38. package/core/plugin/registry.ts +3 -3
  39. package/core/schemas/index.ts +23 -25
  40. package/core/schemas/state.ts +1 -0
  41. package/core/serializers/ideas-serializer.ts +187 -0
  42. package/core/serializers/index.ts +16 -0
  43. package/core/serializers/shipped-serializer.ts +108 -0
  44. package/core/session/utils.ts +3 -9
  45. package/core/storage/ideas-storage.ts +273 -0
  46. package/core/storage/index.ts +204 -0
  47. package/core/storage/queue-storage.ts +297 -0
  48. package/core/storage/shipped-storage.ts +223 -0
  49. package/core/storage/state-storage.ts +235 -0
  50. package/core/storage/storage-manager.ts +175 -0
  51. package/package.json +1 -1
  52. package/packages/web/app/api/projects/[id]/momentum/route.ts +257 -0
  53. package/packages/web/app/api/sessions/current/route.ts +132 -0
  54. package/packages/web/app/api/sessions/history/route.ts +96 -14
  55. package/packages/web/app/globals.css +5 -0
  56. package/packages/web/app/layout.tsx +2 -0
  57. package/packages/web/app/project/[id]/code/layout.tsx +18 -0
  58. package/packages/web/app/project/[id]/code/page.tsx +408 -0
  59. package/packages/web/app/project/[id]/page.tsx +359 -389
  60. package/packages/web/app/project/[id]/reports/page.tsx +59 -0
  61. package/packages/web/app/project/[id]/reports/print/page.tsx +58 -0
  62. package/packages/web/components/ActivityTimeline/ActivityTimeline.tsx +0 -1
  63. package/packages/web/components/AgentsCard/AgentsCard.tsx +64 -34
  64. package/packages/web/components/AgentsCard/AgentsCard.types.ts +1 -0
  65. package/packages/web/components/AppSidebar/AppSidebar.tsx +135 -11
  66. package/packages/web/components/BentoCard/BentoCard.constants.ts +3 -3
  67. package/packages/web/components/BentoCard/BentoCard.tsx +2 -1
  68. package/packages/web/components/BentoGrid/BentoGrid.tsx +2 -2
  69. package/packages/web/components/BlockersCard/BlockersCard.tsx +65 -57
  70. package/packages/web/components/BlockersCard/BlockersCard.types.ts +1 -0
  71. package/packages/web/components/CommandBar/CommandBar.tsx +67 -0
  72. package/packages/web/components/CommandBar/index.ts +1 -0
  73. package/packages/web/components/DashboardContent/DashboardContent.tsx +35 -5
  74. package/packages/web/components/DateGroup/DateGroup.tsx +1 -1
  75. package/packages/web/components/EmptyState/EmptyState.tsx +39 -21
  76. package/packages/web/components/EmptyState/EmptyState.types.ts +1 -0
  77. package/packages/web/components/EventRow/EventRow.tsx +4 -4
  78. package/packages/web/components/EventRow/EventRow.utils.ts +3 -3
  79. package/packages/web/components/HeroSection/HeroSection.tsx +52 -15
  80. package/packages/web/components/HeroSection/HeroSection.types.ts +4 -4
  81. package/packages/web/components/HeroSection/HeroSection.utils.ts +7 -3
  82. package/packages/web/components/IdeasCard/IdeasCard.tsx +94 -27
  83. package/packages/web/components/IdeasCard/IdeasCard.types.ts +1 -0
  84. package/packages/web/components/MasonryGrid/MasonryGrid.tsx +18 -0
  85. package/packages/web/components/MasonryGrid/index.ts +1 -0
  86. package/packages/web/components/MomentumWidget/MomentumWidget.tsx +119 -0
  87. package/packages/web/components/MomentumWidget/MomentumWidget.types.ts +16 -0
  88. package/packages/web/components/MomentumWidget/index.ts +2 -0
  89. package/packages/web/components/NowCard/NowCard.tsx +81 -56
  90. package/packages/web/components/NowCard/NowCard.types.ts +1 -0
  91. package/packages/web/components/PageHeader/PageHeader.tsx +24 -0
  92. package/packages/web/components/PageHeader/index.ts +1 -0
  93. package/packages/web/components/ProgressRing/ProgressRing.constants.ts +2 -2
  94. package/packages/web/components/ProjectAvatar/ProjectAvatar.tsx +2 -2
  95. package/packages/web/components/ProjectColorDot/ProjectColorDot.tsx +37 -0
  96. package/packages/web/components/ProjectColorDot/index.ts +1 -0
  97. package/packages/web/components/ProjectSelectorModal/ProjectSelectorModal.tsx +104 -0
  98. package/packages/web/components/ProjectSelectorModal/index.ts +1 -0
  99. package/packages/web/components/Providers/Providers.tsx +4 -1
  100. package/packages/web/components/QueueCard/QueueCard.tsx +78 -25
  101. package/packages/web/components/QueueCard/QueueCard.types.ts +1 -0
  102. package/packages/web/components/QueueCard/QueueCard.utils.ts +3 -3
  103. package/packages/web/components/RecoverCard/RecoverCard.tsx +72 -0
  104. package/packages/web/components/RecoverCard/RecoverCard.types.ts +16 -0
  105. package/packages/web/components/RecoverCard/index.ts +2 -0
  106. package/packages/web/components/RoadmapCard/RoadmapCard.tsx +101 -33
  107. package/packages/web/components/RoadmapCard/RoadmapCard.types.ts +1 -0
  108. package/packages/web/components/ShipsCard/ShipsCard.tsx +71 -28
  109. package/packages/web/components/ShipsCard/ShipsCard.types.ts +2 -0
  110. package/packages/web/components/SparklineChart/SparklineChart.tsx +20 -18
  111. package/packages/web/components/StatsMasonry/StatsMasonry.tsx +95 -0
  112. package/packages/web/components/StatsMasonry/index.ts +1 -0
  113. package/packages/web/components/StreakCard/StreakCard.tsx +37 -35
  114. package/packages/web/components/TasksCounter/TasksCounter.tsx +1 -1
  115. package/packages/web/components/TechStackBadges/TechStackBadges.tsx +12 -4
  116. package/packages/web/components/TerminalDock/DockToggleTab.tsx +29 -0
  117. package/packages/web/components/TerminalDock/TerminalDock.tsx +386 -0
  118. package/packages/web/components/TerminalDock/TerminalDockTab.tsx +130 -0
  119. package/packages/web/components/TerminalDock/TerminalTabBar.tsx +142 -0
  120. package/packages/web/components/TerminalDock/index.ts +2 -0
  121. package/packages/web/components/VelocityBadge/VelocityBadge.tsx +8 -3
  122. package/packages/web/components/VelocityCard/VelocityCard.tsx +49 -47
  123. package/packages/web/components/WeeklyReports/PrintableReport.tsx +259 -0
  124. package/packages/web/components/WeeklyReports/ReportPreviewCard.tsx +187 -0
  125. package/packages/web/components/WeeklyReports/WeekCalendar.tsx +288 -0
  126. package/packages/web/components/WeeklyReports/WeeklyReports.tsx +149 -0
  127. package/packages/web/components/WeeklyReports/index.ts +4 -0
  128. package/packages/web/components/WeeklySparkline/WeeklySparkline.tsx +16 -4
  129. package/packages/web/components/WeeklySparkline/WeeklySparkline.types.ts +1 -0
  130. package/packages/web/components/charts/SessionsChart.tsx +6 -3
  131. package/packages/web/components/ui/dialog.tsx +143 -0
  132. package/packages/web/components/ui/drawer.tsx +135 -0
  133. package/packages/web/components/ui/select.tsx +187 -0
  134. package/packages/web/context/GlobalTerminalContext.tsx +538 -0
  135. package/packages/web/lib/commands.ts +81 -0
  136. package/packages/web/lib/generate-week-report.ts +285 -0
  137. package/packages/web/lib/parse-prjct-files.ts +56 -55
  138. package/packages/web/lib/project-colors.ts +58 -0
  139. package/packages/web/lib/projects.ts +58 -5
  140. package/packages/web/lib/services/projects.server.ts +11 -1
  141. package/packages/web/next-env.d.ts +1 -1
  142. package/packages/web/package.json +5 -1
  143. package/templates/commands/analyze.md +39 -3
  144. package/templates/commands/ask.md +58 -3
  145. package/templates/commands/bug.md +117 -26
  146. package/templates/commands/dash.md +95 -158
  147. package/templates/commands/done.md +130 -148
  148. package/templates/commands/feature.md +125 -103
  149. package/templates/commands/git.md +18 -3
  150. package/templates/commands/idea.md +121 -38
  151. package/templates/commands/init.md +124 -20
  152. package/templates/commands/migrate-all.md +63 -28
  153. package/templates/commands/migrate.md +140 -0
  154. package/templates/commands/next.md +115 -5
  155. package/templates/commands/now.md +146 -82
  156. package/templates/commands/pause.md +89 -74
  157. package/templates/commands/redo.md +6 -4
  158. package/templates/commands/resume.md +141 -59
  159. package/templates/commands/ship.md +103 -231
  160. package/templates/commands/spec.md +98 -8
  161. package/templates/commands/suggest.md +22 -2
  162. package/templates/commands/sync.md +192 -203
  163. package/templates/commands/undo.md +6 -4
  164. package/core/data/agents-manager.ts +0 -76
  165. package/core/data/analysis-manager.ts +0 -83
  166. package/core/data/base-manager.ts +0 -156
  167. package/core/data/ideas-manager.ts +0 -81
  168. package/core/data/outcomes-manager.ts +0 -96
  169. package/core/data/project-manager.ts +0 -75
  170. package/core/data/roadmap-manager.ts +0 -118
  171. package/core/data/shipped-manager.ts +0 -65
  172. package/core/data/state-manager.ts +0 -214
  173. package/core/state/index.ts +0 -25
  174. package/core/state/manager.ts +0 -376
  175. package/core/state/types.ts +0 -185
  176. package/core/utils/project-capabilities.ts +0 -156
  177. package/core/view-generator.ts +0 -536
  178. package/packages/web/app/project/[id]/stats/loading.tsx +0 -43
  179. package/packages/web/app/project/[id]/stats/page.tsx +0 -253
  180. package/templates/agent-assignment.md +0 -72
  181. package/templates/analysis/project-analysis.md +0 -78
  182. package/templates/checklists/accessibility.md +0 -33
  183. package/templates/commands/build.md +0 -17
  184. package/templates/commands/decision.md +0 -226
  185. package/templates/commands/fix.md +0 -79
  186. package/templates/commands/help.md +0 -61
  187. package/templates/commands/progress.md +0 -14
  188. package/templates/commands/recap.md +0 -14
  189. package/templates/commands/roadmap.md +0 -52
  190. package/templates/commands/status.md +0 -17
  191. package/templates/commands/task.md +0 -63
  192. package/templates/commands/work.md +0 -44
  193. package/templates/commands/workflow.md +0 -12
@@ -1,79 +0,0 @@
1
- ---
2
- allowed-tools: [Read, Bash, Edit]
3
- description: 'Troubleshooting, guidance, and fixes'
4
- ---
5
-
6
- # /p:fix
7
-
8
- ## Usage
9
-
10
- ```
11
- /p:fix # Diagnose current issue or get unstuck
12
- /p:fix [error] # Fix specific error
13
- /p:stuck [issue] # Alias for fix (guidance mode)
14
- ```
15
-
16
- ## Flow
17
-
18
- 1. Read: `core/now.md` + `analysis/` → get context
19
- 2. Parse: error message OR issue description
20
- 3. Detect: issue type (error/bug/design/perf/feature/blocked)
21
- 4. Apply: automatic fix OR provide guidance
22
- 5. Verify: test fix works (if auto-fix)
23
- 6. Log: `memory/context.jsonl`
24
-
25
- ## Auto-Fix (Technical Errors)
26
-
27
- - **Dependencies**: `npm install` missing packages
28
- - **Config**: Fix malformed JSON/YAML
29
- - **Syntax**: ESLint/Prettier auto-fix
30
- - **Tests**: Update snapshots, fix imports
31
- - **Git**: Resolve merge conflicts
32
-
33
- ## Guidance (When Stuck)
34
-
35
- - **Bug**: 🔍 Check logs → Isolate → Search error → Test fix
36
- - **Design**: 🎨 Define requirements → Start simple → Ship MVP → Iterate
37
- - **Performance**: ⚡ Profile first → Fix slowest → Cache ops → Measure
38
- - **Blocked**: 💡 Break into tasks → Start smallest → Ship incrementally
39
- - **Default**: Break down → Prioritize → Start → Ship
40
-
41
- ## Response (auto-fixed)
42
-
43
- ```
44
- ✅ Fixed: {error_type}
45
-
46
- {fix_details}
47
-
48
- Verify: {command_to_test}
49
-
50
- /p:test | /p:done
51
- ```
52
-
53
- ## Response (guidance)
54
-
55
- ```
56
- 💡 {type_guidance}
57
-
58
- Let's break it down:
59
- 1. {subtask} (~{time})
60
- 2. {subtask} (~{time})
61
- 3. {subtask} (~{time})
62
-
63
- Start with: /p:now "{first_subtask}"
64
-
65
- /p:now | /p:task
66
- ```
67
-
68
- ## Response (manual diagnosis)
69
-
70
- ```
71
- 🔍 Diagnosed: {issue}
72
-
73
- Suggested fixes:
74
- 1. {fix_option_1}
75
- 2. {fix_option_2}
76
- 3. {fix_option_3}
77
-
78
- /p:done after fixing
79
- ```
@@ -1,61 +0,0 @@
1
- ---
2
- allowed-tools: [Read]
3
- description: 'Contextual help'
4
- ---
5
-
6
- # /p:help
7
-
8
- ## Flow
9
- Check state → Determine context → Show relevant help
10
-
11
- ## Contexts
12
- 1. **Not init**: Show `/p:init` guide
13
- 2. **Empty**: Suggest `/p:feature` or `/p:analyze`
14
- 3. **Active task**: Show task, suggest `/p:done`
15
- 4. **Has queue**: Suggest `/p:work 1`
16
- 5. **Lost**: Show all options with examples
17
-
18
- ## Response Format
19
-
20
- ```
21
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━
22
- 🎯 HELP - {CONTEXT_TITLE}
23
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━
24
-
25
- 📊 Your status:
26
- • {relevant_state_info}
27
-
28
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━
29
-
30
- 💡 RECOMMENDED ACTIONS:
31
-
32
- 1. {action_1}
33
- → {command_or_natural_language}
34
-
35
- 2. {action_2}
36
- → {command_or_natural_language}
37
-
38
- 3. {action_3}
39
- → {command_or_natural_language}
40
-
41
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━
42
-
43
- 💬 OR JUST SAY:
44
- "{natural_example_1}"
45
- "{natural_example_2}"
46
-
47
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━
48
-
49
- 📚 CORE COMMANDS:
50
- Planning: /p:feature, /p:roadmap, /p:bug
51
- Working: /p:next, /p:build, /p:done
52
- Shipping: /p:ship
53
- Progress: /p:status, /p:recap
54
- Help: /p:ask, /p:suggest, /p:stuck
55
- ```
56
-
57
- ## Validation
58
-
59
- - **Optional**: Works before project initialized
60
- - **Read-only**: Never modifies files
61
- - **Adaptive**: Response changes based on state
@@ -1,14 +0,0 @@
1
- ---
2
- allowed-tools: [Read]
3
- description: 'Progress metrics'
4
- ---
5
-
6
- # /p:progress
7
-
8
- ## Flow
9
- 1. Parse period (day/week/month, default: week)
10
- 2. Read sessions → filter by date range
11
- 3. Aggregate: ships, velocity, trends
12
-
13
- ## Response
14
- `📈 {period} | 🚀 {N} shipped | ⚡ {velocity}/day | Trend: {↗%}`
@@ -1,14 +0,0 @@
1
- ---
2
- allowed-tools: [Read]
3
- description: 'Project overview'
4
- ---
5
-
6
- # /p:recap
7
-
8
- ## Flow
9
- 1. Read: core/, progress/, planning/ (30 days)
10
- 2. Read: sessions (7 days) → aggregate metrics
11
- 3. Show: project, focus, progress, activity
12
-
13
- ## Response
14
- `📊 {project} | 🎯 {task} | 📈 {shipped}/week | Queue: {N}`
@@ -1,52 +0,0 @@
1
- ---
2
- allowed-tools: [Read, Write]
3
- description: 'Strategic roadmap management'
4
- ---
5
-
6
- # /p:roadmap
7
-
8
- ## Usage
9
-
10
- ```
11
- /p:roadmap [show|add|complete|next] # Default: show
12
- ```
13
-
14
- ## Flow
15
-
16
- 1. Parse: action (show/add/complete/next)
17
- 2. **Read index**: `planning/roadmap.md` (last 30 days)
18
- 3. **Read sessions**: Last 3-7 days from `planning/sessions/{YYYY-MM}/` for details
19
- 4. Execute: based on action
20
- 5. Update: roadmap index if needed
21
- 6. Archive: entries > 30 days to `planning/archive/roadmap-{YYYY-MM}.md`
22
-
23
- ## Query Sessions
24
-
25
- To get complete roadmap history or specific date range:
26
-
27
- ```javascript
28
- // Read sessions for date range
29
- const sessions = await readSessions('planning/sessions', startDate, endDate)
30
- const features = sessions.filter(s => s.type === 'feature_add')
31
- ```
32
-
33
- ## Response (show)
34
-
35
- ```
36
- 📍 PRODUCT ROADMAP
37
-
38
- 🚀 Current Sprint ({X}% complete)
39
- ├── ✅ {feature}
40
- ├── 🔄 {feature} (in progress)
41
- └── ⏳ {feature}
42
-
43
- 📅 Next Up ({N} features)
44
- ├── {feature}
45
- └── {feature}
46
-
47
- 📊 Progress:
48
- • Velocity: {X.X} features/week
49
- • On track: {date}
50
-
51
- /p:now "{next_feature}"
52
- ```
@@ -1,17 +0,0 @@
1
- ---
2
- allowed-tools: [Read]
3
- description: 'KPI dashboard'
4
- ---
5
-
6
- # /p:status
7
-
8
- ## Flow
9
- Read metrics → Calculate KPIs → ASCII dashboard
10
-
11
- ## Display
12
- ```
13
- Sprint: [████░] {%}
14
- Tasks: {done}/{total}
15
- Ship: {days} ago
16
- Focus: {task}
17
- ```
@@ -1,63 +0,0 @@
1
- ---
2
- allowed-tools: [Read, Write, TodoWrite, Task, Glob]
3
- description: 'Break down complex tasks'
4
- ---
5
-
6
- # /p:task
7
-
8
- ## Agent Delegation (REQUIRED)
9
-
10
- Before executing task, delegate to specialist agent:
11
-
12
- 1. **List agents**: `Glob("~/.prjct-cli/projects/{projectId}/agents/*.md")`
13
- 2. **Analyze task domain**: Match to agent expertise
14
- 3. **Delegate via Task tool**:
15
-
16
- ```
17
- Task(
18
- subagent_type: 'general-purpose',
19
- prompt: '
20
- ## Agent
21
- Read: ~/.prjct-cli/projects/{projectId}/agents/{agent}.md
22
-
23
- ## Task
24
- {task description}
25
-
26
- ## Flow
27
- 1. Read agent file
28
- 2. Apply expertise
29
- 3. Execute task
30
- '
31
- )
32
- ```
33
-
34
- ## Usage
35
-
36
- ```
37
- /p:task <description>
38
- ```
39
-
40
- ## Flow
41
-
42
- 1. Analyze: task complexity
43
- 2. Break down: into 3-7 subtasks
44
- 3. Create: execution plan
45
- 4. Execute: each subtask with validation
46
- 5. Track: progress in `planning/tasks/`
47
-
48
- ## Response
49
-
50
- ```
51
- 📋 Task Plan: {description}
52
-
53
- Breakdown:
54
- 1. {subtask} (~{time})
55
- 2. {subtask} (~{time})
56
- 3. {subtask} (~{time})
57
-
58
- Est total: {total_time}
59
-
60
- 🚀 Starting execution...
61
- [1/{N}] {subtask}... ✅
62
- [2/{N}] {subtask}... 🔄
63
- ```
@@ -1,44 +0,0 @@
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
@@ -1,12 +0,0 @@
1
- ---
2
- allowed-tools: [Read, Write]
3
- description: 'Workflow status'
4
- ---
5
-
6
- # /p:workflow
7
-
8
- ## Flow
9
- Read `workflow/state.json` → Show progress
10
-
11
- ## Response
12
- `🔄 {task} | Step {N}/{total}: {step} ({agent}) | Skip: /p:workflow skip`