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.
Files changed (71) hide show
  1. package/CHANGELOG.md +312 -0
  2. package/CLAUDE.md +300 -0
  3. package/LICENSE +21 -0
  4. package/README.md +424 -0
  5. package/bin/prjct +214 -0
  6. package/core/agent-detector.js +249 -0
  7. package/core/agents/claude-agent.js +250 -0
  8. package/core/agents/codex-agent.js +256 -0
  9. package/core/agents/terminal-agent.js +465 -0
  10. package/core/analyzer.js +596 -0
  11. package/core/animations-simple.js +240 -0
  12. package/core/animations.js +277 -0
  13. package/core/author-detector.js +218 -0
  14. package/core/capability-installer.js +190 -0
  15. package/core/command-installer.js +775 -0
  16. package/core/commands.js +2050 -0
  17. package/core/config-manager.js +335 -0
  18. package/core/migrator.js +784 -0
  19. package/core/path-manager.js +324 -0
  20. package/core/project-capabilities.js +144 -0
  21. package/core/session-manager.js +439 -0
  22. package/core/version.js +107 -0
  23. package/core/workflow-engine.js +213 -0
  24. package/core/workflow-prompts.js +192 -0
  25. package/core/workflow-rules.js +147 -0
  26. package/package.json +80 -0
  27. package/scripts/install.sh +433 -0
  28. package/scripts/verify-installation.sh +158 -0
  29. package/templates/agents/AGENTS.md +164 -0
  30. package/templates/commands/analyze.md +125 -0
  31. package/templates/commands/cleanup.md +102 -0
  32. package/templates/commands/context.md +105 -0
  33. package/templates/commands/design.md +113 -0
  34. package/templates/commands/done.md +44 -0
  35. package/templates/commands/fix.md +87 -0
  36. package/templates/commands/git.md +79 -0
  37. package/templates/commands/help.md +72 -0
  38. package/templates/commands/idea.md +50 -0
  39. package/templates/commands/init.md +237 -0
  40. package/templates/commands/next.md +74 -0
  41. package/templates/commands/now.md +35 -0
  42. package/templates/commands/progress.md +92 -0
  43. package/templates/commands/recap.md +86 -0
  44. package/templates/commands/roadmap.md +107 -0
  45. package/templates/commands/ship.md +41 -0
  46. package/templates/commands/stuck.md +48 -0
  47. package/templates/commands/task.md +97 -0
  48. package/templates/commands/test.md +94 -0
  49. package/templates/commands/workflow.md +224 -0
  50. package/templates/examples/natural-language-examples.md +320 -0
  51. package/templates/mcp-config.json +8 -0
  52. package/templates/workflows/analyze.md +159 -0
  53. package/templates/workflows/cleanup.md +73 -0
  54. package/templates/workflows/context.md +72 -0
  55. package/templates/workflows/design.md +88 -0
  56. package/templates/workflows/done.md +20 -0
  57. package/templates/workflows/fix.md +201 -0
  58. package/templates/workflows/git.md +192 -0
  59. package/templates/workflows/help.md +13 -0
  60. package/templates/workflows/idea.md +22 -0
  61. package/templates/workflows/init.md +80 -0
  62. package/templates/workflows/natural-language-handler.md +183 -0
  63. package/templates/workflows/next.md +44 -0
  64. package/templates/workflows/now.md +19 -0
  65. package/templates/workflows/progress.md +113 -0
  66. package/templates/workflows/recap.md +66 -0
  67. package/templates/workflows/roadmap.md +95 -0
  68. package/templates/workflows/ship.md +18 -0
  69. package/templates/workflows/stuck.md +25 -0
  70. package/templates/workflows/task.md +109 -0
  71. 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
+ ```