prjct-cli 1.45.4 → 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 +27 -2
- package/dist/bin/prjct-core.mjs +160 -160
- package/dist/cli/jira.mjs +1 -1
- package/dist/cli/linear.mjs +1 -1
- package/dist/daemon/entry.mjs +99 -99
- 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,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: [Bash, Read, Write, Edit, Glob, Grep, Task, AskUserQuestion]
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# p. task $ARGUMENTS
|
|
6
|
+
|
|
7
|
+
## Step 1: Validate
|
|
8
|
+
If $ARGUMENTS is empty, ASK the user what task to start.
|
|
9
|
+
|
|
10
|
+
## Step 2: Get task context
|
|
11
|
+
```bash
|
|
12
|
+
prjct task "$ARGUMENTS" --md
|
|
13
|
+
```
|
|
14
|
+
If CLI output is JSON with `options`, present the options to the user and execute the chosen command.
|
|
15
|
+
|
|
16
|
+
## Step 3: Understand before acting (USE YOUR INTELLIGENCE)
|
|
17
|
+
- Context7 is mandatory: for framework/library APIs, consult Context7 docs before implementation/refactor
|
|
18
|
+
- Read the relevant files from the CLI output
|
|
19
|
+
- If the task is ambiguous, ASK the user to clarify
|
|
20
|
+
- Explore beyond suggested files if needed
|
|
21
|
+
|
|
22
|
+
## Step 4: Plan the approach
|
|
23
|
+
- For non-trivial changes, propose 2-3 approaches
|
|
24
|
+
- Consider existing patterns in the codebase
|
|
25
|
+
- If CLI output mentions domain agents, read them for project patterns
|
|
26
|
+
- Summarize anti-patterns from the CLI output before editing any file
|
|
27
|
+
|
|
28
|
+
## Step 5: Execute
|
|
29
|
+
- Create feature branch if on main: `git checkout -b {type}/{slug}`
|
|
30
|
+
- Work through subtasks in order
|
|
31
|
+
- When done with a subtask: `prjct done --md`
|
|
32
|
+
- Every git commit MUST include footer: `Generated with [p/](https://www.prjct.app/)`
|
|
33
|
+
- If a change may violate a high-severity anti-pattern, ask for confirmation and propose a safer alternative first
|
|
34
|
+
|
|
35
|
+
## Step 6: Ship (MANDATORY)
|
|
36
|
+
When all work is complete, you MUST execute the ship workflow:
|
|
37
|
+
ASK: "Work complete. Ready to ship?" Ship now / Continue working / Pause
|
|
38
|
+
- If Ship now: execute `p. ship` workflow (load and follow `~/.claude/commands/p/ship.md`)
|
|
39
|
+
- If Continue working: stay in Step 5
|
|
40
|
+
- If Pause: execute `p. pause`
|
|
41
|
+
|
|
42
|
+
NEVER end a task without asking about shipping. This is non-negotiable.
|
|
43
|
+
|
|
44
|
+
## Presentation
|
|
45
|
+
When showing task context to the user, format your response as:
|
|
46
|
+
|
|
47
|
+
1. Start with a brief status line: `**Task started**: {description}`
|
|
48
|
+
2. Show the subtask table from CLI output
|
|
49
|
+
3. List 2-3 key files you'll work on with `code formatting` for paths
|
|
50
|
+
4. End with your approach (concise, 2-3 bullets)
|
|
51
|
+
|
|
52
|
+
Keep responses scannable. Use tables for structured data. Use `code formatting` for file paths and commands.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: [Bash, Read]
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# p. test $ARGUMENTS
|
|
6
|
+
|
|
7
|
+
## Step 1: Run tests
|
|
8
|
+
```bash
|
|
9
|
+
prjct test $ARGUMENTS --md
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
If the CLI doesn't handle testing directly, detect and run:
|
|
13
|
+
- Node: `npm test` or `bun test`
|
|
14
|
+
- Python: `pytest`
|
|
15
|
+
- Rust: `cargo test`
|
|
16
|
+
- Go: `go test ./...`
|
|
17
|
+
|
|
18
|
+
## Step 2: Report results
|
|
19
|
+
Show pass/fail counts. If tests fail, show the relevant output.
|
|
20
|
+
|
|
21
|
+
## Fix mode (`p. test fix`)
|
|
22
|
+
Update test snapshots and re-run to verify.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: [Bash, AskUserQuestion]
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# p. workflow $ARGUMENTS
|
|
6
|
+
|
|
7
|
+
## Step 1: Parse intent
|
|
8
|
+
|
|
9
|
+
If $ARGUMENTS is empty, show current rules:
|
|
10
|
+
```bash
|
|
11
|
+
prjct workflow --md
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
**If $ARGUMENTS contains natural language, DO NOT pass it raw to the CLI.**
|
|
15
|
+
The CLI only accepts structured args — you must parse the intent yourself first.
|
|
16
|
+
|
|
17
|
+
Parse:
|
|
18
|
+
- **Action**: add / remove / list / create / delete / reset
|
|
19
|
+
- **Command**: the shell command to run (infer from description)
|
|
20
|
+
- **Position**: `before` or `after` (from words like "after", "después de", "before", "antes de")
|
|
21
|
+
- **Workflow**: `task` / `done` / `ship` / `sync` (infer from context)
|
|
22
|
+
|
|
23
|
+
**Inference examples**:
|
|
24
|
+
| Natural language | → | Structured |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| "después del merge revisa npm" | → | `add "npm view prjct-cli version" after ship` |
|
|
27
|
+
| "after ship check npm version" | → | `add "npm view prjct-cli version" after ship` |
|
|
28
|
+
| "before task run tests" | → | `add "npm test" before task` |
|
|
29
|
+
| "check lint before ship" | → | `add "npm run lint" before ship` |
|
|
30
|
+
| "after done show git log" | → | `add "git log --oneline -5" after done` |
|
|
31
|
+
|
|
32
|
+
If any of the three values (command, position, workflow) is ambiguous → ASK before running.
|
|
33
|
+
|
|
34
|
+
## Step 2: Execute
|
|
35
|
+
|
|
36
|
+
### Add a rule
|
|
37
|
+
```bash
|
|
38
|
+
prjct workflow add "$COMMAND" $POSITION $WORKFLOW --md
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### List rules
|
|
42
|
+
```bash
|
|
43
|
+
prjct workflow list --md
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Remove a rule
|
|
47
|
+
```bash
|
|
48
|
+
prjct workflow rm $RULE_ID --md
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Create custom workflow
|
|
52
|
+
```bash
|
|
53
|
+
prjct workflow create "$NAME" "$DESCRIPTION" --md
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Delete custom workflow
|
|
57
|
+
```bash
|
|
58
|
+
prjct workflow delete "$NAME" --md
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Step 3: Confirm destructive actions
|
|
62
|
+
|
|
63
|
+
For `reset` (removes all rules): ASK "Remove all workflow rules?" Yes / Cancel
|
|
64
|
+
|
|
65
|
+
For `remove` with multiple matches: show matches and ASK which one to remove.
|
|
66
|
+
|
|
67
|
+
## Step 4: Present result
|
|
68
|
+
|
|
69
|
+
Show the CLI markdown output to the user.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "3.0.0",
|
|
3
|
+
"description": "Skill packages from skills.sh for auto-installation during sync",
|
|
4
|
+
"sources": {
|
|
5
|
+
"primary": {
|
|
6
|
+
"name": "skills.sh",
|
|
7
|
+
"url": "https://skills.sh",
|
|
8
|
+
"installCmd": "npx skills add {package}"
|
|
9
|
+
},
|
|
10
|
+
"fallback": {
|
|
11
|
+
"name": "GitHub direct",
|
|
12
|
+
"installFormat": "owner/repo"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"skillsDirectory": "~/.claude/skills/",
|
|
16
|
+
"skillFormat": {
|
|
17
|
+
"required": ["name", "description"],
|
|
18
|
+
"optional": ["license", "compatibility", "metadata", "allowed-tools"],
|
|
19
|
+
"fileStructure": {
|
|
20
|
+
"required": "SKILL.md",
|
|
21
|
+
"optional": ["scripts/", "references/", "assets/"]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"agentToSkillMap": {
|
|
25
|
+
"frontend": {
|
|
26
|
+
"packages": [
|
|
27
|
+
"anthropics/skills/frontend-design",
|
|
28
|
+
"vercel-labs/agent-skills/vercel-react-best-practices"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"uxui": {
|
|
32
|
+
"packages": ["anthropics/skills/frontend-design"]
|
|
33
|
+
},
|
|
34
|
+
"backend": {
|
|
35
|
+
"packages": ["obra/superpowers/systematic-debugging"]
|
|
36
|
+
},
|
|
37
|
+
"database": {
|
|
38
|
+
"packages": []
|
|
39
|
+
},
|
|
40
|
+
"testing": {
|
|
41
|
+
"packages": ["obra/superpowers/test-driven-development", "anthropics/skills/webapp-testing"]
|
|
42
|
+
},
|
|
43
|
+
"devops": {
|
|
44
|
+
"packages": ["anthropics/skills/mcp-builder"]
|
|
45
|
+
},
|
|
46
|
+
"prjct-planner": {
|
|
47
|
+
"packages": ["obra/superpowers/brainstorming"]
|
|
48
|
+
},
|
|
49
|
+
"prjct-shipper": {
|
|
50
|
+
"packages": []
|
|
51
|
+
},
|
|
52
|
+
"prjct-workflow": {
|
|
53
|
+
"packages": []
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"documentSkills": {
|
|
57
|
+
"note": "Official Anthropic document creation skills",
|
|
58
|
+
"source": "anthropics/skills",
|
|
59
|
+
"skills": {
|
|
60
|
+
"pdf": {
|
|
61
|
+
"name": "pdf",
|
|
62
|
+
"description": "Create and edit PDF documents",
|
|
63
|
+
"path": "skills/pdf"
|
|
64
|
+
},
|
|
65
|
+
"docx": {
|
|
66
|
+
"name": "docx",
|
|
67
|
+
"description": "Create and edit Word documents",
|
|
68
|
+
"path": "skills/docx"
|
|
69
|
+
},
|
|
70
|
+
"pptx": {
|
|
71
|
+
"name": "pptx",
|
|
72
|
+
"description": "Create PowerPoint presentations",
|
|
73
|
+
"path": "skills/pptx"
|
|
74
|
+
},
|
|
75
|
+
"xlsx": {
|
|
76
|
+
"name": "xlsx",
|
|
77
|
+
"description": "Create Excel spreadsheets",
|
|
78
|
+
"path": "skills/xlsx"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 'Template for generated dashboard context'
|
|
3
|
+
generated-by: 'p. dashboard'
|
|
4
|
+
data-source: 'prjct.db (SQLite)'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Dashboard Context Template
|
|
8
|
+
|
|
9
|
+
This template defines the format for `{globalPath}/context/dashboard.md` generated by `p. dashboard`.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Template
|
|
14
|
+
|
|
15
|
+
```markdown
|
|
16
|
+
# Dashboard
|
|
17
|
+
|
|
18
|
+
**Project:** {projectName}
|
|
19
|
+
**Generated:** {timestamp}
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Health Score
|
|
24
|
+
|
|
25
|
+
**Overall:** {healthScore}/100
|
|
26
|
+
|
|
27
|
+
| Component | Score | Weight | Contribution |
|
|
28
|
+
|-----------|-------|--------|--------------|
|
|
29
|
+
| Roadmap Progress | {roadmapScore}/100 | 25% | {roadmapContribution} |
|
|
30
|
+
| Estimation Accuracy | {estimationScore}/100 | 25% | {estimationContribution} |
|
|
31
|
+
| Success Rate | {successScore}/100 | 25% | {successContribution} |
|
|
32
|
+
| Velocity Trend | {velocityScore}/100 | 25% | {velocityContribution} |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Quick Stats
|
|
37
|
+
|
|
38
|
+
| Metric | Value | Trend |
|
|
39
|
+
|--------|-------|-------|
|
|
40
|
+
| Features Shipped | {shippedCount} | {shippedTrend} |
|
|
41
|
+
| PRDs Created | {prdCount} | {prdTrend} |
|
|
42
|
+
| Avg Cycle Time | {avgCycleTime}d | {cycleTrend} |
|
|
43
|
+
| Estimation Accuracy | {estimationAccuracy}% | {accuracyTrend} |
|
|
44
|
+
| Success Rate | {successRate}% | {successTrend} |
|
|
45
|
+
| ROI Score | {avgROI} | {roiTrend} |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Active Quarter: {activeQuarter.id}
|
|
50
|
+
|
|
51
|
+
**Theme:** {activeQuarter.theme}
|
|
52
|
+
**Status:** {activeQuarter.status}
|
|
53
|
+
|
|
54
|
+
### Progress
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Features: {featureBar} {quarterFeatureProgress}%
|
|
58
|
+
Capacity: {capacityBar} {capacityUtilization}%
|
|
59
|
+
Timeline: {timelineBar} {timelineProgress}%
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Features
|
|
63
|
+
|
|
64
|
+
| Feature | Status | Progress | Owner |
|
|
65
|
+
|---------|--------|----------|-------|
|
|
66
|
+
{FOR EACH feature in quarterFeatures:}
|
|
67
|
+
| {feature.name} | {statusEmoji(feature.status)} | {feature.progress}% | {feature.agent || '-'} |
|
|
68
|
+
{END FOR}
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Current Work
|
|
73
|
+
|
|
74
|
+
### Active Task
|
|
75
|
+
{IF currentTask:}
|
|
76
|
+
**{currentTask.description}**
|
|
77
|
+
|
|
78
|
+
- Type: {currentTask.type}
|
|
79
|
+
- Started: {currentTask.startedAt}
|
|
80
|
+
- Elapsed: {elapsed}
|
|
81
|
+
- Branch: {currentTask.branch?.name || 'N/A'}
|
|
82
|
+
|
|
83
|
+
Subtasks: {completedSubtasks}/{totalSubtasks}
|
|
84
|
+
{ELSE:}
|
|
85
|
+
*No active task*
|
|
86
|
+
{END IF}
|
|
87
|
+
|
|
88
|
+
### In Progress Features
|
|
89
|
+
|
|
90
|
+
{FOR EACH feature in activeFeatures:}
|
|
91
|
+
#### {feature.name}
|
|
92
|
+
|
|
93
|
+
- Progress: {progressBar(feature.progress)} {feature.progress}%
|
|
94
|
+
- Quarter: {feature.quarter || 'Unassigned'}
|
|
95
|
+
- PRD: {feature.prdId || 'None'}
|
|
96
|
+
- Dependencies: {feature.dependencies?.join(', ') || 'None'}
|
|
97
|
+
{END FOR}
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Pipeline
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
PRDs Features Active Shipped
|
|
105
|
+
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
|
|
106
|
+
│ Draft │──▶│ Planned │──▶│ Active │──▶│ Shipped │
|
|
107
|
+
│ ({draft}) │ │ ({planned}) │ │ ({active}) │ │ ({shipped}) │
|
|
108
|
+
└─────────┘ └─────────┘ └─────────┘ └─────────┘
|
|
109
|
+
│
|
|
110
|
+
▼
|
|
111
|
+
┌─────────┐
|
|
112
|
+
│Approved │
|
|
113
|
+
│ ({approved}) │
|
|
114
|
+
└─────────┘
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Metrics Trends (Last 4 Weeks)
|
|
120
|
+
|
|
121
|
+
### Velocity
|
|
122
|
+
```
|
|
123
|
+
W-3: {velocityW3Bar} {velocityW3}
|
|
124
|
+
W-2: {velocityW2Bar} {velocityW2}
|
|
125
|
+
W-1: {velocityW1Bar} {velocityW1}
|
|
126
|
+
W-0: {velocityW0Bar} {velocityW0}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Estimation Accuracy
|
|
130
|
+
```
|
|
131
|
+
W-3: {accuracyW3Bar} {accuracyW3}%
|
|
132
|
+
W-2: {accuracyW2Bar} {accuracyW2}%
|
|
133
|
+
W-1: {accuracyW1Bar} {accuracyW1}%
|
|
134
|
+
W-0: {accuracyW0Bar} {accuracyW0}%
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Alerts & Actions
|
|
140
|
+
|
|
141
|
+
### Warnings
|
|
142
|
+
{FOR EACH alert in alerts:}
|
|
143
|
+
- {alert.icon} {alert.message}
|
|
144
|
+
{END FOR}
|
|
145
|
+
|
|
146
|
+
### Suggested Actions
|
|
147
|
+
{FOR EACH action in suggestedActions:}
|
|
148
|
+
1. {action.description}
|
|
149
|
+
- Command: `{action.command}`
|
|
150
|
+
{END FOR}
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Recent Activity
|
|
155
|
+
|
|
156
|
+
| Date | Action | Details |
|
|
157
|
+
|------|--------|---------|
|
|
158
|
+
{FOR EACH event in recentEvents.slice(0, 10):}
|
|
159
|
+
| {event.date} | {event.action} | {event.details} |
|
|
160
|
+
{END FOR}
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Learnings Summary
|
|
165
|
+
|
|
166
|
+
### Top Patterns
|
|
167
|
+
{FOR EACH pattern in topPatterns.slice(0, 5):}
|
|
168
|
+
- {pattern.insight} ({pattern.frequency}x)
|
|
169
|
+
{END FOR}
|
|
170
|
+
|
|
171
|
+
### Improvement Areas
|
|
172
|
+
{FOR EACH area in improvementAreas:}
|
|
173
|
+
- **{area.name}**: {area.suggestion}
|
|
174
|
+
{END FOR}
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
*Generated by prjct-cli | https://prjct.app*
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Health Score Calculation
|
|
184
|
+
|
|
185
|
+
```javascript
|
|
186
|
+
const healthScore = Math.round(
|
|
187
|
+
(roadmapProgress * 0.25) +
|
|
188
|
+
(estimationAccuracy * 0.25) +
|
|
189
|
+
(successRate * 0.25) +
|
|
190
|
+
(normalizedVelocity * 0.25)
|
|
191
|
+
)
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
| Score Range | Health Level | Color |
|
|
195
|
+
|-------------|--------------|-------|
|
|
196
|
+
| 80-100 | Excellent | Green |
|
|
197
|
+
| 60-79 | Good | Blue |
|
|
198
|
+
| 40-59 | Needs Attention | Yellow |
|
|
199
|
+
| 0-39 | Critical | Red |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Alert Definitions
|
|
204
|
+
|
|
205
|
+
| Condition | Alert | Severity |
|
|
206
|
+
|-----------|-------|----------|
|
|
207
|
+
| `capacityUtilization > 90` | Quarter capacity nearly full | Warning |
|
|
208
|
+
| `estimationAccuracy < 60` | Estimation accuracy below target | Warning |
|
|
209
|
+
| `activeFeatures.length > 3` | Too many features in progress | Info |
|
|
210
|
+
| `draftPRDs.length > 3` | PRDs awaiting review | Info |
|
|
211
|
+
| `successRate < 70` | Success rate declining | Warning |
|
|
212
|
+
| `velocityTrend < -20` | Velocity dropping | Warning |
|
|
213
|
+
| `currentTask && elapsed > 4h` | Task running long | Info |
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Suggested Actions Matrix
|
|
218
|
+
|
|
219
|
+
| Condition | Suggested Action | Command |
|
|
220
|
+
|-----------|------------------|---------|
|
|
221
|
+
| No active task | Start a task | `p. task` |
|
|
222
|
+
| PRDs in draft | Review PRDs | `p. prd list` |
|
|
223
|
+
| Features pending review | Record impact | `p. impact` |
|
|
224
|
+
| Quarter ending soon | Plan next quarter | `p. plan quarter` |
|
|
225
|
+
| Low estimation accuracy | Analyze estimates | `p. dashboard estimates` |
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Integration with Linear/Jira/Monday
|
|
230
|
+
|
|
231
|
+
The dashboard context maps to PM tool dashboards:
|
|
232
|
+
|
|
233
|
+
| Dashboard Section | Linear | Jira | Monday |
|
|
234
|
+
|-------------------|--------|------|--------|
|
|
235
|
+
| Health Score | Project Health | Dashboard Gadget | Board Overview |
|
|
236
|
+
| Active Quarter | Cycle | Sprint | Timeline |
|
|
237
|
+
| Pipeline | Workflow Board | Kanban | Board |
|
|
238
|
+
| Velocity | Velocity Chart | Velocity Report | Chart Widget |
|
|
239
|
+
| Alerts | Notifications | Issues | Notifications |
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Refresh Frequency
|
|
244
|
+
|
|
245
|
+
| Data Type | Refresh Trigger |
|
|
246
|
+
|-----------|-----------------|
|
|
247
|
+
| Current Task | Real-time (on state change) |
|
|
248
|
+
| Features | On feature status change |
|
|
249
|
+
| Metrics | On `p. dashboard` execution |
|
|
250
|
+
| Aggregates | On `p. impact` completion |
|
|
251
|
+
| Alerts | Calculated on view |
|