maxsim-flutter 1.28.0 → 1.29.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/brief-template-generator.d.ts.map +1 -1
- package/dist/plan/brief-template-generator.js +40 -22
- package/dist/plan/brief-template-generator.js.map +1 -1
- package/dist/plan/plan-orchestrator.js +1 -1
- package/dist/plan/plan-orchestrator.js.map +1 -1
- package/dist/plan/skill-generator.d.ts +5 -1
- package/dist/plan/skill-generator.d.ts.map +1 -1
- package/dist/plan/skill-generator.js +62 -31
- package/dist/plan/skill-generator.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brief-template-generator.d.ts","sourceRoot":"","sources":["../../src/plan/brief-template-generator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"brief-template-generator.d.ts","sourceRoot":"","sources":["../../src/plan/brief-template-generator.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CA+DvE"}
|
|
@@ -1,47 +1,65 @@
|
|
|
1
1
|
export function generateBriefTemplate(input) {
|
|
2
2
|
return `# Project Brief — ${input.name}
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
## App Description
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
${input.description}
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
## Problem Statement
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
<!-- What specific problem does this app solve? Why does it need to exist? -->
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## Target Users
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
2.
|
|
16
|
-
3.
|
|
14
|
+
<!-- Who are the primary users of this app? -->
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
### Persona: [Primary User Type]
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
- **Role**: (e.g., freelancer, student, team manager)
|
|
19
|
+
- **Goal**: What they want to accomplish
|
|
20
|
+
- **Pain point**: What frustrates them today
|
|
21
|
+
- **Tech comfort**: Low / Medium / High
|
|
21
22
|
|
|
22
|
-
###
|
|
23
|
+
### Persona: [Secondary User Type] (optional)
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
- **Role**:
|
|
26
|
+
- **Goal**:
|
|
27
|
+
- **Pain point**:
|
|
26
28
|
|
|
27
|
-
##
|
|
29
|
+
## Core User Journeys
|
|
28
30
|
|
|
29
|
-
<!--
|
|
31
|
+
<!-- Describe the 3-5 most important flows a user will complete. -->
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
1. **[Journey 1]**: (e.g., Sign up → complete profile → create first item)
|
|
34
|
+
2. **[Journey 2]**:
|
|
35
|
+
3. **[Journey 3]**:
|
|
36
|
+
4.
|
|
37
|
+
5.
|
|
38
|
+
|
|
39
|
+
## Explicit Non-Goals
|
|
40
|
+
|
|
41
|
+
<!-- What are you NOT building in v1? Be specific to avoid scope creep. -->
|
|
42
|
+
|
|
43
|
+
- Not building:
|
|
44
|
+
- Not supporting:
|
|
45
|
+
- Deferred to v2:
|
|
33
46
|
|
|
34
47
|
## Success Metrics
|
|
35
48
|
|
|
36
|
-
<!-- How will you
|
|
49
|
+
<!-- How will you know the app is successful? -->
|
|
37
50
|
|
|
38
|
-
-
|
|
51
|
+
- Activation: (e.g., X% of users complete onboarding)
|
|
52
|
+
- Engagement: (e.g., DAU/MAU ratio)
|
|
53
|
+
- Retention: (e.g., 30-day retention rate)
|
|
39
54
|
|
|
40
|
-
##
|
|
55
|
+
## Technical Constraints
|
|
41
56
|
|
|
42
|
-
<!--
|
|
57
|
+
<!-- Platform targets, integrations, performance requirements. -->
|
|
43
58
|
|
|
44
|
-
-
|
|
59
|
+
- Platforms: iOS, Android
|
|
60
|
+
- Authentication:
|
|
61
|
+
- Backend / API:
|
|
62
|
+
- Offline support: Yes / No
|
|
45
63
|
`;
|
|
46
64
|
}
|
|
47
65
|
//# sourceMappingURL=brief-template-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brief-template-generator.js","sourceRoot":"","sources":["../../src/plan/brief-template-generator.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,OAAO,qBAAqB,KAAK,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"brief-template-generator.js","sourceRoot":"","sources":["../../src/plan/brief-template-generator.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,OAAO,qBAAqB,KAAK,CAAC,IAAI;;;;EAItC,KAAK,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDlB,CAAC;AACF,CAAC"}
|
|
@@ -15,7 +15,7 @@ export async function runPlan(input) {
|
|
|
15
15
|
const skillsDir = join(outputDir, '.claude', 'skills');
|
|
16
16
|
await mkdir(skillsDir, { recursive: true });
|
|
17
17
|
const skillPath = join(skillsDir, 'plan-app.md');
|
|
18
|
-
await writeFile(skillPath, generatePlanAppSkill(), 'utf-8');
|
|
18
|
+
await writeFile(skillPath, generatePlanAppSkill({ name, description }), 'utf-8');
|
|
19
19
|
filesCreated.push(skillPath);
|
|
20
20
|
// Write docs/project-brief-template.md
|
|
21
21
|
const docsDir = join(outputDir, 'docs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-orchestrator.js","sourceRoot":"","sources":["../../src/plan/plan-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAgB;IAC5C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,2BAA2B;IAC3B,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,mCAAmC;IACnC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC9E,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE9B,mCAAmC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACjD,MAAM,SAAS,CAAC,SAAS,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"plan-orchestrator.js","sourceRoot":"","sources":["../../src/plan/plan-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAgB;IAC5C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,2BAA2B;IAC3B,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,mCAAmC;IACnC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC9E,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE9B,mCAAmC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACjD,MAAM,SAAS,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACjF,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE7B,uCAAuC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IAC7D,MAAM,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAClF,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE7B,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,YAAY;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-generator.d.ts","sourceRoot":"","sources":["../../src/plan/skill-generator.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,
|
|
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,CAmF/D"}
|
|
@@ -1,50 +1,81 @@
|
|
|
1
|
-
export function generatePlanAppSkill() {
|
|
1
|
+
export function generatePlanAppSkill(input) {
|
|
2
|
+
const name = input?.name ?? 'your_app';
|
|
3
|
+
const description = input?.description ?? 'A Flutter app';
|
|
2
4
|
return `---
|
|
3
|
-
description: AI-guided planning for
|
|
5
|
+
description: AI-guided planning for ${name}. Leads through vision, features, technical decisions, and PRD generation. Ask questions one at a time.
|
|
4
6
|
model: claude-opus-4-6
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# /plan-app
|
|
9
|
+
# /plan-app — ${name}
|
|
8
10
|
|
|
9
|
-
You are helping
|
|
11
|
+
You are a product planning expert helping design a Flutter app using maxsim-flutter.
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
**Project**: ${name}
|
|
14
|
+
**Description**: ${description}
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
> **Important**: Ask questions one at a time. Wait for the user's answer before asking the next question.
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Step 1: Understand Vision
|
|
21
|
+
|
|
22
|
+
Start by understanding the core problem this app solves.
|
|
23
|
+
|
|
24
|
+
**Question 1.1** — What specific problem does **${name}** solve, and for whom?
|
|
25
|
+
*(Understanding the problem before building ensures you build the right thing.)*
|
|
26
|
+
|
|
27
|
+
**Question 1.2** — Walk me through the most important user journey: what does the user do from the moment they open the app to achieving their goal?
|
|
28
|
+
*(This reveals the critical path and core feature set.)*
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Step 2: Define Core Features
|
|
33
|
+
|
|
34
|
+
Narrow down what the app will actually build.
|
|
16
35
|
|
|
17
|
-
1
|
|
18
|
-
|
|
19
|
-
3. Identify 3-5 core features
|
|
20
|
-
4. Ask clarifying questions about each feature
|
|
36
|
+
**Question 2.1** — What are the top 3 features that **must** exist in v1? (Ignore "nice to haves" for now.)
|
|
37
|
+
*(Focused scope prevents the most common cause of project failure.)*
|
|
21
38
|
|
|
22
|
-
|
|
39
|
+
**Question 2.2** — What are the explicit **non-goals** — features you are intentionally NOT building in v1?
|
|
40
|
+
*(Saying "no" early saves months of scope creep.)*
|
|
23
41
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- \`api\` — Backend API integration
|
|
27
|
-
- \`database\` — Local data persistence
|
|
28
|
-
- \`theme\` — Custom branding & dark mode
|
|
29
|
-
- \`push\` — Push notifications
|
|
30
|
-
- \`analytics\` — Usage analytics
|
|
31
|
-
- \`i18n\` — Internationalization
|
|
32
|
-
- \`deep-linking\` — Deep links & universal links
|
|
42
|
+
**Question 2.3** — Is this a solo project or will you work with a team?
|
|
43
|
+
*(This affects architecture complexity, auth requirements, and CI/CD needs.)*
|
|
33
44
|
|
|
34
|
-
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Step 3: Technical Decisions
|
|
48
|
+
|
|
49
|
+
Use this decision tree to guide module selection. Ask each sub-question only if relevant.
|
|
50
|
+
|
|
51
|
+
### Auth Decision
|
|
52
|
+
**Question 3.1** — Does the app require user accounts?
|
|
53
|
+
- **Yes** → Which provider? Firebase Auth / Supabase / Custom backend
|
|
54
|
+
- **No** → Skip auth module
|
|
55
|
+
|
|
56
|
+
### Backend & Database Decision
|
|
57
|
+
**Question 3.2** — Does the app need to store or sync data across devices?
|
|
58
|
+
- **Cloud sync** → Which backend? Firebase Firestore / Supabase / REST API
|
|
59
|
+
- **Local only** → Use the \`database\` module (SQLite/Hive)
|
|
60
|
+
- **No persistence** → Skip database module
|
|
61
|
+
|
|
62
|
+
### Platform Decision
|
|
63
|
+
**Question 3.3** — Which platforms must ship in v1?
|
|
64
|
+
- iOS and Android (default)
|
|
65
|
+
- Web app as well?
|
|
66
|
+
- Desktop (macOS / Windows / Linux)?
|
|
67
|
+
|
|
68
|
+
---
|
|
35
69
|
|
|
36
|
-
|
|
37
|
-
2. Identify key screens and navigation flows
|
|
38
|
-
3. Define the Clean Architecture layers needed
|
|
70
|
+
## After Collecting Answers
|
|
39
71
|
|
|
40
|
-
|
|
72
|
+
Once you have answers to all questions, generate:
|
|
41
73
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
3. \`docs/architecture.md\` with system design
|
|
74
|
+
1. **Updated \`maxsim.config.yaml\`** with selected modules
|
|
75
|
+
2. **\`prd.json\`** with user stories organized by phase
|
|
76
|
+
3. **\`docs/architecture.md\`** with system design overview
|
|
46
77
|
|
|
47
|
-
|
|
78
|
+
Then tell the user:
|
|
48
79
|
\`\`\`
|
|
49
80
|
maxsim-flutter create --config maxsim.config.yaml
|
|
50
81
|
\`\`\`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-generator.js","sourceRoot":"","sources":["../../src/plan/skill-generator.ts"],"names":[],"mappings":"
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DrD,CAAC;AACF,CAAC"}
|