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.
@@ -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,CA6CvE"}
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
- > ${input.description}
4
+ ## App Description
5
5
 
6
- ## Vision
6
+ ${input.description}
7
7
 
8
- <!-- What problem does this app solve? Who is the target user? -->
8
+ ## Problem Statement
9
9
 
10
- ## Core Features
10
+ <!-- What specific problem does this app solve? Why does it need to exist? -->
11
11
 
12
- <!-- List the 3-5 most important features. Be specific. -->
12
+ ## Target Users
13
13
 
14
- 1.
15
- 2.
16
- 3.
14
+ <!-- Who are the primary users of this app? -->
17
15
 
18
- ## User Journeys
16
+ ### Persona: [Primary User Type]
19
17
 
20
- <!-- Describe the key user flows step by step. -->
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
- ### Primary Journey
23
+ ### Persona: [Secondary User Type] (optional)
23
24
 
24
- 1. User opens the app
25
- 2.
25
+ - **Role**:
26
+ - **Goal**:
27
+ - **Pain point**:
26
28
 
27
- ## Technical Constraints
29
+ ## Core User Journeys
28
30
 
29
- <!-- Platform targets, performance requirements, integrations. -->
31
+ <!-- Describe the 3-5 most important flows a user will complete. -->
30
32
 
31
- - Platforms: iOS, Android
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 measure if the app is successful? -->
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
- ## Out of Scope
55
+ ## Technical Constraints
41
56
 
42
- <!-- What are you explicitly NOT building in v1? -->
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;;IAEpC,KAAK,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCpB,CAAC;AACF,CAAC"}
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;IAC5D,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
+ {"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,2 +1,6 @@
1
- export declare function generatePlanAppSkill(): string;
1
+ export interface SkillInput {
2
+ name: string;
3
+ description: string;
4
+ }
5
+ export declare function generatePlanAppSkill(input?: SkillInput): string;
2
6
  //# sourceMappingURL=skill-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-generator.d.ts","sourceRoot":"","sources":["../../src/plan/skill-generator.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,IAAI,MAAM,CAmD7C"}
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 your Flutter app. Leads you through vision, module selection, user journeys, and PRD generation.
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 to plan a Flutter app using the maxsim-flutter framework.
11
+ You are a product planning expert helping design a Flutter app using maxsim-flutter.
10
12
 
11
- ## Instructions
13
+ **Project**: ${name}
14
+ **Description**: ${description}
12
15
 
13
- Guide the user through the following planning phases:
16
+ > **Important**: Ask questions one at a time. Wait for the user's answer before asking the next question.
14
17
 
15
- ### Phase 1: Vision & Core Features
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. Read \`docs/project-brief-template.md\` if it exists
18
- 2. Ask the user to describe their app in 2-3 sentences
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
- ### Phase 2: Module Selection
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
- Based on the app description, suggest which maxsim-flutter modules to enable:
25
- - \`auth\` User authentication
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
- ### Phase 3: User Journeys & Architecture
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
- 1. Map the 2-3 primary user journeys
37
- 2. Identify key screens and navigation flows
38
- 3. Define the Clean Architecture layers needed
70
+ ## After Collecting Answers
39
71
 
40
- ### Phase 4: Generate Artifacts
72
+ Once you have answers to all questions, generate:
41
73
 
42
- Generate the following:
43
- 1. Complete \`maxsim.config.yaml\` with selected modules
44
- 2. \`prd.json\` with user stories for each module
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
- When ready, tell the user to run:
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":"AAAA,MAAM,UAAU,oBAAoB;IAClC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDR,CAAC;AACF,CAAC"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maxsim-flutter",
3
- "version": "1.28.0",
3
+ "version": "1.29.0",
4
4
  "description": "AI-powered Flutter app scaffolding with Clean Architecture, Riverpod, and autonomous development via Ralph",
5
5
  "type": "module",
6
6
  "bin": {