prjct-cli 0.4.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 +312 -0
- package/CLAUDE.md +300 -0
- package/LICENSE +21 -0
- package/README.md +424 -0
- package/bin/prjct +214 -0
- package/core/agent-detector.js +249 -0
- package/core/agents/claude-agent.js +250 -0
- package/core/agents/codex-agent.js +256 -0
- package/core/agents/terminal-agent.js +465 -0
- package/core/analyzer.js +596 -0
- package/core/animations-simple.js +240 -0
- package/core/animations.js +277 -0
- package/core/author-detector.js +218 -0
- package/core/capability-installer.js +190 -0
- package/core/command-installer.js +775 -0
- package/core/commands.js +2050 -0
- package/core/config-manager.js +335 -0
- package/core/migrator.js +784 -0
- package/core/path-manager.js +324 -0
- package/core/project-capabilities.js +144 -0
- package/core/session-manager.js +439 -0
- package/core/version.js +107 -0
- package/core/workflow-engine.js +213 -0
- package/core/workflow-prompts.js +192 -0
- package/core/workflow-rules.js +147 -0
- package/package.json +80 -0
- package/scripts/install.sh +433 -0
- package/scripts/verify-installation.sh +158 -0
- package/templates/agents/AGENTS.md +164 -0
- package/templates/commands/analyze.md +125 -0
- package/templates/commands/cleanup.md +102 -0
- package/templates/commands/context.md +105 -0
- package/templates/commands/design.md +113 -0
- package/templates/commands/done.md +44 -0
- package/templates/commands/fix.md +87 -0
- package/templates/commands/git.md +79 -0
- package/templates/commands/help.md +72 -0
- package/templates/commands/idea.md +50 -0
- package/templates/commands/init.md +237 -0
- package/templates/commands/next.md +74 -0
- package/templates/commands/now.md +35 -0
- package/templates/commands/progress.md +92 -0
- package/templates/commands/recap.md +86 -0
- package/templates/commands/roadmap.md +107 -0
- package/templates/commands/ship.md +41 -0
- package/templates/commands/stuck.md +48 -0
- package/templates/commands/task.md +97 -0
- package/templates/commands/test.md +94 -0
- package/templates/commands/workflow.md +224 -0
- package/templates/examples/natural-language-examples.md +320 -0
- package/templates/mcp-config.json +8 -0
- package/templates/workflows/analyze.md +159 -0
- package/templates/workflows/cleanup.md +73 -0
- package/templates/workflows/context.md +72 -0
- package/templates/workflows/design.md +88 -0
- package/templates/workflows/done.md +20 -0
- package/templates/workflows/fix.md +201 -0
- package/templates/workflows/git.md +192 -0
- package/templates/workflows/help.md +13 -0
- package/templates/workflows/idea.md +22 -0
- package/templates/workflows/init.md +80 -0
- package/templates/workflows/natural-language-handler.md +183 -0
- package/templates/workflows/next.md +44 -0
- package/templates/workflows/now.md +19 -0
- package/templates/workflows/progress.md +113 -0
- package/templates/workflows/recap.md +66 -0
- package/templates/workflows/roadmap.md +95 -0
- package/templates/workflows/ship.md +18 -0
- package/templates/workflows/stuck.md +25 -0
- package/templates/workflows/task.md +109 -0
- package/templates/workflows/test.md +243 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: prjct init
|
|
3
|
+
invocable_name: p:init
|
|
4
|
+
description: Initialize prjct in current project with global architecture
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Steps
|
|
8
|
+
|
|
9
|
+
1. Check if project already initialized (`.prjct/prjct.config.json` exists)
|
|
10
|
+
2. If exists, display current configuration and exit
|
|
11
|
+
3. Generate unique project ID from path hash
|
|
12
|
+
4. Detect author information:
|
|
13
|
+
- Try GitHub CLI: `gh api user` for username
|
|
14
|
+
- Fallback to git config: `git config user.name` and `git config user.email`
|
|
15
|
+
5. Create global directory structure in `~/.prjct-cli/projects/{id}/`:
|
|
16
|
+
- `core/` - now.md, next.md, context.md
|
|
17
|
+
- `progress/` - shipped.md, metrics.md
|
|
18
|
+
- `planning/` - ideas.md, roadmap.md
|
|
19
|
+
- `analysis/` - repo-summary.md
|
|
20
|
+
- `memory/` - context.jsonl
|
|
21
|
+
6. Create local config at `.prjct/prjct.config.json` with:
|
|
22
|
+
- version: "0.2.1"
|
|
23
|
+
- projectId
|
|
24
|
+
- dataPath
|
|
25
|
+
- author info
|
|
26
|
+
- timestamps
|
|
27
|
+
7. Detect installed AI editors (Claude Code, Cursor, Codex, Windsurf)
|
|
28
|
+
8. Install commands in all detected editors
|
|
29
|
+
9. Display success message with next steps
|
|
30
|
+
|
|
31
|
+
# Response Format
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
✅ prjct initialized successfully!
|
|
35
|
+
|
|
36
|
+
🆔 Project ID: {hash-id}
|
|
37
|
+
👤 Author: {name} ({github})
|
|
38
|
+
💾 Data location: ~/.prjct-cli/projects/{id}/
|
|
39
|
+
|
|
40
|
+
📦 Commands installed in:
|
|
41
|
+
- ✓ Claude Code (~/.claude/commands/p/)
|
|
42
|
+
- ✓ Cursor AI (~/.cursor/commands/p/)
|
|
43
|
+
- ✓ OpenAI Codex (AGENTS.md)
|
|
44
|
+
- ✓ Windsurf/Codeium (.windsurf/workflows/)
|
|
45
|
+
|
|
46
|
+
🚀 Ready to start! Try:
|
|
47
|
+
- /p:now {task} - Set your current focus
|
|
48
|
+
- /p:idea {text} - Capture quick ideas
|
|
49
|
+
- /p:recap - See project overview
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
# Global Architecture Created
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
~/.prjct-cli/projects/{id}/
|
|
56
|
+
├── core/
|
|
57
|
+
│ ├── now.md (empty)
|
|
58
|
+
│ ├── next.md (template)
|
|
59
|
+
│ └── context.md (project info)
|
|
60
|
+
├── progress/
|
|
61
|
+
│ ├── shipped.md (empty)
|
|
62
|
+
│ └── metrics.md (initial stats)
|
|
63
|
+
├── planning/
|
|
64
|
+
│ ├── ideas.md (empty)
|
|
65
|
+
│ └── roadmap.md (template)
|
|
66
|
+
├── analysis/
|
|
67
|
+
│ └── repo-summary.md (generated)
|
|
68
|
+
└── memory/
|
|
69
|
+
└── context.jsonl (init log)
|
|
70
|
+
|
|
71
|
+
.prjct/
|
|
72
|
+
└── prjct.config.json (project config)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
# Error Handling
|
|
76
|
+
|
|
77
|
+
- If `.prjct/` exists but corrupted: Offer migration
|
|
78
|
+
- If author detection fails: Prompt for manual input
|
|
79
|
+
- If directory creation fails: Check permissions
|
|
80
|
+
- If editor installation fails: Continue with warning
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Semantic intent detection for natural language commands"
|
|
3
|
+
allowed-tools: [Read]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Natural Language Handler
|
|
7
|
+
|
|
8
|
+
## Core Concept
|
|
9
|
+
|
|
10
|
+
**You're an LLM, not a regex parser!**
|
|
11
|
+
|
|
12
|
+
Use your semantic understanding to map user intent to commands. Don't rely on pattern matching or hardcoded phrases.
|
|
13
|
+
|
|
14
|
+
## How It Works
|
|
15
|
+
|
|
16
|
+
### Step 1: Check for Direct Command
|
|
17
|
+
```javascript
|
|
18
|
+
if (message.startsWith('/p:')) {
|
|
19
|
+
return executeCommand(message)
|
|
20
|
+
}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Step 2: Understand User Intent
|
|
24
|
+
|
|
25
|
+
Ask yourself: **"What is the user trying to accomplish?"**
|
|
26
|
+
|
|
27
|
+
Use your natural language understanding to determine the intent:
|
|
28
|
+
|
|
29
|
+
| User Intent | Command |
|
|
30
|
+
|-------------|---------|
|
|
31
|
+
| Wants to start/focus on a task | `/p:now` |
|
|
32
|
+
| Finished current work | `/p:done` |
|
|
33
|
+
| Ready to ship/deploy something | `/p:ship` |
|
|
34
|
+
| Has an idea to capture | `/p:idea` |
|
|
35
|
+
| Wants to see progress/status | `/p:recap` |
|
|
36
|
+
| Stuck on a problem | `/p:stuck` |
|
|
37
|
+
| Wants to know what's next | `/p:next` |
|
|
38
|
+
| Needs general help | `/p:help` |
|
|
39
|
+
|
|
40
|
+
### Step 3: Extract Relevant Information
|
|
41
|
+
|
|
42
|
+
Pull the important details from the message:
|
|
43
|
+
- For `/p:now`: What task are they starting?
|
|
44
|
+
- For `/p:ship`: What feature are they shipping?
|
|
45
|
+
- For `/p:idea`: What's their idea?
|
|
46
|
+
- For `/p:stuck`: What problem are they facing?
|
|
47
|
+
|
|
48
|
+
### Step 4: Show Transparency
|
|
49
|
+
|
|
50
|
+
Always communicate what you understood:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
💬 I understood: "[your interpretation of their intent]"
|
|
54
|
+
⚡ Executing: /p:[command] [parameters]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Step 5: Provide Conversational Response
|
|
58
|
+
|
|
59
|
+
Guide them toward next actions naturally.
|
|
60
|
+
|
|
61
|
+
## Examples (Infinite Variations Possible)
|
|
62
|
+
|
|
63
|
+
### Starting a Task
|
|
64
|
+
|
|
65
|
+
**All of these mean `/p:now`:**
|
|
66
|
+
- "I want to start building the login page"
|
|
67
|
+
- "Let me work on authentication"
|
|
68
|
+
- "Starting the API now"
|
|
69
|
+
- "Voy a hacer el dashboard"
|
|
70
|
+
- "Gonna work on that bug fix"
|
|
71
|
+
- "I shall commence development of the user profile"
|
|
72
|
+
|
|
73
|
+
**Your response pattern:**
|
|
74
|
+
```
|
|
75
|
+
💬 I understood: "start working on [extracted task]"
|
|
76
|
+
⚡ Executing: /p:now "[extracted task]"
|
|
77
|
+
|
|
78
|
+
✅ Starting task: [extracted task]
|
|
79
|
+
|
|
80
|
+
What's next?
|
|
81
|
+
• Say "I'm done" when finished
|
|
82
|
+
• Or: /p:done
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Completing Work
|
|
86
|
+
|
|
87
|
+
**All of these mean `/p:done`:**
|
|
88
|
+
- "I'm done" | "finished" | "completed"
|
|
89
|
+
- "terminé" | "listo" | "ya acabé"
|
|
90
|
+
- "all done with this"
|
|
91
|
+
- "that's finished"
|
|
92
|
+
|
|
93
|
+
### Shipping a Feature
|
|
94
|
+
|
|
95
|
+
**All of these mean `/p:ship`:**
|
|
96
|
+
- "ship the authentication system"
|
|
97
|
+
- "deploy this feature"
|
|
98
|
+
- "it's ready to launch"
|
|
99
|
+
- "let's ship it"
|
|
100
|
+
|
|
101
|
+
### Capturing Ideas
|
|
102
|
+
|
|
103
|
+
**All of these mean `/p:idea`:**
|
|
104
|
+
- "I have an idea about dark mode"
|
|
105
|
+
- "what if we added user profiles"
|
|
106
|
+
- "tengo una idea sobre notificaciones"
|
|
107
|
+
- "idea: add export functionality"
|
|
108
|
+
|
|
109
|
+
## Implementation Philosophy
|
|
110
|
+
|
|
111
|
+
```javascript
|
|
112
|
+
// ❌ DON'T DO THIS (pattern matching)
|
|
113
|
+
if (message.includes("I want to start") ||
|
|
114
|
+
message.includes("let me start") ||
|
|
115
|
+
message.includes("quiero empezar")) {
|
|
116
|
+
// This is too rigid!
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// ✅ DO THIS (semantic understanding)
|
|
120
|
+
const intent = understandUserIntent(message)
|
|
121
|
+
// Use your LLM capabilities to understand what they want
|
|
122
|
+
|
|
123
|
+
if (userWantsToStartTask(intent)) {
|
|
124
|
+
const task = extractTaskDescription(message)
|
|
125
|
+
return executeCommand('/p:now', task)
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Works in Any Language
|
|
130
|
+
|
|
131
|
+
If you understand the user's intent in **any language**, execute the command:
|
|
132
|
+
|
|
133
|
+
- **English**: "I want to start the API"
|
|
134
|
+
- **Spanish**: "Quiero empezar con la autenticación"
|
|
135
|
+
- **Casual**: "gonna work on that login thing"
|
|
136
|
+
- **Formal**: "I shall commence development of the authentication module"
|
|
137
|
+
- **Mixed**: "voy a hacer the user dashboard"
|
|
138
|
+
|
|
139
|
+
All map to: `/p:now`
|
|
140
|
+
|
|
141
|
+
## Edge Cases
|
|
142
|
+
|
|
143
|
+
### Ambiguous Intent
|
|
144
|
+
If you're not sure what they want:
|
|
145
|
+
```
|
|
146
|
+
💬 I need clarification:
|
|
147
|
+
|
|
148
|
+
Did you mean:
|
|
149
|
+
1. 📖 Interactive guide → Use /p:help
|
|
150
|
+
2. 🆘 I'm stuck on something → Say "I'm stuck on [problem]"
|
|
151
|
+
|
|
152
|
+
Which one?
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Multiple Commands
|
|
156
|
+
Handle sequentially:
|
|
157
|
+
```
|
|
158
|
+
User: "I'm done, now start the API work"
|
|
159
|
+
|
|
160
|
+
Step 1: Execute /p:done
|
|
161
|
+
Step 2: Execute /p:now "API work"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Unknown Intent
|
|
165
|
+
If you truly don't understand:
|
|
166
|
+
```
|
|
167
|
+
💬 I'm not sure what you'd like to do.
|
|
168
|
+
|
|
169
|
+
Common actions:
|
|
170
|
+
• "start [task]" → Begin working
|
|
171
|
+
• "I'm done" → Complete current task
|
|
172
|
+
• "show my progress" → See status
|
|
173
|
+
|
|
174
|
+
Or type /p:help for the full guide
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Key Principles
|
|
178
|
+
|
|
179
|
+
1. **Trust your understanding** - You're an LLM with semantic comprehension
|
|
180
|
+
2. **Any phrasing works** - Users can express intent however they want
|
|
181
|
+
3. **Any language works** - If you understand it, execute it
|
|
182
|
+
4. **Always be transparent** - Show what you understood
|
|
183
|
+
5. **Guide naturally** - Suggest next steps conversationally
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: prjct next
|
|
3
|
+
invocable_name: p:next
|
|
4
|
+
description: Show priority queue of upcoming tasks using global prjct architecture
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Steps
|
|
8
|
+
|
|
9
|
+
1. Read project config from `.prjct/prjct.config.json`
|
|
10
|
+
2. Extract `projectId` from config
|
|
11
|
+
3. Read priority queue from `~/.prjct-cli/projects/{projectId}/core/next.md`
|
|
12
|
+
4. Parse task list with priorities
|
|
13
|
+
5. Format and display tasks with priority indicators
|
|
14
|
+
6. Show count of queued tasks
|
|
15
|
+
7. Suggest using `/p:now {task}` to start working
|
|
16
|
+
|
|
17
|
+
# Response Format
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
📋 Priority Queue:
|
|
21
|
+
|
|
22
|
+
1. 🔥 {high-priority task}
|
|
23
|
+
2. ⚡ {medium-priority task}
|
|
24
|
+
3. 📌 {normal-priority task}
|
|
25
|
+
...
|
|
26
|
+
|
|
27
|
+
Total queued: X tasks
|
|
28
|
+
|
|
29
|
+
Ready to start? Use /p:now {task number or description}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
# Priority Indicators
|
|
33
|
+
|
|
34
|
+
- 🔥 High priority / urgent
|
|
35
|
+
- ⚡ Medium priority / important
|
|
36
|
+
- 📌 Normal priority / routine
|
|
37
|
+
- 💡 Nice to have / experimental
|
|
38
|
+
|
|
39
|
+
# Global Architecture Notes
|
|
40
|
+
|
|
41
|
+
- **Data Location**: `~/.prjct-cli/projects/{id}/core/next.md`
|
|
42
|
+
- **Config Location**: `{project}/.prjct/prjct.config.json`
|
|
43
|
+
- **File Format**: Markdown list with optional priority markers
|
|
44
|
+
- **Integration**: Tasks can be promoted to `now.md` with `/p:now`
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: prjct now
|
|
3
|
+
invocable_name: p:now
|
|
4
|
+
description: Set/show current focus
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Steps
|
|
8
|
+
|
|
9
|
+
**Show**: Read config → get projectId → read `~/.prjct-cli/projects/{id}/core/now.md`
|
|
10
|
+
|
|
11
|
+
**Set**:
|
|
12
|
+
1. Get projectId + author from `.prjct/prjct.config.json`
|
|
13
|
+
2. Write task + timestamp to `~/.prjct-cli/projects/{id}/core/now.md`
|
|
14
|
+
3. Log to `memory/context.jsonl` with author
|
|
15
|
+
4. Response:
|
|
16
|
+
```
|
|
17
|
+
🎯 {task}
|
|
18
|
+
→ /p:done when complete
|
|
19
|
+
```
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: prjct progress
|
|
3
|
+
invocable_name: p:progress
|
|
4
|
+
description: Show progress metrics for specified period using global prjct architecture
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Steps
|
|
8
|
+
|
|
9
|
+
1. Read project config from `.prjct/prjct.config.json`
|
|
10
|
+
2. Extract `projectId` from config
|
|
11
|
+
3. Parse period argument (default: week):
|
|
12
|
+
- `day` or `today` - Today's progress
|
|
13
|
+
- `week` - This week (Mon-Sun)
|
|
14
|
+
- `month` - This month
|
|
15
|
+
- `all` or `total` - All-time
|
|
16
|
+
4. Read all shipped features from `~/.prjct-cli/projects/{projectId}/progress/shipped.md`
|
|
17
|
+
5. Filter entries by timestamp for specified period
|
|
18
|
+
6. Calculate metrics:
|
|
19
|
+
- Total features shipped
|
|
20
|
+
- Average velocity
|
|
21
|
+
- Completion rate
|
|
22
|
+
- Momentum indicators
|
|
23
|
+
7. Read metrics file for additional stats
|
|
24
|
+
8. Format and display progress report
|
|
25
|
+
|
|
26
|
+
# Response Format
|
|
27
|
+
|
|
28
|
+
## Daily Progress
|
|
29
|
+
```
|
|
30
|
+
📊 Progress Report - Today
|
|
31
|
+
|
|
32
|
+
🚀 Features Shipped: X features
|
|
33
|
+
⏱️ Active Time: Y hours
|
|
34
|
+
✅ Tasks Completed: Z tasks
|
|
35
|
+
|
|
36
|
+
📈 Momentum: {High/Medium/Low}
|
|
37
|
+
|
|
38
|
+
Keep it up! 💪
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Weekly Progress
|
|
42
|
+
```
|
|
43
|
+
📊 Progress Report - This Week
|
|
44
|
+
|
|
45
|
+
🚀 Features Shipped: X features
|
|
46
|
+
📅 Days Active: Y of 7 days
|
|
47
|
+
⚡ Velocity: A features/day
|
|
48
|
+
✅ Tasks Completed: Z tasks
|
|
49
|
+
|
|
50
|
+
📈 Week Trend: {Up/Steady/Down}
|
|
51
|
+
💡 Ideas Captured: B ideas
|
|
52
|
+
|
|
53
|
+
{comparison to last week}
|
|
54
|
+
|
|
55
|
+
🎯 Next Week Goal: {suggestion}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Monthly Progress
|
|
59
|
+
```
|
|
60
|
+
📊 Progress Report - This Month
|
|
61
|
+
|
|
62
|
+
🚀 Features Shipped: X features
|
|
63
|
+
📅 Active Days: Y of 30 days
|
|
64
|
+
⚡ Monthly Velocity: A features/week
|
|
65
|
+
✅ Total Tasks: Z tasks
|
|
66
|
+
💡 Ideas Generated: B ideas
|
|
67
|
+
|
|
68
|
+
📈 Month Highlights:
|
|
69
|
+
- Best week: {date} with {n} features
|
|
70
|
+
- Most productive day: {day} with {n} tasks
|
|
71
|
+
- Momentum: {analysis}
|
|
72
|
+
|
|
73
|
+
🎯 Month-End Goal: {progress toward goal}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## All-Time Progress
|
|
77
|
+
```
|
|
78
|
+
📊 Progress Report - All Time
|
|
79
|
+
|
|
80
|
+
🚀 Total Features Shipped: X features
|
|
81
|
+
📅 Project Duration: Y days
|
|
82
|
+
⚡ Average Velocity: A features/week
|
|
83
|
+
✅ Total Tasks Completed: Z tasks
|
|
84
|
+
💡 Total Ideas: B ideas
|
|
85
|
+
|
|
86
|
+
📈 Milestones:
|
|
87
|
+
- {milestone 1}
|
|
88
|
+
- {milestone 2}
|
|
89
|
+
- {milestone 3}
|
|
90
|
+
|
|
91
|
+
🏆 Achievements:
|
|
92
|
+
- Most productive week: {date}
|
|
93
|
+
- Longest streak: {n} days
|
|
94
|
+
- Best month: {month}
|
|
95
|
+
|
|
96
|
+
Keep building! 🚀
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
# Calculations
|
|
100
|
+
|
|
101
|
+
- **Velocity**: Features / Time Period
|
|
102
|
+
- **Momentum**: Based on recent trend (last 3 data points)
|
|
103
|
+
- **Active Days**: Days with at least 1 logged action
|
|
104
|
+
- **Streak**: Consecutive days with activity
|
|
105
|
+
|
|
106
|
+
# Global Architecture Notes
|
|
107
|
+
|
|
108
|
+
- **Data Source**: `~/.prjct-cli/projects/{id}/progress/`
|
|
109
|
+
- `shipped.md` - All completed features with timestamps
|
|
110
|
+
- `metrics.md` - Aggregated statistics
|
|
111
|
+
- **Memory Source**: `~/.prjct-cli/projects/{id}/memory/context.jsonl` for activity
|
|
112
|
+
- **Config Location**: `{project}/.prjct/prjct.config.json`
|
|
113
|
+
- **Use Case**: Standups, retrospectives, velocity tracking
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: prjct recap
|
|
3
|
+
invocable_name: p:recap
|
|
4
|
+
description: Show comprehensive project overview using global prjct architecture
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Steps
|
|
8
|
+
|
|
9
|
+
1. Read project config from `.prjct/prjct.config.json`
|
|
10
|
+
2. Extract `projectId` and `author` from config
|
|
11
|
+
3. Read current focus from `~/.prjct-cli/projects/{projectId}/core/now.md`
|
|
12
|
+
4. Read recent shipped features from `~/.prjct-cli/projects/{projectId}/progress/shipped.md` (last 5)
|
|
13
|
+
5. Read priority queue from `~/.prjct-cli/projects/{projectId}/core/next.md` (top 3)
|
|
14
|
+
6. Read recent ideas from `~/.prjct-cli/projects/{projectId}/planning/ideas.md` (count)
|
|
15
|
+
7. Calculate metrics from `~/.prjct-cli/projects/{projectId}/progress/metrics.md`
|
|
16
|
+
8. Read recent context from `~/.prjct-cli/projects/{projectId}/memory/context.jsonl` (last 3 actions)
|
|
17
|
+
9. Format and display comprehensive overview
|
|
18
|
+
|
|
19
|
+
# Response Format
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
📊 Project Recap for {project-name}
|
|
23
|
+
|
|
24
|
+
🎯 Current Focus:
|
|
25
|
+
{current task or "No task set - use /p:now to set focus"}
|
|
26
|
+
|
|
27
|
+
🚀 Recently Shipped (Last 5):
|
|
28
|
+
- {feature 1} - {timestamp}
|
|
29
|
+
- {feature 2} - {timestamp}
|
|
30
|
+
- {feature 3} - {timestamp}
|
|
31
|
+
- {feature 4} - {timestamp}
|
|
32
|
+
- {feature 5} - {timestamp}
|
|
33
|
+
|
|
34
|
+
📋 Coming Up Next (Top 3):
|
|
35
|
+
1. {priority 1}
|
|
36
|
+
2. {priority 2}
|
|
37
|
+
3. {priority 3}
|
|
38
|
+
|
|
39
|
+
💡 Ideas Backlog: X ideas captured
|
|
40
|
+
📝 Total queued tasks: Y tasks
|
|
41
|
+
|
|
42
|
+
📈 Progress Metrics:
|
|
43
|
+
- This week: X features shipped
|
|
44
|
+
- This month: Y features shipped
|
|
45
|
+
- Total: Z features shipped
|
|
46
|
+
- Average velocity: A features/week
|
|
47
|
+
|
|
48
|
+
🕒 Recent Activity:
|
|
49
|
+
- {timestamp}: {action 1}
|
|
50
|
+
- {timestamp}: {action 2}
|
|
51
|
+
- {timestamp}: {action 3}
|
|
52
|
+
|
|
53
|
+
👤 Author: {name} ({github})
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
# Global Architecture Notes
|
|
57
|
+
|
|
58
|
+
- **Data Sources**: Multiple layers in `~/.prjct-cli/projects/{id}/`
|
|
59
|
+
- `core/now.md` - Current task
|
|
60
|
+
- `core/next.md` - Priority queue
|
|
61
|
+
- `progress/shipped.md` - Completed features
|
|
62
|
+
- `progress/metrics.md` - Statistics
|
|
63
|
+
- `planning/ideas.md` - Ideas backlog
|
|
64
|
+
- `memory/context.jsonl` - Action history
|
|
65
|
+
- **Config Location**: `{project}/.prjct/prjct.config.json`
|
|
66
|
+
- **Use Case**: Daily standup, status updates, context restoration
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: prjct roadmap
|
|
3
|
+
invocable_name: p:roadmap
|
|
4
|
+
description: Show or update strategic roadmap using global prjct architecture
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Steps
|
|
8
|
+
|
|
9
|
+
1. Read project config from `.prjct/prjct.config.json`
|
|
10
|
+
2. Extract `projectId` from config
|
|
11
|
+
3. Read roadmap from `~/.prjct-cli/projects/{projectId}/planning/roadmap.md`
|
|
12
|
+
4. Parse roadmap structure (phases, milestones, features)
|
|
13
|
+
5. Read shipped features from `~/.prjct-cli/projects/{projectId}/progress/shipped.md`
|
|
14
|
+
6. Calculate completion progress for each phase
|
|
15
|
+
7. Identify current phase and next milestones
|
|
16
|
+
8. Format and display roadmap with progress
|
|
17
|
+
|
|
18
|
+
# Response Format
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
🗺️ Project Roadmap
|
|
22
|
+
|
|
23
|
+
📍 Current Phase: {phase name}
|
|
24
|
+
Progress: {X}% complete
|
|
25
|
+
|
|
26
|
+
## Phases Overview
|
|
27
|
+
|
|
28
|
+
### ✅ Phase 1: {name} (Completed)
|
|
29
|
+
- {feature 1} ✓
|
|
30
|
+
- {feature 2} ✓
|
|
31
|
+
- {feature 3} ✓
|
|
32
|
+
|
|
33
|
+
### 🔄 Phase 2: {name} (In Progress - {X}%)
|
|
34
|
+
- {feature 1} ✓
|
|
35
|
+
- {feature 2} 🔄 Current
|
|
36
|
+
- {feature 3} ⏳
|
|
37
|
+
- {feature 4} ⏳
|
|
38
|
+
|
|
39
|
+
### ⏳ Phase 3: {name} (Planned)
|
|
40
|
+
- {feature 1}
|
|
41
|
+
- {feature 2}
|
|
42
|
+
- {feature 3}
|
|
43
|
+
|
|
44
|
+
### 💡 Phase 4: {name} (Future)
|
|
45
|
+
- {feature 1}
|
|
46
|
+
- {feature 2}
|
|
47
|
+
|
|
48
|
+
## Upcoming Milestones
|
|
49
|
+
|
|
50
|
+
🎯 Next Milestone: {milestone name}
|
|
51
|
+
- Target: {date/timeframe}
|
|
52
|
+
- Features remaining: X
|
|
53
|
+
- Estimated: Y weeks
|
|
54
|
+
|
|
55
|
+
🔮 Future Milestones:
|
|
56
|
+
- {milestone 2}: {timeframe}
|
|
57
|
+
- {milestone 3}: {timeframe}
|
|
58
|
+
|
|
59
|
+
💡 Want to update roadmap? Edit ~/.prjct-cli/projects/{id}/planning/roadmap.md
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
# Roadmap Structure
|
|
63
|
+
|
|
64
|
+
The roadmap.md file should follow this structure:
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
# Project Roadmap
|
|
68
|
+
|
|
69
|
+
## Phase 1: Foundation
|
|
70
|
+
Target: Q1 2025
|
|
71
|
+
- [ ] Feature A
|
|
72
|
+
- [ ] Feature B
|
|
73
|
+
- [ ] Feature C
|
|
74
|
+
|
|
75
|
+
## Phase 2: Core Features
|
|
76
|
+
Target: Q2 2025
|
|
77
|
+
- [ ] Feature D
|
|
78
|
+
- [ ] Feature E
|
|
79
|
+
|
|
80
|
+
...
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
# Progress Calculation
|
|
84
|
+
|
|
85
|
+
- Match shipped features against roadmap items
|
|
86
|
+
- Calculate percentage completion per phase
|
|
87
|
+
- Identify current phase (first with incomplete items)
|
|
88
|
+
- Estimate completion based on velocity
|
|
89
|
+
|
|
90
|
+
# Global Architecture Notes
|
|
91
|
+
|
|
92
|
+
- **Data Location**: `~/.prjct-cli/projects/{id}/planning/roadmap.md`
|
|
93
|
+
- **Progress Source**: `~/.prjct-cli/projects/{id}/progress/shipped.md`
|
|
94
|
+
- **Config Location**: `{project}/.prjct/prjct.config.json`
|
|
95
|
+
- **Use Case**: Strategic planning, stakeholder updates, long-term vision
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: prjct ship
|
|
3
|
+
invocable_name: p:ship
|
|
4
|
+
description: Ship feature
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Steps
|
|
8
|
+
|
|
9
|
+
1. Get projectId + author from `.prjct/prjct.config.json`
|
|
10
|
+
2. Append to `~/.prjct-cli/projects/{id}/progress/shipped.md` + timestamp
|
|
11
|
+
3. Update `progress/metrics.md` (count, velocity)
|
|
12
|
+
4. Log to `memory/context.jsonl` with author
|
|
13
|
+
5. Response:
|
|
14
|
+
```
|
|
15
|
+
🚀 {feature}
|
|
16
|
+
Week: {n} | Total: {total}
|
|
17
|
+
→ /p:now
|
|
18
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: prjct stuck
|
|
3
|
+
invocable_name: p:stuck
|
|
4
|
+
description: Get unstuck
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Steps
|
|
8
|
+
|
|
9
|
+
1. Get projectId from `.prjct/prjct.config.json`
|
|
10
|
+
2. Detect type: bug/design/perf/feature
|
|
11
|
+
3. Read context from:
|
|
12
|
+
- `~/.prjct-cli/projects/{id}/analysis/repo-summary.md`
|
|
13
|
+
- `~/.prjct-cli/projects/{id}/memory/context.jsonl`
|
|
14
|
+
4. Log to `memory/context.jsonl`
|
|
15
|
+
5. Response by type:
|
|
16
|
+
- **Bug**: `🔍 1. Check logs 2. Isolate 3. Search error`
|
|
17
|
+
- **Design**: `🎨 1. Define clearly 2. Start simple 3. Ship MVP`
|
|
18
|
+
- **Perf**: `⚡ 1. Profile 2. Fix slowest 3. Cache`
|
|
19
|
+
- **Default**: `💡 1. Break down 2. Start smallest 3. Ship`
|
|
20
|
+
6. Suggest breakdown:
|
|
21
|
+
```
|
|
22
|
+
🧩 Break down:
|
|
23
|
+
1. {task} (15m)
|
|
24
|
+
→ /p:now "{first}"
|
|
25
|
+
```
|