prjct-cli 1.45.5 → 1.45.6
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.
- package/CHANGELOG.md +23 -4
- package/dist/bin/prjct-core.mjs +124 -124
- package/dist/cli/jira.mjs +1 -1
- package/dist/cli/linear.mjs +1 -1
- package/dist/templates.json +1 -1
- package/package.json +2 -1
- package/templates/agentic/agent-routing.md +45 -0
- package/templates/agentic/agents/uxui.md +63 -0
- package/templates/agentic/checklist-routing.md +98 -0
- package/templates/agentic/orchestrator.md +68 -0
- package/templates/agentic/task-fragmentation.md +89 -0
- package/templates/agents/AGENTS.md +67 -0
- package/templates/analysis/analyze.md +84 -0
- package/templates/analysis/patterns.md +60 -0
- package/templates/antigravity/SKILL.md +39 -0
- package/templates/architect/discovery.md +67 -0
- package/templates/architect/phases.md +59 -0
- package/templates/baseline/anti-patterns/nextjs.json +18 -0
- package/templates/baseline/anti-patterns/react.json +18 -0
- package/templates/baseline/anti-patterns/typescript.json +18 -0
- package/templates/baseline/patterns/nextjs.json +18 -0
- package/templates/baseline/patterns/react.json +18 -0
- package/templates/baseline/patterns/typescript.json +18 -0
- package/templates/checklists/architecture.md +28 -0
- package/templates/checklists/code-quality.md +28 -0
- package/templates/checklists/data.md +33 -0
- package/templates/checklists/documentation.md +33 -0
- package/templates/checklists/infrastructure.md +33 -0
- package/templates/checklists/performance.md +33 -0
- package/templates/checklists/security.md +33 -0
- package/templates/checklists/testing.md +33 -0
- package/templates/checklists/ux-ui.md +37 -0
- package/templates/codex/SKILL.md +36 -0
- package/templates/commands/analyze.md +11 -0
- package/templates/commands/auth.md +15 -0
- package/templates/commands/bug.md +28 -0
- package/templates/commands/cleanup.md +11 -0
- package/templates/commands/dash.md +16 -0
- package/templates/commands/design.md +11 -0
- package/templates/commands/done.md +33 -0
- package/templates/commands/enrich.md +20 -0
- package/templates/commands/git.md +17 -0
- package/templates/commands/history.md +13 -0
- package/templates/commands/idea.md +13 -0
- package/templates/commands/impact.md +13 -0
- package/templates/commands/init.md +11 -0
- package/templates/commands/jira.md +88 -0
- package/templates/commands/learnings.md +11 -0
- package/templates/commands/linear.md +82 -0
- package/templates/commands/merge.md +25 -0
- package/templates/commands/next.md +12 -0
- package/templates/commands/p.md +62 -0
- package/templates/commands/p.toml +37 -0
- package/templates/commands/pause.md +16 -0
- package/templates/commands/plan.md +13 -0
- package/templates/commands/prd.md +21 -0
- package/templates/commands/resume.md +12 -0
- package/templates/commands/review.md +20 -0
- package/templates/commands/serve.md +11 -0
- package/templates/commands/sessions.md +13 -0
- package/templates/commands/setup.md +11 -0
- package/templates/commands/ship.md +46 -0
- package/templates/commands/skill.md +13 -0
- package/templates/commands/spec.md +20 -0
- package/templates/commands/status.md +11 -0
- package/templates/commands/sync.md +23 -0
- package/templates/commands/task.md +52 -0
- package/templates/commands/test.md +22 -0
- package/templates/commands/update.md +11 -0
- package/templates/commands/verify.md +11 -0
- package/templates/commands/workflow.md +69 -0
- package/templates/config/skill-mappings.json +82 -0
- package/templates/context/dashboard.md +251 -0
- package/templates/context/roadmap.md +221 -0
- package/templates/cursor/commands/bug.md +8 -0
- package/templates/cursor/commands/done.md +4 -0
- package/templates/cursor/commands/pause.md +6 -0
- package/templates/cursor/commands/resume.md +4 -0
- package/templates/cursor/commands/ship.md +8 -0
- package/templates/cursor/commands/sync.md +4 -0
- package/templates/cursor/commands/task.md +8 -0
- package/templates/cursor/p.md +29 -0
- package/templates/cursor/router.mdc +28 -0
- package/templates/design/api.md +95 -0
- package/templates/design/architecture.md +77 -0
- package/templates/design/component.md +89 -0
- package/templates/design/database.md +78 -0
- package/templates/design/flow.md +94 -0
- package/templates/global/ANTIGRAVITY.md +17 -0
- package/templates/global/CLAUDE.md +20 -0
- package/templates/global/CURSOR.mdc +20 -0
- package/templates/global/GEMINI.md +17 -0
- package/templates/global/STORAGE-SPEC.md +328 -0
- package/templates/global/WINDSURF.md +22 -0
- package/templates/global/modules/CLAUDE-commands.md +1 -0
- package/templates/global/modules/CLAUDE-core.md +16 -0
- package/templates/global/modules/CLAUDE-git.md +1 -0
- package/templates/global/modules/CLAUDE-intelligence.md +1 -0
- package/templates/global/modules/CLAUDE-storage.md +1 -0
- package/templates/global/modules/module-config.json +12 -0
- package/templates/mcp-config.json +29 -0
- package/templates/permissions/default.jsonc +60 -0
- package/templates/permissions/permissive.jsonc +49 -0
- package/templates/permissions/strict.jsonc +58 -0
- package/templates/planning-methodology.md +195 -0
- package/templates/skills/code-review.md +47 -0
- package/templates/skills/debug.md +61 -0
- package/templates/skills/refactor.md +47 -0
- package/templates/subagents/agent-base.md +21 -0
- package/templates/subagents/domain/backend.md +109 -0
- package/templates/subagents/domain/database.md +121 -0
- package/templates/subagents/domain/devops.md +152 -0
- package/templates/subagents/domain/frontend.md +103 -0
- package/templates/subagents/domain/testing.md +169 -0
- package/templates/subagents/pm-expert.md +366 -0
- package/templates/subagents/workflow/chief-architect.md +653 -0
- package/templates/subagents/workflow/prjct-planner.md +120 -0
- package/templates/subagents/workflow/prjct-shipper.md +175 -0
- package/templates/subagents/workflow/prjct-workflow.md +82 -0
- package/templates/tools/bash.txt +22 -0
- package/templates/tools/edit.txt +18 -0
- package/templates/tools/glob.txt +19 -0
- package/templates/tools/grep.txt +21 -0
- package/templates/tools/read.txt +14 -0
- package/templates/tools/task.txt +20 -0
- package/templates/tools/webfetch.txt +16 -0
- package/templates/tools/websearch.txt +18 -0
- package/templates/tools/write.txt +17 -0
- package/templates/windsurf/router.md +28 -0
- package/templates/windsurf/workflows/bug.md +8 -0
- package/templates/windsurf/workflows/done.md +4 -0
- package/templates/windsurf/workflows/pause.md +4 -0
- package/templates/windsurf/workflows/resume.md +4 -0
- package/templates/windsurf/workflows/ship.md +8 -0
- package/templates/windsurf/workflows/sync.md +4 -0
- package/templates/windsurf/workflows/task.md +8 -0
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: PM Expert
|
|
3
|
+
role: Product-Technical Bridge Agent
|
|
4
|
+
triggers: [enrichment, task-creation, dependency-analysis]
|
|
5
|
+
skills: [scrum, agile, user-stories, technical-analysis]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# PM Expert Agent
|
|
9
|
+
|
|
10
|
+
**Mission:** Transform minimal product descriptions into complete technical tasks, following Agile/Scrum best practices, and detecting dependencies before execution.
|
|
11
|
+
|
|
12
|
+
## Problem It Solves
|
|
13
|
+
|
|
14
|
+
| Before | After |
|
|
15
|
+
|--------|-------|
|
|
16
|
+
| PO writes: "Login broken" | Complete task with technical context |
|
|
17
|
+
| Dev guesses what to do | Clear instructions for LLM |
|
|
18
|
+
| Dependencies discovered late | Dependencies detected before starting |
|
|
19
|
+
| PM can't see real progress | Real-time dashboard |
|
|
20
|
+
| See all team issues (noise) | **Only your assigned issues** |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Per-Project Configuration
|
|
25
|
+
|
|
26
|
+
Each project can have a **different issue tracker**. Configuration is stored per-project.
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
~/.prjct-cli/projects/
|
|
30
|
+
├── project-a/ # Uses Linear
|
|
31
|
+
│ └── project.json → issueTracker: { provider: 'linear', teamKey: 'ENG' }
|
|
32
|
+
├── project-b/ # Uses GitHub Issues
|
|
33
|
+
│ └── project.json → issueTracker: { provider: 'github', repo: 'org/repo' }
|
|
34
|
+
├── project-c/ # Uses Jira
|
|
35
|
+
│ └── project.json → issueTracker: { provider: 'jira', projectKey: 'PROJ' }
|
|
36
|
+
└── project-d/ # No issue tracker (standalone)
|
|
37
|
+
└── project.json → issueTracker: null
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Supported Providers
|
|
41
|
+
|
|
42
|
+
| Provider | Status | Auth |
|
|
43
|
+
|----------|--------|------|
|
|
44
|
+
| Linear | ✅ Ready | MCP (OAuth) |
|
|
45
|
+
| GitHub Issues | 🔜 Soon | `GITHUB_TOKEN` |
|
|
46
|
+
| Jira | 🔜 Soon | MCP (OAuth) |
|
|
47
|
+
| Monday | 🔜 Soon | `MONDAY_API_KEY` |
|
|
48
|
+
| None | ✅ Ready | - |
|
|
49
|
+
|
|
50
|
+
### Setup per Project
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# In project directory
|
|
54
|
+
p. linear setup # Configure Linear for THIS project
|
|
55
|
+
p. github setup # Configure GitHub for THIS project
|
|
56
|
+
p. jira setup # Configure Jira for THIS project
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## User-Scoped View
|
|
62
|
+
|
|
63
|
+
**Critical:** prjct only shows issues assigned to YOU. No noise from other team members' work.
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
┌────────────────────────────────────────────────────────────┐
|
|
67
|
+
│ Your Issues @jlopez │
|
|
68
|
+
├────────────────────────────────────────────────────────────┤
|
|
69
|
+
│ │
|
|
70
|
+
│ ✓ Only issues assigned to you │
|
|
71
|
+
│ ✓ Filtered by your default team │
|
|
72
|
+
│ ✓ Sorted by priority │
|
|
73
|
+
│ │
|
|
74
|
+
│ ENG-123 🔴 High Login broken on mobile │
|
|
75
|
+
│ ENG-456 🟡 Medium Add password reset │
|
|
76
|
+
│ ENG-789 🟢 Low Update footer links │
|
|
77
|
+
│ │
|
|
78
|
+
└────────────────────────────────────────────────────────────┘
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Filter Options
|
|
82
|
+
|
|
83
|
+
| Filter | Description |
|
|
84
|
+
|--------|-------------|
|
|
85
|
+
| `--mine` (default) | Only your assigned issues |
|
|
86
|
+
| `--team` | All issues in your team |
|
|
87
|
+
| `--project <name>` | Issues in a specific project |
|
|
88
|
+
| `--unassigned` | Unassigned issues (for picking up work) |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Enrichment Flow
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
96
|
+
│ INPUT: Minimal title or description │
|
|
97
|
+
│ "Login doesn't work on mobile" │
|
|
98
|
+
└─────────────────────────────────────────────────────────────┘
|
|
99
|
+
│
|
|
100
|
+
▼
|
|
101
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
102
|
+
│ PHASE 1: INTELLIGENT CLASSIFICATION │
|
|
103
|
+
│ ───────────────────────────────────────────────────────── │
|
|
104
|
+
│ • Analyze PO intent │
|
|
105
|
+
│ • Classify: bug | feature | improvement | task | chore │
|
|
106
|
+
│ • Determine priority based on impact │
|
|
107
|
+
│ • Assign labels (mobile, auth, critical, etc.) │
|
|
108
|
+
└─────────────────────────────────────────────────────────────┘
|
|
109
|
+
│
|
|
110
|
+
▼
|
|
111
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
112
|
+
│ PHASE 2: TECHNICAL ANALYSIS │
|
|
113
|
+
│ ───────────────────────────────────────────────────────── │
|
|
114
|
+
│ • Explore related codebase │
|
|
115
|
+
│ • Identify affected files │
|
|
116
|
+
│ • Detect existing patterns │
|
|
117
|
+
│ • Estimate technical complexity │
|
|
118
|
+
└─────────────────────────────────────────────────────────────┘
|
|
119
|
+
│
|
|
120
|
+
▼
|
|
121
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
122
|
+
│ PHASE 3: DEPENDENCY DETECTION │
|
|
123
|
+
│ ───────────────────────────────────────────────────────── │
|
|
124
|
+
│ • Code dependencies (imports, services) │
|
|
125
|
+
│ • Data dependencies (APIs, DB schemas) │
|
|
126
|
+
│ • Task dependencies (other blocking tasks) │
|
|
127
|
+
│ • Potential risks and blockers │
|
|
128
|
+
└─────────────────────────────────────────────────────────────┘
|
|
129
|
+
│
|
|
130
|
+
▼
|
|
131
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
132
|
+
│ PHASE 4: USER STORY GENERATION │
|
|
133
|
+
│ ───────────────────────────────────────────────────────── │
|
|
134
|
+
│ • User story format: As a [role], I want [action]... │
|
|
135
|
+
│ • Acceptance Criteria (Gherkin or checklist) │
|
|
136
|
+
│ • Definition of Done │
|
|
137
|
+
│ • Technical notes for the developer │
|
|
138
|
+
└─────────────────────────────────────────────────────────────┘
|
|
139
|
+
│
|
|
140
|
+
▼
|
|
141
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
142
|
+
│ PHASE 5: LLM PROMPT │
|
|
143
|
+
│ ───────────────────────────────────────────────────────── │
|
|
144
|
+
│ • Generate optimized prompt for Claude/LLM │
|
|
145
|
+
│ • Include codebase context │
|
|
146
|
+
│ • Implementation instructions │
|
|
147
|
+
│ • Verification criteria │
|
|
148
|
+
└─────────────────────────────────────────────────────────────┘
|
|
149
|
+
│
|
|
150
|
+
▼
|
|
151
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
152
|
+
│ OUTPUT: Enriched Task │
|
|
153
|
+
└─────────────────────────────────────────────────────────────┘
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Output Format
|
|
159
|
+
|
|
160
|
+
### For PM/PO (Product View)
|
|
161
|
+
|
|
162
|
+
```markdown
|
|
163
|
+
## 🐛 BUG: Login doesn't work on mobile
|
|
164
|
+
|
|
165
|
+
**Priority:** 🔴 High (affects conversion)
|
|
166
|
+
**Type:** Bug
|
|
167
|
+
**Sprint:** Current
|
|
168
|
+
**Estimate:** 3 points
|
|
169
|
+
|
|
170
|
+
### User Story
|
|
171
|
+
As a **mobile user**, I want to **log in from my phone**
|
|
172
|
+
so that **I can access my account without using desktop**.
|
|
173
|
+
|
|
174
|
+
### Acceptance Criteria
|
|
175
|
+
- [ ] Login form displays correctly on screens < 768px
|
|
176
|
+
- [ ] Submit button is clickable on iOS and Android
|
|
177
|
+
- [ ] Error messages are visible on mobile
|
|
178
|
+
- [ ] Successful login redirects to dashboard
|
|
179
|
+
|
|
180
|
+
### Dependencies
|
|
181
|
+
⚠️ **Potential blocker:** Auth service uses cookies that may
|
|
182
|
+
have issues with WebView in native apps.
|
|
183
|
+
|
|
184
|
+
### Impact
|
|
185
|
+
- Affected users: ~40% of traffic
|
|
186
|
+
- Related metrics: Login conversion rate, Mobile bounce rate
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### For Developer (Technical View)
|
|
190
|
+
|
|
191
|
+
```markdown
|
|
192
|
+
## Technical Context
|
|
193
|
+
|
|
194
|
+
### Affected Files
|
|
195
|
+
- `src/components/Auth/LoginForm.tsx` - Main form
|
|
196
|
+
- `src/styles/auth.css` - Responsive styles
|
|
197
|
+
- `src/hooks/useAuth.ts` - Auth hook
|
|
198
|
+
- `src/services/auth.ts` - API calls
|
|
199
|
+
|
|
200
|
+
### Problem Analysis
|
|
201
|
+
The viewport meta tag is incorrectly configured in `index.html`.
|
|
202
|
+
Styles in `auth.css:45-67` use `min-width` when they should use `max-width`.
|
|
203
|
+
|
|
204
|
+
### Pattern to Follow
|
|
205
|
+
See similar implementation in `src/components/Profile/EditForm.tsx`
|
|
206
|
+
which handles responsive correctly.
|
|
207
|
+
|
|
208
|
+
### LLM Prompt (Copy & Paste Ready)
|
|
209
|
+
|
|
210
|
+
Use this prompt with any AI assistant (Claude, ChatGPT, Copilot, Gemini, etc.):
|
|
211
|
+
|
|
212
|
+
\`\`\`
|
|
213
|
+
## Task: Fix mobile login
|
|
214
|
+
|
|
215
|
+
### Context
|
|
216
|
+
I'm working on a codebase with the following structure:
|
|
217
|
+
- Frontend: React/TypeScript
|
|
218
|
+
- Auth: Custom hooks in src/hooks/useAuth.ts
|
|
219
|
+
- Styles: CSS modules in src/styles/
|
|
220
|
+
|
|
221
|
+
### Problem
|
|
222
|
+
The login form doesn't work correctly on mobile devices.
|
|
223
|
+
|
|
224
|
+
### What needs to be done
|
|
225
|
+
1. Check viewport meta tag in index.html
|
|
226
|
+
2. Fix CSS media queries in auth.css (change min-width to max-width)
|
|
227
|
+
3. Ensure touch events work (onClick should also handle onTouchEnd)
|
|
228
|
+
|
|
229
|
+
### Files to modify
|
|
230
|
+
- src/components/Auth/LoginForm.tsx
|
|
231
|
+
- src/styles/auth.css
|
|
232
|
+
- index.html
|
|
233
|
+
|
|
234
|
+
### Reference implementation
|
|
235
|
+
See src/components/Profile/EditForm.tsx for a working responsive pattern.
|
|
236
|
+
|
|
237
|
+
### Acceptance criteria
|
|
238
|
+
- [ ] Login works on iPhone Safari
|
|
239
|
+
- [ ] Login works on Android Chrome
|
|
240
|
+
- [ ] Desktop version still works
|
|
241
|
+
- [ ] No console errors on mobile
|
|
242
|
+
|
|
243
|
+
### How to verify
|
|
244
|
+
1. Run `npm run dev`
|
|
245
|
+
2. Open browser dev tools, toggle mobile view
|
|
246
|
+
3. Test login flow on different screen sizes
|
|
247
|
+
\`\`\`
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Dependency Detection
|
|
253
|
+
|
|
254
|
+
### Dependency Types
|
|
255
|
+
|
|
256
|
+
| Type | Example | Detection |
|
|
257
|
+
|------|---------|-----------|
|
|
258
|
+
| **Code** | `LoginForm` imports `useAuth` | Import analysis |
|
|
259
|
+
| **API** | `/api/auth/login` endpoint | Grep fetch/axios calls |
|
|
260
|
+
| **Database** | Table `users`, field `last_login` | Schema analysis |
|
|
261
|
+
| **Tasks** | "Deploy new endpoint" blocked | Task queue analysis |
|
|
262
|
+
| **Infrastructure** | Redis for sessions | Config file analysis |
|
|
263
|
+
|
|
264
|
+
### Report Format
|
|
265
|
+
|
|
266
|
+
```yaml
|
|
267
|
+
dependencies:
|
|
268
|
+
code:
|
|
269
|
+
- file: src/hooks/useAuth.ts
|
|
270
|
+
reason: Main auth hook
|
|
271
|
+
risk: low
|
|
272
|
+
- file: src/services/auth.ts
|
|
273
|
+
reason: API calls
|
|
274
|
+
risk: medium (changes here affect other flows)
|
|
275
|
+
|
|
276
|
+
api:
|
|
277
|
+
- endpoint: POST /api/auth/login
|
|
278
|
+
status: stable
|
|
279
|
+
risk: low
|
|
280
|
+
|
|
281
|
+
blocking_tasks:
|
|
282
|
+
- id: ENG-456
|
|
283
|
+
title: "Migrate to OAuth 2.0"
|
|
284
|
+
status: in_progress
|
|
285
|
+
risk: high (may change auth flow)
|
|
286
|
+
|
|
287
|
+
infrastructure:
|
|
288
|
+
- service: Redis
|
|
289
|
+
purpose: Session storage
|
|
290
|
+
risk: none (no changes required)
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Integration with Linear/Jira
|
|
296
|
+
|
|
297
|
+
### Bidirectional Sync
|
|
298
|
+
|
|
299
|
+
```
|
|
300
|
+
Linear/Jira Issue prjct Enrichment
|
|
301
|
+
───────────────── ─────────────────
|
|
302
|
+
Basic title ──────► Complete User Story
|
|
303
|
+
No AC ──────► Acceptance Criteria
|
|
304
|
+
No context ──────► Technical notes
|
|
305
|
+
Manual priority ──────► Suggested priority
|
|
306
|
+
◄────── Updates description
|
|
307
|
+
◄────── Updates labels
|
|
308
|
+
◄────── Marks progress
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Fields Enriched
|
|
312
|
+
|
|
313
|
+
| Field | Before | After |
|
|
314
|
+
|-------|--------|-------|
|
|
315
|
+
| Description | "Login broken" | User story + AC + technical notes |
|
|
316
|
+
| Labels | (empty) | `bug`, `mobile`, `auth`, `high-priority` |
|
|
317
|
+
| Estimate | (empty) | 3 points (based on analysis) |
|
|
318
|
+
| Assignee | (empty) | Suggested based on `git blame` |
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Commands
|
|
323
|
+
|
|
324
|
+
| Command | Action |
|
|
325
|
+
|---------|--------|
|
|
326
|
+
| `p. enrich <title>` | Enrich minimal description |
|
|
327
|
+
| `p. analyze <ID>` | Analyze existing issue |
|
|
328
|
+
| `p. deps <ID>` | Detect dependencies |
|
|
329
|
+
| `p. ready <ID>` | Check if task is ready for dev |
|
|
330
|
+
| `p. prompt <ID>` | Generate optimized LLM prompt |
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## PM Metrics
|
|
335
|
+
|
|
336
|
+
### Real-Time Dashboard
|
|
337
|
+
|
|
338
|
+
```
|
|
339
|
+
┌────────────────────────────────────────────────────────────┐
|
|
340
|
+
│ Sprint Progress v0.29 │
|
|
341
|
+
├────────────────────────────────────────────────────────────┤
|
|
342
|
+
│ │
|
|
343
|
+
│ Features ████████░░░░░░░░░░░░ 40% (4/10) │
|
|
344
|
+
│ Bugs ██████████████░░░░░░ 70% (7/10) │
|
|
345
|
+
│ Tech Debt ████░░░░░░░░░░░░░░░░ 20% (2/10) │
|
|
346
|
+
│ │
|
|
347
|
+
│ ─────────────────────────────────────────────────────────│
|
|
348
|
+
│ Velocity: 23 pts/sprint (↑ 15% vs last) │
|
|
349
|
+
│ Blockers: 2 (ENG-456, ENG-789) │
|
|
350
|
+
│ Ready for Dev: 5 tasks │
|
|
351
|
+
│ │
|
|
352
|
+
│ Recent Activity │
|
|
353
|
+
│ • ENG-123 shipped (login fix) - 2h ago │
|
|
354
|
+
│ • ENG-124 enriched - 30m ago │
|
|
355
|
+
│ • ENG-125 blocked by ENG-456 - just now │
|
|
356
|
+
│ │
|
|
357
|
+
└────────────────────────────────────────────────────────────┘
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## Core Principle
|
|
363
|
+
|
|
364
|
+
> **We don't break "just ship"** - Enrichment is a helper layer,
|
|
365
|
+
> not a blocker. Developers can always run `p. task` directly.
|
|
366
|
+
> PM Expert improves quality, doesn't add bureaucracy.
|