maxsim-flutter 1.29.0 → 1.31.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/dist/plan/index.d.ts +12 -0
- package/dist/plan/index.d.ts.map +1 -0
- package/dist/plan/index.js +7 -0
- package/dist/plan/index.js.map +1 -0
- package/dist/plan/skill-generator.d.ts.map +1 -1
- package/dist/plan/skill-generator.js +192 -9
- package/dist/plan/skill-generator.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { isValidSnakeCase } from './types.js';
|
|
2
|
+
export type { PlanInput, PlanResult } from './types.js';
|
|
3
|
+
export { writePartialConfig } from './config-writer.js';
|
|
4
|
+
export type { PartialConfigInput } from './config-writer.js';
|
|
5
|
+
export { generateBriefTemplate } from './brief-template-generator.js';
|
|
6
|
+
export type { BriefTemplateInput } from './brief-template-generator.js';
|
|
7
|
+
export { generatePlanAppSkill } from './skill-generator.js';
|
|
8
|
+
export type { SkillInput } from './skill-generator.js';
|
|
9
|
+
export { runPlan } from './plan-orchestrator.js';
|
|
10
|
+
export { classifyAppType } from './app-type-classifier.js';
|
|
11
|
+
export type { AppType, AppTypeResult, ModuleSuggestion } from './app-type-classifier.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plan/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { isValidSnakeCase } from './types.js';
|
|
2
|
+
export { writePartialConfig } from './config-writer.js';
|
|
3
|
+
export { generateBriefTemplate } from './brief-template-generator.js';
|
|
4
|
+
export { generatePlanAppSkill } from './skill-generator.js';
|
|
5
|
+
export { runPlan } from './plan-orchestrator.js';
|
|
6
|
+
export { classifyAppType } from './app-type-classifier.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plan/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-generator.d.ts","sourceRoot":"","sources":["../../src/plan/skill-generator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"skill-generator.d.ts","sourceRoot":"","sources":["../../src/plan/skill-generator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,CA2Q/D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export function generatePlanAppSkill(input) {
|
|
2
2
|
const name = input?.name ?? 'your_app';
|
|
3
3
|
const description = input?.description ?? 'A Flutter app';
|
|
4
|
+
const ticks = '```';
|
|
4
5
|
return `---
|
|
5
6
|
description: AI-guided planning for ${name}. Leads through vision, features, technical decisions, and PRD generation. Ask questions one at a time.
|
|
6
7
|
model: claude-opus-4-6
|
|
@@ -67,18 +68,200 @@ Use this decision tree to guide module selection. Ask each sub-question only if
|
|
|
67
68
|
|
|
68
69
|
---
|
|
69
70
|
|
|
70
|
-
##
|
|
71
|
+
## Step 4: Module Suggestions
|
|
71
72
|
|
|
72
|
-
|
|
73
|
+
Based on the app description and answers collected, suggest modules using this decision matrix.
|
|
73
74
|
|
|
74
|
-
|
|
75
|
-
2. **\`prd.json\`** with user stories organized by phase
|
|
76
|
-
3. **\`docs/architecture.md\`** with system design overview
|
|
75
|
+
**Classify the app type** from the description, then apply the relevant row:
|
|
77
76
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
| App Type | REQUIRED | RECOMMENDED | NICE-TO-HAVE |
|
|
78
|
+
|---|---|---|---|
|
|
79
|
+
| **team-collaboration** | auth, push, database | analytics, deep-linking | i18n, theme |
|
|
80
|
+
| **e-commerce** | auth, database, api | push, analytics, deep-linking | theme, i18n |
|
|
81
|
+
| **content-social** | auth, analytics, database | push, deep-linking | i18n, theme |
|
|
82
|
+
| **utility-tool** | theme | i18n, analytics | — |
|
|
83
|
+
| **fitness-health** | auth, database, push | analytics, theme | — |
|
|
84
|
+
| **education** | auth, database, api | push, i18n | analytics |
|
|
85
|
+
| **general** | auth, api | theme | — |
|
|
86
|
+
|
|
87
|
+
**For each suggested module, explain the rationale** (why it is needed for this specific app):
|
|
88
|
+
|
|
89
|
+
Example format:
|
|
90
|
+
- \`auth\` ✅ REQUIRED — *Because ${name} needs user accounts to save personal data*
|
|
91
|
+
- \`push\` ⭐ RECOMMENDED — *Because users benefit from timely notifications*
|
|
92
|
+
- \`i18n\` 💡 NICE-TO-HAVE — *If you plan to target non-English markets in the future*
|
|
93
|
+
|
|
94
|
+
Present the suggestions clearly, then ask:
|
|
95
|
+
|
|
96
|
+
**Question 4.1** — Do these module suggestions match your vision, or would you add/remove anything?
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Step 5: Confirm Selections & Approve
|
|
101
|
+
|
|
102
|
+
Summarize all decisions collected in Steps 1-4:
|
|
103
|
+
|
|
104
|
+
**Summary of choices:**
|
|
105
|
+
- App type: [detected type]
|
|
106
|
+
- Platforms: [selected]
|
|
107
|
+
- Auth: [yes/no, provider if yes]
|
|
108
|
+
- Database: [local/cloud/none]
|
|
109
|
+
- Modules: [final list with priorities]
|
|
110
|
+
|
|
111
|
+
**Question 5.1** — Does this summary accurately reflect your app? Should we proceed with generating the config and PRD, or would you like to adjust anything?
|
|
112
|
+
|
|
113
|
+
Once the user confirms and approves, proceed through Steps 6-9.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Step 6: Generate project-brief.md
|
|
118
|
+
|
|
119
|
+
Synthesize the conversation into a complete \`docs/project-brief.md\` file:
|
|
120
|
+
|
|
121
|
+
${ticks}markdown
|
|
122
|
+
# Project Brief — ${name}
|
|
123
|
+
|
|
124
|
+
## Description
|
|
125
|
+
${description}
|
|
126
|
+
|
|
127
|
+
## Problem Statement
|
|
128
|
+
[from Question 1.1]
|
|
129
|
+
|
|
130
|
+
## Core User Journey
|
|
131
|
+
[from Question 1.2]
|
|
132
|
+
|
|
133
|
+
## Core Features (v1)
|
|
134
|
+
[from Question 2.1]
|
|
135
|
+
|
|
136
|
+
## Non-Goals (v1)
|
|
137
|
+
[from Question 2.2]
|
|
138
|
+
|
|
139
|
+
## Technical Decisions
|
|
140
|
+
- Auth: [result]
|
|
141
|
+
- Database: [result]
|
|
142
|
+
- Platforms: [result]
|
|
143
|
+
- Modules: [final list]
|
|
144
|
+
${ticks}
|
|
145
|
+
|
|
146
|
+
Write this file to: \`docs/project-brief.md\`
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Step 7: Generate architecture.md
|
|
151
|
+
|
|
152
|
+
Create \`docs/architecture.md\` with provider tree and navigation flow ASCII diagrams.
|
|
153
|
+
|
|
154
|
+
### Provider Tree (Riverpod ASCII Diagram)
|
|
155
|
+
|
|
156
|
+
${ticks}
|
|
157
|
+
AppProviders
|
|
158
|
+
├── authStateProvider (StreamProvider)
|
|
159
|
+
│ └── userProvider (derived)
|
|
160
|
+
├── [featureNameProvider] (StateNotifierProvider)
|
|
161
|
+
│ └── [featureNameState]
|
|
162
|
+
└── routerProvider (go_router routing)
|
|
163
|
+
${ticks}
|
|
164
|
+
|
|
165
|
+
### Navigation Flow (go_router ASCII Diagram)
|
|
166
|
+
|
|
167
|
+
${ticks}
|
|
168
|
+
/ (root)
|
|
169
|
+
├── /login
|
|
170
|
+
├── /home
|
|
171
|
+
│ ├── /home/[feature-1]
|
|
172
|
+
│ └── /home/[feature-2]
|
|
173
|
+
└── /settings
|
|
174
|
+
${ticks}
|
|
175
|
+
|
|
176
|
+
### Clean Architecture Layers
|
|
177
|
+
|
|
178
|
+
For each enabled module, describe domain / data / presentation layers.
|
|
179
|
+
|
|
180
|
+
### Database Schema (if database module enabled)
|
|
181
|
+
|
|
182
|
+
Describe key data models and relationships.
|
|
183
|
+
|
|
184
|
+
Write to: \`docs/architecture.md\`
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Step 8: Generate complete maxsim.config.yaml
|
|
189
|
+
|
|
190
|
+
Using all decisions from Steps 1-5, generate a complete \`maxsim.config.yaml\`:
|
|
191
|
+
|
|
192
|
+
${ticks}yaml
|
|
193
|
+
project:
|
|
194
|
+
name: ${name}
|
|
195
|
+
description: >-
|
|
196
|
+
${description}
|
|
197
|
+
orgId: com.example
|
|
198
|
+
|
|
199
|
+
platforms:
|
|
200
|
+
- android
|
|
201
|
+
- ios
|
|
202
|
+
|
|
203
|
+
modules:
|
|
204
|
+
auth:
|
|
205
|
+
enabled: true
|
|
206
|
+
provider: firebase
|
|
207
|
+
# ... other selected modules
|
|
208
|
+
|
|
209
|
+
claude:
|
|
210
|
+
preset: standard
|
|
211
|
+
${ticks}
|
|
212
|
+
|
|
213
|
+
Write to: \`maxsim.config.yaml\` (overwrites the partial config).
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Step 9: Generate prd.json
|
|
218
|
+
|
|
219
|
+
Create \`prd.json\` in v2 format. Derive user stories from the user journeys and core features.
|
|
220
|
+
Organize stories across **4 phases**.
|
|
221
|
+
|
|
222
|
+
${ticks}json
|
|
223
|
+
{
|
|
224
|
+
"version": "2.0.0",
|
|
225
|
+
"project": "${name}",
|
|
226
|
+
"phases": [
|
|
227
|
+
{ "phase": 1, "title": "Core Infrastructure", "description": "Auth, navigation, theme" },
|
|
228
|
+
{ "phase": 2, "title": "Core Features", "description": "Primary user journey features" },
|
|
229
|
+
{ "phase": 3, "title": "Secondary Features", "description": "Additional features" },
|
|
230
|
+
{ "phase": 4, "title": "Polish & Optimization", "description": "Analytics, CI/CD, i18n" }
|
|
231
|
+
],
|
|
232
|
+
"stories": [
|
|
233
|
+
{
|
|
234
|
+
"id": "S-001",
|
|
235
|
+
"phase": 1,
|
|
236
|
+
"priority": "P0",
|
|
237
|
+
"title": "...",
|
|
238
|
+
"description": "As a user, I want to...",
|
|
239
|
+
"storyPoints": 3,
|
|
240
|
+
"dependencies": [],
|
|
241
|
+
"acceptanceCriteria": [{ "description": "..." }],
|
|
242
|
+
"passes": false
|
|
243
|
+
}
|
|
244
|
+
]
|
|
245
|
+
}
|
|
246
|
+
${ticks}
|
|
247
|
+
|
|
248
|
+
Write to: \`prd.json\`
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Next Steps
|
|
253
|
+
|
|
254
|
+
Once all artifacts are generated, tell the user:
|
|
255
|
+
|
|
256
|
+
${ticks}
|
|
257
|
+
✅ Planning complete! Your planning workspace is ready.
|
|
258
|
+
|
|
259
|
+
Next steps:
|
|
260
|
+
1. Review docs/project-brief.md and docs/architecture.md
|
|
261
|
+
2. Run: maxsim-flutter create --config maxsim.config.yaml
|
|
262
|
+
3. Then: cd ${name} && claude
|
|
263
|
+
4. Start implementing stories from prd.json with Ralph
|
|
264
|
+
${ticks}
|
|
82
265
|
`;
|
|
83
266
|
}
|
|
84
267
|
//# sourceMappingURL=skill-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-generator.js","sourceRoot":"","sources":["../../src/plan/skill-generator.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,oBAAoB,CAAC,KAAkB;IACrD,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,UAAU,CAAC;IACvC,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,IAAI,eAAe,CAAC;IAE1D,OAAO;sCAC6B,IAAI;;;;gBAI1B,IAAI;;;;eAIL,IAAI;mBACA,WAAW;;;;;;;;;;kDAUoB,IAAI
|
|
1
|
+
{"version":3,"file":"skill-generator.js","sourceRoot":"","sources":["../../src/plan/skill-generator.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,oBAAoB,CAAC,KAAkB;IACrD,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,UAAU,CAAC;IACvC,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,IAAI,eAAe,CAAC;IAE1D,MAAM,KAAK,GAAG,KAAK,CAAC;IAEpB,OAAO;sCAC6B,IAAI;;;;gBAI1B,IAAI;;;;eAIL,IAAI;mBACA,WAAW;;;;;;;;;;kDAUoB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAiEnB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BrC,KAAK;oBACa,IAAI;;;EAGtB,WAAW;;;;;;;;;;;;;;;;;;;EAmBX,KAAK;;;;;;;;;;;;EAYL,KAAK;;;;;;;EAOL,KAAK;;;;EAIL,KAAK;;;;;;;EAOL,KAAK;;;;;;;;;;;;;;;;;;EAkBL,KAAK;;UAEG,IAAI;;MAER,WAAW;;;;;;;;;;;;;;;EAef,KAAK;;;;;;;;;;;EAWL,KAAK;;;gBAGS,IAAI;;;;;;;;;;;;;;;;;;;;;EAqBlB,KAAK;;;;;;;;;;EAUL,KAAK;;;;;;gBAMS,IAAI;;EAElB,KAAK;CACN,CAAC;AACF,CAAC"}
|