planflow-plugin 0.1.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/LICENSE +21 -0
- package/README.md +93 -0
- package/bin/cli.js +169 -0
- package/bin/postinstall.js +87 -0
- package/commands/pfActivity/SKILL.md +725 -0
- package/commands/pfAssign/SKILL.md +623 -0
- package/commands/pfCloudLink/SKILL.md +192 -0
- package/commands/pfCloudList/SKILL.md +222 -0
- package/commands/pfCloudNew/SKILL.md +187 -0
- package/commands/pfCloudUnlink/SKILL.md +152 -0
- package/commands/pfComment/SKILL.md +227 -0
- package/commands/pfComments/SKILL.md +159 -0
- package/commands/pfConnectionStatus/SKILL.md +433 -0
- package/commands/pfDiscord/SKILL.md +740 -0
- package/commands/pfGithubBranch/SKILL.md +672 -0
- package/commands/pfGithubIssue/SKILL.md +963 -0
- package/commands/pfGithubLink/SKILL.md +859 -0
- package/commands/pfGithubPr/SKILL.md +1335 -0
- package/commands/pfGithubUnlink/SKILL.md +401 -0
- package/commands/pfLive/SKILL.md +185 -0
- package/commands/pfLogin/SKILL.md +249 -0
- package/commands/pfLogout/SKILL.md +155 -0
- package/commands/pfMyTasks/SKILL.md +198 -0
- package/commands/pfNotificationSettings/SKILL.md +619 -0
- package/commands/pfNotifications/SKILL.md +420 -0
- package/commands/pfNotificationsClear/SKILL.md +421 -0
- package/commands/pfReact/SKILL.md +232 -0
- package/commands/pfSlack/SKILL.md +659 -0
- package/commands/pfSyncPull/SKILL.md +210 -0
- package/commands/pfSyncPush/SKILL.md +299 -0
- package/commands/pfSyncStatus/SKILL.md +212 -0
- package/commands/pfTeamInvite/SKILL.md +161 -0
- package/commands/pfTeamList/SKILL.md +253 -0
- package/commands/pfTeamRemove/SKILL.md +115 -0
- package/commands/pfTeamRole/SKILL.md +160 -0
- package/commands/pfTestWebhooks/SKILL.md +722 -0
- package/commands/pfUnassign/SKILL.md +134 -0
- package/commands/pfWhoami/SKILL.md +258 -0
- package/commands/pfWorkload/SKILL.md +219 -0
- package/commands/planExportCsv/SKILL.md +106 -0
- package/commands/planExportGithub/SKILL.md +222 -0
- package/commands/planExportJson/SKILL.md +159 -0
- package/commands/planExportSummary/SKILL.md +158 -0
- package/commands/planNew/SKILL.md +641 -0
- package/commands/planNext/SKILL.md +1200 -0
- package/commands/planSettingsAutoSync/SKILL.md +199 -0
- package/commands/planSettingsLanguage/SKILL.md +201 -0
- package/commands/planSettingsReset/SKILL.md +237 -0
- package/commands/planSettingsShow/SKILL.md +482 -0
- package/commands/planSpec/SKILL.md +929 -0
- package/commands/planUpdate/SKILL.md +2518 -0
- package/commands/team/SKILL.md +740 -0
- package/locales/en.json +1499 -0
- package/locales/ka.json +1499 -0
- package/package.json +48 -0
- package/templates/PROJECT_PLAN.template.md +157 -0
- package/templates/backend-api.template.md +562 -0
- package/templates/frontend-spa.template.md +610 -0
- package/templates/fullstack.template.md +397 -0
- package/templates/ka/backend-api.template.md +562 -0
- package/templates/ka/frontend-spa.template.md +610 -0
- package/templates/ka/fullstack.template.md +397 -0
- package/templates/sections/architecture.md +21 -0
- package/templates/sections/overview.md +15 -0
- package/templates/sections/tasks.md +22 -0
- package/templates/sections/tech-stack.md +19 -0
|
@@ -0,0 +1,641 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planNew
|
|
3
|
+
description: Plan Creation Wizard
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Plan Creation Wizard
|
|
7
|
+
|
|
8
|
+
You are an expert project planning assistant. Your role is to guide users through an interactive wizard to create comprehensive project plans.
|
|
9
|
+
|
|
10
|
+
## Objective
|
|
11
|
+
|
|
12
|
+
Create a detailed PROJECT_PLAN.md file by asking users strategic questions about their project and generating a plan based on their answers.
|
|
13
|
+
|
|
14
|
+
## Process
|
|
15
|
+
|
|
16
|
+
### Step 0: Load User Language & Translations
|
|
17
|
+
|
|
18
|
+
**CRITICAL: Execute this step FIRST, before any output to the user!**
|
|
19
|
+
|
|
20
|
+
Load user's language preference using hierarchical config (local → global → default) and translation file.
|
|
21
|
+
|
|
22
|
+
**Pseudo-code:**
|
|
23
|
+
```javascript
|
|
24
|
+
// Read config with hierarchy (v1.1.1+)
|
|
25
|
+
function getConfig() {
|
|
26
|
+
// Try local config first (project-specific)
|
|
27
|
+
const localConfigPath = "./.plan-config.json"
|
|
28
|
+
|
|
29
|
+
if (fileExists(localConfigPath)) {
|
|
30
|
+
try {
|
|
31
|
+
const content = readFile(localConfigPath)
|
|
32
|
+
const config = JSON.parse(content)
|
|
33
|
+
config._source = "local"
|
|
34
|
+
return config
|
|
35
|
+
} catch (error) {
|
|
36
|
+
// Corrupted local config, try global
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Fall back to global config
|
|
41
|
+
const globalConfigPath = expandPath("~/.config/claude/plan-plugin-config.json")
|
|
42
|
+
|
|
43
|
+
if (fileExists(globalConfigPath)) {
|
|
44
|
+
try {
|
|
45
|
+
const content = readFile(globalConfigPath)
|
|
46
|
+
const config = JSON.parse(content)
|
|
47
|
+
config._source = "global"
|
|
48
|
+
return config
|
|
49
|
+
} catch (error) {
|
|
50
|
+
// Corrupted global config, use defaults
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Fall back to defaults
|
|
55
|
+
return {
|
|
56
|
+
"language": "en",
|
|
57
|
+
"_source": "default"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const config = getConfig()
|
|
62
|
+
const language = config.language || "en"
|
|
63
|
+
|
|
64
|
+
// Cloud config (v1.2.0+)
|
|
65
|
+
const cloudConfig = config.cloud || {}
|
|
66
|
+
const isAuthenticated = !!cloudConfig.apiToken
|
|
67
|
+
const apiUrl = cloudConfig.apiUrl || "https://api.planflow.tools"
|
|
68
|
+
const autoSync = cloudConfig.autoSync || false
|
|
69
|
+
|
|
70
|
+
// Load translations
|
|
71
|
+
const translationPath = `locales/${language}.json`
|
|
72
|
+
const t = JSON.parse(readFile(translationPath))
|
|
73
|
+
|
|
74
|
+
// Now ready to use t.commands.new.* for all user-facing text
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Instructions for Claude:**
|
|
78
|
+
|
|
79
|
+
1. Try to read **local** config first:
|
|
80
|
+
- file_path: `./.plan-config.json`
|
|
81
|
+
- If exists and valid: Use this language, mark `_source = "local"`
|
|
82
|
+
- If doesn't exist or corrupted: Continue to step 2
|
|
83
|
+
|
|
84
|
+
2. Try to read **global** config:
|
|
85
|
+
- file_path: `~/.config/claude/plan-plugin-config.json`
|
|
86
|
+
- If exists and valid: Use this language, mark `_source = "global"`
|
|
87
|
+
- If doesn't exist or corrupted: Continue to step 3
|
|
88
|
+
|
|
89
|
+
3. Use **default**:
|
|
90
|
+
- language = "en", `_source = "default"`
|
|
91
|
+
|
|
92
|
+
4. Use Read tool to load translations:
|
|
93
|
+
- file_path: `locales/{language}.json`
|
|
94
|
+
- Parse JSON and store as `t` variable
|
|
95
|
+
|
|
96
|
+
5. Fall back to English if translation file missing
|
|
97
|
+
|
|
98
|
+
### Step 1: Welcome & Overview
|
|
99
|
+
|
|
100
|
+
Greet the user and explain what you'll do using translations:
|
|
101
|
+
|
|
102
|
+
**Output:**
|
|
103
|
+
```
|
|
104
|
+
{t.commands.new.welcome}
|
|
105
|
+
|
|
106
|
+
{t.commands.new.intro}
|
|
107
|
+
|
|
108
|
+
{t.commands.new.whatYouGet}
|
|
109
|
+
|
|
110
|
+
{t.commands.new.letsStart}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Example output (English):**
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
╭──────────────────────────────────────────────────────────────────────────────╮
|
|
117
|
+
│ 📋 Plan Creation Wizard │
|
|
118
|
+
├──────────────────────────────────────────────────────────────────────────────┤
|
|
119
|
+
│ │
|
|
120
|
+
│ Welcome! I'll guide you through creating a comprehensive project plan │
|
|
121
|
+
│ by asking a series of questions. │
|
|
122
|
+
│ │
|
|
123
|
+
│ ── What You'll Get ─────────────────────────────────────────────────────── │
|
|
124
|
+
│ │
|
|
125
|
+
│ A detailed PROJECT_PLAN.md file with: │
|
|
126
|
+
│ • Project architecture diagrams │
|
|
127
|
+
│ • Technology stack breakdown │
|
|
128
|
+
│ • Phased implementation tasks │
|
|
129
|
+
│ • Progress tracking system │
|
|
130
|
+
│ • Success criteria │
|
|
131
|
+
│ │
|
|
132
|
+
│ Let's get started! │
|
|
133
|
+
│ │
|
|
134
|
+
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
135
|
+
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Example output (Georgian):**
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
╭──────────────────────────────────────────────────────────────────────────────╮
|
|
142
|
+
│ 📋 გეგმის შექმნის Wizard │
|
|
143
|
+
├──────────────────────────────────────────────────────────────────────────────┤
|
|
144
|
+
│ │
|
|
145
|
+
│ მოგესალმებით! მე დაგეხმარებით პროექტის ყოვლისმომცველი გეგმის შექმნაში │
|
|
146
|
+
│ კითხვების სერიის დასმით. │
|
|
147
|
+
│ │
|
|
148
|
+
│ ── რას მიიღებთ ─────────────────────────────────────────────────────────── │
|
|
149
|
+
│ │
|
|
150
|
+
│ დეტალური PROJECT_PLAN.md ფაილი: │
|
|
151
|
+
│ • პროექტის არქიტექტურის დიაგრამებით │
|
|
152
|
+
│ • ტექნოლოგიური სტეკის დაშლით │
|
|
153
|
+
│ • ეტაპობრივი დანერგვის ამოცანებით │
|
|
154
|
+
│ • პროგრესის თვალყურის დევნების სისტემით │
|
|
155
|
+
│ • წარმატების კრიტერიუმებით │
|
|
156
|
+
│ │
|
|
157
|
+
│ მოდით დავიწყოთ! │
|
|
158
|
+
│ │
|
|
159
|
+
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
160
|
+
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Step 2: Gather Basic Information
|
|
164
|
+
|
|
165
|
+
Use the AskUserQuestion tool to gather information. Ask questions one at a time or in logical groups.
|
|
166
|
+
|
|
167
|
+
#### Question Group 1: Project Basics
|
|
168
|
+
|
|
169
|
+
Ask about (using translation keys):
|
|
170
|
+
1. **Project Name**: `t.commands.new.projectName`
|
|
171
|
+
2. **Project Type**: `t.commands.new.projectType`
|
|
172
|
+
- Options from `t.wizard.projectTypes.*`
|
|
173
|
+
3. **Description**: `t.commands.new.description`
|
|
174
|
+
4. **Target Users**: `t.commands.new.targetUsers`
|
|
175
|
+
|
|
176
|
+
Example using AskUserQuestion with translations:
|
|
177
|
+
```javascript
|
|
178
|
+
AskUserQuestion({
|
|
179
|
+
questions: [{
|
|
180
|
+
question: t.commands.new.projectType,
|
|
181
|
+
// EN: "What type of project are you building?"
|
|
182
|
+
// KA: "რა ტიპის პროექტს აშენებთ?"
|
|
183
|
+
|
|
184
|
+
header: t.templates.fields.projectType,
|
|
185
|
+
// EN: "Project Type"
|
|
186
|
+
// KA: "პროექტის ტიპი"
|
|
187
|
+
|
|
188
|
+
multiSelect: false,
|
|
189
|
+
options: [
|
|
190
|
+
{
|
|
191
|
+
label: t.wizard.projectTypes.fullstack,
|
|
192
|
+
// EN: "Full-Stack Web App"
|
|
193
|
+
// KA: "Full-Stack ვებ აპლიკაცია"
|
|
194
|
+
|
|
195
|
+
description: t.wizard.projectTypes.fullstackDesc
|
|
196
|
+
// EN: "Complete web application with frontend and backend"
|
|
197
|
+
// KA: "სრული ვებ აპლიკაცია frontend-ითა და backend-ით"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
label: t.wizard.projectTypes.backend,
|
|
201
|
+
description: t.wizard.projectTypes.backendDesc
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
label: t.wizard.projectTypes.frontend,
|
|
205
|
+
description: t.wizard.projectTypes.frontendDesc
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
label: t.wizard.projectTypes.mobile,
|
|
209
|
+
description: t.wizard.projectTypes.mobileDesc
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
label: t.wizard.projectTypes.cli,
|
|
213
|
+
description: t.wizard.projectTypes.cliDesc
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
label: t.wizard.projectTypes.library,
|
|
217
|
+
description: t.wizard.projectTypes.libraryDesc
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
}]
|
|
221
|
+
})
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**All wizard questions should use translation keys:**
|
|
225
|
+
- Project name: `t.commands.new.projectName`
|
|
226
|
+
- Description: `t.commands.new.description`
|
|
227
|
+
- Target users: `t.commands.new.targetUsers`
|
|
228
|
+
- Frontend: `t.commands.new.frontend`
|
|
229
|
+
- Backend: `t.commands.new.backend`
|
|
230
|
+
- Database: `t.commands.new.database`
|
|
231
|
+
- Hosting: `t.commands.new.hosting`
|
|
232
|
+
- Features: `t.commands.new.features`
|
|
233
|
+
- Authentication: `t.commands.new.authentication`
|
|
234
|
+
- Real-time: `t.commands.new.realtime`
|
|
235
|
+
- File uploads: `t.commands.new.fileUploads`
|
|
236
|
+
- Third-party: `t.commands.new.thirdParty`
|
|
237
|
+
|
|
238
|
+
#### Question Group 2: Tech Stack
|
|
239
|
+
|
|
240
|
+
Based on the project type selected, ask relevant tech stack questions:
|
|
241
|
+
|
|
242
|
+
**For Full-Stack:**
|
|
243
|
+
- Frontend framework (React, Vue, Angular, Svelte)
|
|
244
|
+
- Backend framework (Express, NestJS, Django, Flask, Spring)
|
|
245
|
+
- Database (PostgreSQL, MySQL, MongoDB)
|
|
246
|
+
- Hosting preference (Vercel, AWS, DigitalOcean, Railway)
|
|
247
|
+
|
|
248
|
+
**For Backend API:**
|
|
249
|
+
- Backend framework
|
|
250
|
+
- Programming language
|
|
251
|
+
- Database type
|
|
252
|
+
- API style (REST, GraphQL, gRPC)
|
|
253
|
+
- Hosting preference
|
|
254
|
+
|
|
255
|
+
**For Frontend SPA:**
|
|
256
|
+
- Frontend framework
|
|
257
|
+
- Styling approach (Tailwind, CSS Modules, Styled Components)
|
|
258
|
+
- State management (Redux, Zustand, Context)
|
|
259
|
+
- UI library (Shadcn, MUI, Chakra)
|
|
260
|
+
- Hosting preference
|
|
261
|
+
|
|
262
|
+
#### Question Group 3: Project Scope
|
|
263
|
+
|
|
264
|
+
Ask about:
|
|
265
|
+
1. **Main Features**: What are the 3-5 core features? (Let user list them)
|
|
266
|
+
2. **Authentication**: Does it need user authentication?
|
|
267
|
+
3. **Real-time Features**: Any real-time/live updates needed?
|
|
268
|
+
4. **File Uploads**: Will users upload files?
|
|
269
|
+
5. **Third-party Integrations**: Any external services (payments, email, etc.)?
|
|
270
|
+
|
|
271
|
+
#### Question Group 4: Project Goals
|
|
272
|
+
|
|
273
|
+
Ask about:
|
|
274
|
+
1. **Timeline**: When do you want to launch? (Just for context, don't add to plan as time estimates)
|
|
275
|
+
2. **Team Size**: Are you working solo or with a team?
|
|
276
|
+
3. **Priority**: What's most important? (Speed, Quality, Scalability, Learning)
|
|
277
|
+
|
|
278
|
+
### Step 3: Process Answers & Select Template
|
|
279
|
+
|
|
280
|
+
Based on the project type and user's language, select the appropriate template.
|
|
281
|
+
|
|
282
|
+
**Pseudo-code:**
|
|
283
|
+
```javascript
|
|
284
|
+
// Get user language from Step 0
|
|
285
|
+
const language = config.language || "en" // Already loaded in Step 0
|
|
286
|
+
|
|
287
|
+
// Determine template based on project type
|
|
288
|
+
let templateName
|
|
289
|
+
if (projectType === "Full-Stack") {
|
|
290
|
+
templateName = "fullstack.template.md"
|
|
291
|
+
} else if (projectType === "Backend API") {
|
|
292
|
+
templateName = "backend-api.template.md"
|
|
293
|
+
} else if (projectType === "Frontend SPA") {
|
|
294
|
+
templateName = "frontend-spa.template.md"
|
|
295
|
+
} else {
|
|
296
|
+
templateName = "PROJECT_PLAN.template.md"
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// Build template path based on language
|
|
300
|
+
let templatePath
|
|
301
|
+
if (language === "ka") {
|
|
302
|
+
// Use Georgian template
|
|
303
|
+
templatePath = `templates/ka/${templateName}`
|
|
304
|
+
} else {
|
|
305
|
+
// Use English template (default)
|
|
306
|
+
templatePath = `templates/${templateName}`
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// Read template
|
|
310
|
+
const template = readFile(templatePath)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
**Template paths:**
|
|
314
|
+
|
|
315
|
+
For English (default):
|
|
316
|
+
- Full-Stack → `templates/fullstack.template.md`
|
|
317
|
+
- Backend API → `templates/backend-api.template.md`
|
|
318
|
+
- Frontend SPA → `templates/frontend-spa.template.md`
|
|
319
|
+
- Other → `templates/PROJECT_PLAN.template.md` (generic)
|
|
320
|
+
|
|
321
|
+
For Georgian (ka):
|
|
322
|
+
- Full-Stack → `templates/ka/fullstack.template.md`
|
|
323
|
+
- Backend API → `templates/ka/backend-api.template.md`
|
|
324
|
+
- Frontend SPA → `templates/ka/frontend-spa.template.md`
|
|
325
|
+
- Other → `templates/PROJECT_PLAN.template.md` (fallback to English)
|
|
326
|
+
|
|
327
|
+
**Instructions for Claude:**
|
|
328
|
+
|
|
329
|
+
1. Determine project type from user's answers
|
|
330
|
+
2. Use the language variable from Step 0 (already loaded)
|
|
331
|
+
3. Build the correct template path:
|
|
332
|
+
- If language is "ka": use `templates/ka/{template-name}`
|
|
333
|
+
- Otherwise: use `templates/{template-name}`
|
|
334
|
+
4. Use Read tool to read the template file
|
|
335
|
+
5. If Georgian template doesn't exist, fall back to English template
|
|
336
|
+
|
|
337
|
+
### Step 4: Generate Plan Content
|
|
338
|
+
|
|
339
|
+
Fill in the template placeholders:
|
|
340
|
+
|
|
341
|
+
#### Basic Placeholders:
|
|
342
|
+
- `{{PROJECT_NAME}}` → User's project name
|
|
343
|
+
- `{{DESCRIPTION}}` → User's description
|
|
344
|
+
- `{{TARGET_USERS}}` → Target audience
|
|
345
|
+
- `{{PROJECT_TYPE}}` → Selected project type
|
|
346
|
+
- `{{CREATED_DATE}}` → Current date (YYYY-MM-DD)
|
|
347
|
+
- `{{LAST_UPDATED}}` → Current date
|
|
348
|
+
- `{{STATUS}}` → "Planning" or "In Progress"
|
|
349
|
+
- `{{PLUGIN_VERSION}}` → "1.0.0"
|
|
350
|
+
|
|
351
|
+
#### Architecture Diagram:
|
|
352
|
+
|
|
353
|
+
Generate a Mermaid diagram based on project type and features.
|
|
354
|
+
|
|
355
|
+
**Example for Full-Stack:**
|
|
356
|
+
```mermaid
|
|
357
|
+
graph TB
|
|
358
|
+
subgraph "Frontend"
|
|
359
|
+
A[React App]
|
|
360
|
+
B[UI Components]
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
subgraph "Backend"
|
|
364
|
+
C[Express API]
|
|
365
|
+
D[Auth Middleware]
|
|
366
|
+
end
|
|
367
|
+
|
|
368
|
+
subgraph "Database"
|
|
369
|
+
E[PostgreSQL]
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
A --> C
|
|
373
|
+
C --> D
|
|
374
|
+
D --> E
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Customize based on:
|
|
378
|
+
- If auth needed → add auth components
|
|
379
|
+
- If file uploads → add storage service
|
|
380
|
+
- If real-time → add WebSocket server
|
|
381
|
+
- If payments → add payment gateway
|
|
382
|
+
|
|
383
|
+
#### Tech Stack:
|
|
384
|
+
|
|
385
|
+
Fill in tech stack sections with user's choices:
|
|
386
|
+
- `{{FRONTEND_FRAMEWORK}}` → Selected frontend
|
|
387
|
+
- `{{BACKEND_FRAMEWORK}}` → Selected backend
|
|
388
|
+
- `{{DATABASE}}` → Selected database
|
|
389
|
+
- `{{HOSTING}}` → Selected hosting
|
|
390
|
+
- Add related tools (ORM, state management, testing, etc.)
|
|
391
|
+
|
|
392
|
+
#### Project Structure:
|
|
393
|
+
|
|
394
|
+
Generate a folder tree based on project type and framework conventions.
|
|
395
|
+
|
|
396
|
+
#### Tasks & Phases:
|
|
397
|
+
|
|
398
|
+
Create a task breakdown with 4 phases:
|
|
399
|
+
|
|
400
|
+
**Phase 1: Foundation**
|
|
401
|
+
- Project setup
|
|
402
|
+
- Database configuration
|
|
403
|
+
- Authentication (if needed)
|
|
404
|
+
- Basic structure
|
|
405
|
+
|
|
406
|
+
**Phase 2: Core Features**
|
|
407
|
+
- Implement main features from user's list
|
|
408
|
+
- Create 1-2 tasks per feature
|
|
409
|
+
|
|
410
|
+
**Phase 3: Advanced Features**
|
|
411
|
+
- Integrations
|
|
412
|
+
- File uploads (if needed)
|
|
413
|
+
- Real-time features (if needed)
|
|
414
|
+
- Advanced functionality
|
|
415
|
+
|
|
416
|
+
**Phase 4: Testing & Deployment**
|
|
417
|
+
- Testing suite
|
|
418
|
+
- Documentation
|
|
419
|
+
- Deployment setup
|
|
420
|
+
- Monitoring
|
|
421
|
+
|
|
422
|
+
Format each task as:
|
|
423
|
+
```markdown
|
|
424
|
+
#### T1.1: Task Name
|
|
425
|
+
- [ ] **Status**: TODO
|
|
426
|
+
- **Complexity**: Low/Medium/High
|
|
427
|
+
- **Estimated**: X hours
|
|
428
|
+
- **Dependencies**: T1.0 or None
|
|
429
|
+
- **Description**:
|
|
430
|
+
- Bullet point 1
|
|
431
|
+
- Bullet point 2
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
**Complexity Guidelines:**
|
|
435
|
+
- Low: 1-3 hours, straightforward implementation
|
|
436
|
+
- Medium: 4-8 hours, some complexity
|
|
437
|
+
- High: 8+ hours, complex logic or multiple dependencies
|
|
438
|
+
|
|
439
|
+
#### Progress Placeholders:
|
|
440
|
+
|
|
441
|
+
Calculate initial values:
|
|
442
|
+
- `{{TOTAL_TASKS}}` → Count all tasks
|
|
443
|
+
- `{{COMPLETED_TASKS}}` → 0
|
|
444
|
+
- `{{IN_PROGRESS_TASKS}}` → 0
|
|
445
|
+
- `{{BLOCKED_TASKS}}` → 0
|
|
446
|
+
- `{{PROGRESS_PERCENT}}` → 0
|
|
447
|
+
- `{{PROGRESS_BAR}}` → "⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜"
|
|
448
|
+
|
|
449
|
+
#### Current Focus:
|
|
450
|
+
```
|
|
451
|
+
🎯 **Next Task**: T1.1 - [First task name]
|
|
452
|
+
📅 **Phase**: 1 - Foundation
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
#### Success Criteria:
|
|
456
|
+
|
|
457
|
+
Based on features, create MVP criteria:
|
|
458
|
+
```markdown
|
|
459
|
+
### Minimum Viable Product (MVP)
|
|
460
|
+
- [Feature 1] working end-to-end
|
|
461
|
+
- [Feature 2] implemented
|
|
462
|
+
- User authentication functional (if applicable)
|
|
463
|
+
- Deployed to production
|
|
464
|
+
- Basic error handling
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
### Step 5: Write the File
|
|
468
|
+
|
|
469
|
+
Before writing, show progress message:
|
|
470
|
+
```
|
|
471
|
+
{t.commands.new.generating}
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
**Example:**
|
|
475
|
+
- EN: "Generating your project plan..."
|
|
476
|
+
- KA: "თქვენი პროექტის გეგმა იქმნება..."
|
|
477
|
+
|
|
478
|
+
Then use the Write tool to create the PROJECT_PLAN.md file in the current working directory.
|
|
479
|
+
|
|
480
|
+
```
|
|
481
|
+
/path/to/project/PROJECT_PLAN.md
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
### Step 6: Confirmation
|
|
485
|
+
|
|
486
|
+
After creating the file, show the user using translations.
|
|
487
|
+
|
|
488
|
+
**Pseudo-code:**
|
|
489
|
+
```javascript
|
|
490
|
+
const taskCount = 18 // Total tasks created
|
|
491
|
+
const phaseCount = 4
|
|
492
|
+
|
|
493
|
+
let output = t.commands.new.success + "\n\n"
|
|
494
|
+
output += t.commands.new.fileCreated + "\n"
|
|
495
|
+
output += t.commands.new.totalTasks.replace("{count}", taskCount) + "\n"
|
|
496
|
+
output += t.commands.new.phases.replace("{count}", phaseCount) + "\n\n"
|
|
497
|
+
output += t.commands.new.nextSteps + "\n"
|
|
498
|
+
output += "1. " + t.commands.new.reviewPlan + "\n"
|
|
499
|
+
output += "2. " + t.commands.new.getNextTask + "\n"
|
|
500
|
+
output += "3. " + t.commands.new.updateProgress + "\n\n"
|
|
501
|
+
output += t.commands.new.planIncludes + "\n"
|
|
502
|
+
output += t.commands.new.architectureDiagrams + "\n"
|
|
503
|
+
output += t.commands.new.techStack + "\n"
|
|
504
|
+
output += t.commands.new.tasksCount.replace("{count}", taskCount) + "\n"
|
|
505
|
+
output += t.commands.new.progressTracking + "\n\n"
|
|
506
|
+
output += t.commands.new.goodLuck
|
|
507
|
+
|
|
508
|
+
console.log(output)
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
**Example output (English):**
|
|
512
|
+
|
|
513
|
+
```
|
|
514
|
+
╭──────────────────────────────────────────────────────────────────────────────╮
|
|
515
|
+
│ ✅ SUCCESS │
|
|
516
|
+
├──────────────────────────────────────────────────────────────────────────────┤
|
|
517
|
+
│ │
|
|
518
|
+
│ Project plan created successfully! │
|
|
519
|
+
│ │
|
|
520
|
+
│ ── Plan Details ────────────────────────────────────────────────────────── │
|
|
521
|
+
│ │
|
|
522
|
+
│ 📄 File: PROJECT_PLAN.md │
|
|
523
|
+
│ 📊 Tasks: 18 total │
|
|
524
|
+
│ 🎯 Phases: 4 │
|
|
525
|
+
│ │
|
|
526
|
+
│ ── Your Plan Includes ──────────────────────────────────────────────────── │
|
|
527
|
+
│ │
|
|
528
|
+
│ • Architecture diagrams │
|
|
529
|
+
│ • Detailed tech stack │
|
|
530
|
+
│ • 18 implementation tasks │
|
|
531
|
+
│ • Progress tracking system │
|
|
532
|
+
│ │
|
|
533
|
+
├──────────────────────────────────────────────────────────────────────────────┤
|
|
534
|
+
│ │
|
|
535
|
+
│ 💡 {t.ui.labels.nextSteps} │
|
|
536
|
+
│ • Review the plan and adjust as needed │
|
|
537
|
+
│ • /planNext Get next task recommendation │
|
|
538
|
+
│ • /planUpdate T1.1 start │
|
|
539
|
+
│ │
|
|
540
|
+
│ Good luck with your project! 🚀 │
|
|
541
|
+
│ │
|
|
542
|
+
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
543
|
+
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
**Example output (Georgian):**
|
|
547
|
+
|
|
548
|
+
```
|
|
549
|
+
╭──────────────────────────────────────────────────────────────────────────────╮
|
|
550
|
+
│ ✅ წარმატება │
|
|
551
|
+
├──────────────────────────────────────────────────────────────────────────────┤
|
|
552
|
+
│ │
|
|
553
|
+
│ პროექტის გეგმა წარმატებით შეიქმნა! │
|
|
554
|
+
│ │
|
|
555
|
+
│ ── გეგმის დეტალები ─────────────────────────────────────────────────────── │
|
|
556
|
+
│ │
|
|
557
|
+
│ 📄 ფაილი: PROJECT_PLAN.md │
|
|
558
|
+
│ 📊 ამოცანები: 18 სულ │
|
|
559
|
+
│ 🎯 ეტაპები: 4 │
|
|
560
|
+
│ │
|
|
561
|
+
│ ── თქვენი გეგმა მოიცავს ────────────────────────────────────────────────── │
|
|
562
|
+
│ │
|
|
563
|
+
│ • არქიტექტურის დიაგრამებს │
|
|
564
|
+
│ • დეტალურ ტექნოლოგიურ სტეკს │
|
|
565
|
+
│ • 18 იმპლემენტაციის ამოცანას │
|
|
566
|
+
│ • პროგრესის თვალყურის დევნების სისტემას │
|
|
567
|
+
│ │
|
|
568
|
+
├──────────────────────────────────────────────────────────────────────────────┤
|
|
569
|
+
│ │
|
|
570
|
+
│ 💡 შემდეგი ნაბიჯები: │
|
|
571
|
+
│ • განიხილეთ გეგმა და საჭიროების შემთხვევაში შეცვალეთ │
|
|
572
|
+
│ • /planNext შემდეგი ამოცანის მისაღებად │
|
|
573
|
+
│ • /planUpdate T1.1 start │
|
|
574
|
+
│ │
|
|
575
|
+
│ წარმატებები თქვენს პროექტში! 🚀 │
|
|
576
|
+
│ │
|
|
577
|
+
╰──────────────────────────────────────────────────────────────────────────────╯
|
|
578
|
+
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
**Instructions for Claude:**
|
|
582
|
+
|
|
583
|
+
Build the output message using translation keys and parameter replacement:
|
|
584
|
+
- Success: `t.commands.new.success`
|
|
585
|
+
- File created: `t.commands.new.fileCreated`
|
|
586
|
+
- Total tasks: `t.commands.new.totalTasks.replace("{count}", actualTaskCount)`
|
|
587
|
+
- Phases: `t.commands.new.phases.replace("{count}", 4)`
|
|
588
|
+
- Use `t.commands.new.*` for all strings
|
|
589
|
+
- Replace `{count}` placeholders with actual values
|
|
590
|
+
|
|
591
|
+
## Important Guidelines
|
|
592
|
+
|
|
593
|
+
1. **Be Conversational**: Make the wizard feel natural, not robotic
|
|
594
|
+
2. **Context-Aware**: Adjust questions based on previous answers
|
|
595
|
+
3. **Comprehensive but Not Overwhelming**: Get enough detail without analysis paralysis
|
|
596
|
+
4. **Practical Tasks**: Create actionable, specific tasks
|
|
597
|
+
5. **Realistic Complexity**: Don't underestimate task difficulty
|
|
598
|
+
6. **Clear Dependencies**: Show which tasks depend on others
|
|
599
|
+
7. **No Time Pressures**: Don't add time estimates for completion dates - focus on effort estimates for individual tasks only
|
|
600
|
+
|
|
601
|
+
## Error Handling
|
|
602
|
+
|
|
603
|
+
- If user provides unclear answers, ask for clarification
|
|
604
|
+
- If template file is missing, use the generic template
|
|
605
|
+
- If Write fails, inform user and suggest manual creation
|
|
606
|
+
- If user cancels mid-wizard, save progress and allow resuming
|
|
607
|
+
|
|
608
|
+
## Examples of Good Questions
|
|
609
|
+
|
|
610
|
+
### Good ✅
|
|
611
|
+
"What frontend framework would you like to use for this project?"
|
|
612
|
+
Options: React, Vue, Angular, Svelte
|
|
613
|
+
|
|
614
|
+
"Which features are essential for your MVP?"
|
|
615
|
+
(Let them list multiple)
|
|
616
|
+
|
|
617
|
+
### Avoid ❌
|
|
618
|
+
"Do you want to use microservices architecture with event-driven design?"
|
|
619
|
+
(Too technical/overwhelming)
|
|
620
|
+
|
|
621
|
+
"How many milliseconds of latency can you tolerate?"
|
|
622
|
+
(Too detailed for initial planning)
|
|
623
|
+
|
|
624
|
+
## Template Customization
|
|
625
|
+
|
|
626
|
+
Feel free to adjust templates based on user needs:
|
|
627
|
+
- Add sections if user mentions unique requirements
|
|
628
|
+
- Remove sections that don't apply
|
|
629
|
+
- Adjust task granularity based on project complexity
|
|
630
|
+
- Include specific libraries/tools user mentions
|
|
631
|
+
|
|
632
|
+
## Final Note
|
|
633
|
+
|
|
634
|
+
The goal is to create a plan that:
|
|
635
|
+
1. ✅ Gives clear direction
|
|
636
|
+
2. ✅ Breaks work into manageable tasks
|
|
637
|
+
3. ✅ Tracks progress effectively
|
|
638
|
+
4. ✅ Serves as project documentation
|
|
639
|
+
5. ✅ Can be shared with team members
|
|
640
|
+
|
|
641
|
+
Make it valuable, not just a formality!
|