prjct-cli 2.63.2 → 2.67.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.
- package/CHANGELOG.md +20 -2
- package/README.md +18 -21
- package/assets/statusline/components/limits.sh +66 -0
- package/assets/statusline/default-config.json +5 -1
- package/assets/statusline/lib/cache.sh +48 -2
- package/assets/statusline/lib/config.sh +10 -4
- package/assets/statusline/statusline.sh +1 -1
- package/dist/bin/prjct-core.mjs +413 -407
- package/dist/daemon/entry.mjs +341 -335
- package/dist/mcp/server.mjs +201 -195
- package/dist/templates.json +1 -1
- package/package.json +1 -1
- package/scripts/install.sh +3 -3
- package/templates/antigravity/SKILL.md +2 -2
- package/templates/crew/agents/implementer.md +1 -1
- package/templates/cursor/router.mdc +1 -1
- package/templates/global/ANTIGRAVITY.md +1 -1
- package/templates/global/CURSOR.mdc +1 -1
- package/templates/global/GEMINI.md +1 -1
- package/templates/global/STORAGE-SPEC.md +4 -5
- package/templates/global/WINDSURF.md +1 -1
- package/templates/mcp-config.json +2 -2
- package/templates/windsurf/router.md +1 -1
- package/templates/agentic/checklist-routing.md +0 -98
- package/templates/agentic/orchestrator.md +0 -68
- package/templates/agentic/task-fragmentation.md +0 -89
- package/templates/agents/AGENTS.md +0 -67
- package/templates/checklists/architecture.md +0 -28
- package/templates/checklists/code-quality.md +0 -28
- package/templates/checklists/data.md +0 -33
- package/templates/checklists/documentation.md +0 -33
- package/templates/checklists/infrastructure.md +0 -33
- package/templates/checklists/performance.md +0 -33
- package/templates/checklists/security.md +0 -33
- package/templates/checklists/testing.md +0 -33
- package/templates/checklists/ux-ui.md +0 -37
- package/templates/config/skill-mappings.json +0 -82
- package/templates/context/dashboard.md +0 -251
- package/templates/context/roadmap.md +0 -221
- package/templates/cursor/commands/ship.md +0 -6
- package/templates/cursor/commands/task.md +0 -6
- package/templates/cursor/p.md +0 -6
- package/templates/permissions/default.jsonc +0 -60
- package/templates/permissions/permissive.jsonc +0 -49
- package/templates/permissions/strict.jsonc +0 -58
- package/templates/skills/code-review.md +0 -47
- package/templates/skills/debug.md +0 -61
- package/templates/skills/refactor.md +0 -47
- package/templates/tools/bash.txt +0 -22
- package/templates/tools/edit.txt +0 -18
- package/templates/tools/glob.txt +0 -19
- package/templates/tools/grep.txt +0 -21
- package/templates/tools/read.txt +0 -14
- package/templates/tools/task.txt +0 -20
- package/templates/tools/webfetch.txt +0 -16
- package/templates/tools/websearch.txt +0 -18
- package/templates/tools/write.txt +0 -17
- package/templates/windsurf/workflows/ship.md +0 -6
- package/templates/windsurf/workflows/task.md +0 -6
|
@@ -1,82 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,251 +0,0 @@
|
|
|
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 |
|
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 'Template for generated roadmap context'
|
|
3
|
-
generated-by: 'p. plan, p. sync'
|
|
4
|
-
data-source: 'prjct.db (SQLite)'
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Roadmap Context Template
|
|
8
|
-
|
|
9
|
-
This template defines the format for `{globalPath}/context/roadmap.md` generated by:
|
|
10
|
-
- `p. plan` - After quarter planning
|
|
11
|
-
- `p. sync` - After roadmap generation from git
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Template
|
|
16
|
-
|
|
17
|
-
```markdown
|
|
18
|
-
# Roadmap
|
|
19
|
-
|
|
20
|
-
**Last Updated:** {lastUpdated}
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Strategy
|
|
25
|
-
|
|
26
|
-
**Goal:** {strategy.goal}
|
|
27
|
-
|
|
28
|
-
### Phases
|
|
29
|
-
{FOR EACH phase in strategy.phases:}
|
|
30
|
-
- **{phase.id}**: {phase.name} ({phase.status})
|
|
31
|
-
{END FOR}
|
|
32
|
-
|
|
33
|
-
### Success Metrics
|
|
34
|
-
{FOR EACH metric in strategy.successMetrics:}
|
|
35
|
-
- {metric}
|
|
36
|
-
{END FOR}
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Quarters
|
|
41
|
-
|
|
42
|
-
{FOR EACH quarter in quarters:}
|
|
43
|
-
### {quarter.id}: {quarter.name}
|
|
44
|
-
|
|
45
|
-
**Status:** {quarter.status}
|
|
46
|
-
**Theme:** {quarter.theme}
|
|
47
|
-
**Capacity:** {capacity.allocatedHours}/{capacity.totalHours}h ({utilization}%)
|
|
48
|
-
|
|
49
|
-
#### Goals
|
|
50
|
-
{FOR EACH goal in quarter.goals:}
|
|
51
|
-
- {goal}
|
|
52
|
-
{END FOR}
|
|
53
|
-
|
|
54
|
-
#### Features
|
|
55
|
-
{FOR EACH featureId in quarter.features:}
|
|
56
|
-
- [{status icon}] **{feature.name}** ({feature.status}, {feature.progress}%)
|
|
57
|
-
- PRD: {feature.prdId || 'None (legacy)'}
|
|
58
|
-
- Estimated: {feature.effortTracking?.estimated?.hours || '?'}h
|
|
59
|
-
- Value Score: {feature.valueScore || 'N/A'}
|
|
60
|
-
- Dependencies: {feature.dependencies?.join(', ') || 'None'}
|
|
61
|
-
{END FOR}
|
|
62
|
-
|
|
63
|
-
{END FOR}
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## Active Work
|
|
68
|
-
|
|
69
|
-
{FOR EACH feature WHERE status == 'active':}
|
|
70
|
-
### {feature.name}
|
|
71
|
-
|
|
72
|
-
| Attribute | Value |
|
|
73
|
-
|-----------|-------|
|
|
74
|
-
| Progress | {feature.progress}% |
|
|
75
|
-
| Branch | {feature.branch || 'N/A'} |
|
|
76
|
-
| Quarter | {feature.quarter || 'Unassigned'} |
|
|
77
|
-
| PRD | {feature.prdId || 'Legacy (no PRD)'} |
|
|
78
|
-
| Started | {feature.createdAt} |
|
|
79
|
-
|
|
80
|
-
#### Tasks
|
|
81
|
-
{FOR EACH task in feature.tasks:}
|
|
82
|
-
- [{task.completed ? 'x' : ' '}] {task.description}
|
|
83
|
-
{END FOR}
|
|
84
|
-
|
|
85
|
-
{END FOR}
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## Completed Features
|
|
90
|
-
|
|
91
|
-
{FOR EACH feature WHERE status == 'completed' OR status == 'shipped':}
|
|
92
|
-
- **{feature.name}** (v{feature.version || 'N/A'})
|
|
93
|
-
- Shipped: {feature.shippedAt || feature.completedDate}
|
|
94
|
-
- Actual: {feature.effortTracking?.actual?.hours || '?'}h vs Est: {feature.effortTracking?.estimated?.hours || '?'}h
|
|
95
|
-
{END FOR}
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## Backlog
|
|
100
|
-
|
|
101
|
-
Priority-ordered list of unscheduled items:
|
|
102
|
-
|
|
103
|
-
| Priority | Item | Value | Effort | Score |
|
|
104
|
-
|----------|------|-------|--------|-------|
|
|
105
|
-
{FOR EACH item in backlog:}
|
|
106
|
-
| {rank} | {item.title} | {item.valueScore} | {item.effortEstimate}h | {priorityScore} |
|
|
107
|
-
{END FOR}
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## Legacy Features
|
|
112
|
-
|
|
113
|
-
Features detected from git history (no PRD required):
|
|
114
|
-
|
|
115
|
-
{FOR EACH feature WHERE legacy == true:}
|
|
116
|
-
- **{feature.name}**
|
|
117
|
-
- Inferred From: {feature.inferredFrom}
|
|
118
|
-
- Status: {feature.status}
|
|
119
|
-
- Commits: {feature.commits?.length || 0}
|
|
120
|
-
{END FOR}
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Dependencies
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
{FOR EACH feature WHERE dependencies?.length > 0:}
|
|
128
|
-
{feature.name}
|
|
129
|
-
{FOR EACH depId in feature.dependencies:}
|
|
130
|
-
└── {dependency.name}
|
|
131
|
-
{END FOR}
|
|
132
|
-
{END FOR}
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## Metrics Summary
|
|
138
|
-
|
|
139
|
-
| Metric | Value |
|
|
140
|
-
|--------|-------|
|
|
141
|
-
| Total Features | {features.length} |
|
|
142
|
-
| Planned | {planned.length} |
|
|
143
|
-
| Active | {active.length} |
|
|
144
|
-
| Completed | {completed.length} |
|
|
145
|
-
| Shipped | {shipped.length} |
|
|
146
|
-
| Legacy | {legacy.length} |
|
|
147
|
-
| PRD-Backed | {prdBacked.length} |
|
|
148
|
-
| Backlog | {backlog.length} |
|
|
149
|
-
|
|
150
|
-
### Capacity by Quarter
|
|
151
|
-
|
|
152
|
-
| Quarter | Allocated | Total | Utilization |
|
|
153
|
-
|---------|-----------|-------|-------------|
|
|
154
|
-
{FOR EACH quarter in quarters:}
|
|
155
|
-
| {quarter.id} | {capacity.allocatedHours}h | {capacity.totalHours}h | {utilization}% |
|
|
156
|
-
{END FOR}
|
|
157
|
-
|
|
158
|
-
### Effort Accuracy (Shipped Features)
|
|
159
|
-
|
|
160
|
-
| Feature | Estimated | Actual | Variance |
|
|
161
|
-
|---------|-----------|--------|----------|
|
|
162
|
-
{FOR EACH feature WHERE status == 'shipped' AND effortTracking:}
|
|
163
|
-
| {feature.name} | {estimated.hours}h | {actual.hours}h | {variance}% |
|
|
164
|
-
{END FOR}
|
|
165
|
-
|
|
166
|
-
**Average Variance:** {averageVariance}%
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
*Generated by prjct-cli | https://prjct.app*
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## Status Icons
|
|
176
|
-
|
|
177
|
-
| Status | Icon |
|
|
178
|
-
|--------|------|
|
|
179
|
-
| planned | [ ] |
|
|
180
|
-
| active | [~] |
|
|
181
|
-
| completed | [x] |
|
|
182
|
-
| shipped | [+] |
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## Variable Reference
|
|
187
|
-
|
|
188
|
-
| Variable | Source | Description |
|
|
189
|
-
|----------|--------|-------------|
|
|
190
|
-
| `lastUpdated` | roadmap.lastUpdated | ISO timestamp |
|
|
191
|
-
| `strategy` | roadmap.strategy | Strategy object |
|
|
192
|
-
| `quarters` | roadmap.quarters | Array of quarters |
|
|
193
|
-
| `features` | roadmap.features | Array of features |
|
|
194
|
-
| `backlog` | roadmap.backlog | Array of backlog items |
|
|
195
|
-
| `utilization` | Calculated | (allocated/total) * 100 |
|
|
196
|
-
| `priorityScore` | Calculated | valueScore / (effort/10) |
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
## Generation Rules
|
|
201
|
-
|
|
202
|
-
1. **Quarters** - Show only `planned` and `active` quarters by default
|
|
203
|
-
2. **Features** - Group by status (active first, then planned)
|
|
204
|
-
3. **Backlog** - Sort by priority score (descending)
|
|
205
|
-
4. **Legacy** - Always show separately to distinguish from PRD-backed
|
|
206
|
-
5. **Dependencies** - Only show features with dependencies
|
|
207
|
-
6. **Metrics** - Always include for dashboard views
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
## Integration with Linear/Jira/Monday
|
|
212
|
-
|
|
213
|
-
The context file maps to PM tool exports:
|
|
214
|
-
|
|
215
|
-
| Context Section | Linear | Jira | Monday |
|
|
216
|
-
|-----------------|--------|------|--------|
|
|
217
|
-
| Quarters | Cycles | Sprints | Timelines |
|
|
218
|
-
| Features | Issues | Stories | Items |
|
|
219
|
-
| Backlog | Backlog | Backlog | Inbox |
|
|
220
|
-
| Status | State | Status | Status |
|
|
221
|
-
| Capacity | Estimates | Story Points | Time |
|
package/templates/cursor/p.md
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
// Default permissions preset for prjct-cli
|
|
3
|
-
// Safe defaults with protection against destructive operations
|
|
4
|
-
|
|
5
|
-
"bash": {
|
|
6
|
-
// Safe read-only commands - always allowed
|
|
7
|
-
"git status*": "allow",
|
|
8
|
-
"git log*": "allow",
|
|
9
|
-
"git diff*": "allow",
|
|
10
|
-
"git branch*": "allow",
|
|
11
|
-
"ls*": "allow",
|
|
12
|
-
"pwd": "allow",
|
|
13
|
-
"cat*": "allow",
|
|
14
|
-
"head*": "allow",
|
|
15
|
-
"tail*": "allow",
|
|
16
|
-
"grep*": "allow",
|
|
17
|
-
"find*": "allow",
|
|
18
|
-
"which*": "allow",
|
|
19
|
-
"node -e*": "allow",
|
|
20
|
-
"bun -e*": "allow",
|
|
21
|
-
"npm list*": "allow",
|
|
22
|
-
"npx tsc --noEmit*": "allow",
|
|
23
|
-
|
|
24
|
-
// Potentially destructive - ask first
|
|
25
|
-
"rm -rf*": "ask",
|
|
26
|
-
"rm -r*": "ask",
|
|
27
|
-
"git push*": "ask",
|
|
28
|
-
"git reset --hard*": "ask",
|
|
29
|
-
"npm publish*": "ask",
|
|
30
|
-
"chmod*": "ask",
|
|
31
|
-
|
|
32
|
-
// Always denied - too dangerous
|
|
33
|
-
"rm -rf /*": "deny",
|
|
34
|
-
"rm -rf ~/*": "deny",
|
|
35
|
-
"sudo*": "deny"
|
|
36
|
-
},
|
|
37
|
-
|
|
38
|
-
"files": {
|
|
39
|
-
"read": {
|
|
40
|
-
"**/*": "allow"
|
|
41
|
-
},
|
|
42
|
-
"write": {
|
|
43
|
-
"**/*": "allow"
|
|
44
|
-
},
|
|
45
|
-
"delete": {
|
|
46
|
-
"**/*": "ask"
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
|
|
50
|
-
"web": {
|
|
51
|
-
"enabled": true
|
|
52
|
-
},
|
|
53
|
-
|
|
54
|
-
"doomLoop": {
|
|
55
|
-
"enabled": true,
|
|
56
|
-
"maxRetries": 3
|
|
57
|
-
},
|
|
58
|
-
|
|
59
|
-
"externalDirectories": "ask"
|
|
60
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
// Permissive preset for prjct-cli
|
|
3
|
-
// For trusted environments - minimal restrictions
|
|
4
|
-
|
|
5
|
-
"bash": {
|
|
6
|
-
// Most commands allowed
|
|
7
|
-
"git*": "allow",
|
|
8
|
-
"npm*": "allow",
|
|
9
|
-
"bun*": "allow",
|
|
10
|
-
"node*": "allow",
|
|
11
|
-
"ls*": "allow",
|
|
12
|
-
"cat*": "allow",
|
|
13
|
-
"mkdir*": "allow",
|
|
14
|
-
"cp*": "allow",
|
|
15
|
-
"mv*": "allow",
|
|
16
|
-
"rm*": "allow",
|
|
17
|
-
"chmod*": "allow",
|
|
18
|
-
|
|
19
|
-
// Still protect against catastrophic mistakes
|
|
20
|
-
"rm -rf /*": "deny",
|
|
21
|
-
"rm -rf ~/*": "deny",
|
|
22
|
-
"sudo rm -rf*": "deny",
|
|
23
|
-
":(){ :|:& };:*": "deny"
|
|
24
|
-
},
|
|
25
|
-
|
|
26
|
-
"files": {
|
|
27
|
-
"read": {
|
|
28
|
-
"**/*": "allow"
|
|
29
|
-
},
|
|
30
|
-
"write": {
|
|
31
|
-
"**/*": "allow"
|
|
32
|
-
},
|
|
33
|
-
"delete": {
|
|
34
|
-
"**/*": "allow",
|
|
35
|
-
"**/node_modules/**": "deny" // Protect dependencies
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
"web": {
|
|
40
|
-
"enabled": true
|
|
41
|
-
},
|
|
42
|
-
|
|
43
|
-
"doomLoop": {
|
|
44
|
-
"enabled": true,
|
|
45
|
-
"maxRetries": 5
|
|
46
|
-
},
|
|
47
|
-
|
|
48
|
-
"externalDirectories": "allow"
|
|
49
|
-
}
|