maxsim-flutter 1.0.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 (281) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/LICENSE +21 -0
  3. package/README.md +445 -0
  4. package/claude-plugin/.claude-plugin/plugin.json +46 -0
  5. package/claude-plugin/agents/flutter-setup-agent.md +54 -0
  6. package/claude-plugin/commands/flutter-add.md +32 -0
  7. package/claude-plugin/commands/flutter-create.md +28 -0
  8. package/claude-plugin/commands/flutter-migrate.md +28 -0
  9. package/claude-plugin/skills/flutter-scaffolding/SKILL.md +109 -0
  10. package/dist/claude-setup/agent-writer.d.ts +21 -0
  11. package/dist/claude-setup/agent-writer.d.ts.map +1 -0
  12. package/dist/claude-setup/agent-writer.js +365 -0
  13. package/dist/claude-setup/agent-writer.js.map +1 -0
  14. package/dist/claude-setup/claude-md-generator.d.ts +7 -0
  15. package/dist/claude-setup/claude-md-generator.d.ts.map +1 -0
  16. package/dist/claude-setup/claude-md-generator.js +428 -0
  17. package/dist/claude-setup/claude-md-generator.js.map +1 -0
  18. package/dist/claude-setup/commands-writer.d.ts +7 -0
  19. package/dist/claude-setup/commands-writer.d.ts.map +1 -0
  20. package/dist/claude-setup/commands-writer.js +303 -0
  21. package/dist/claude-setup/commands-writer.js.map +1 -0
  22. package/dist/claude-setup/hooks-writer.d.ts +3 -0
  23. package/dist/claude-setup/hooks-writer.d.ts.map +1 -0
  24. package/dist/claude-setup/hooks-writer.js +34 -0
  25. package/dist/claude-setup/hooks-writer.js.map +1 -0
  26. package/dist/claude-setup/index.d.ts +10 -0
  27. package/dist/claude-setup/index.d.ts.map +1 -0
  28. package/dist/claude-setup/index.js +9 -0
  29. package/dist/claude-setup/index.js.map +1 -0
  30. package/dist/claude-setup/mcp-config-writer.d.ts +3 -0
  31. package/dist/claude-setup/mcp-config-writer.d.ts.map +1 -0
  32. package/dist/claude-setup/mcp-config-writer.js +42 -0
  33. package/dist/claude-setup/mcp-config-writer.js.map +1 -0
  34. package/dist/claude-setup/plugin-assembler.d.ts +2 -0
  35. package/dist/claude-setup/plugin-assembler.d.ts.map +1 -0
  36. package/dist/claude-setup/plugin-assembler.js +3 -0
  37. package/dist/claude-setup/plugin-assembler.js.map +1 -0
  38. package/dist/claude-setup/prd-generator.d.ts +10 -0
  39. package/dist/claude-setup/prd-generator.d.ts.map +1 -0
  40. package/dist/claude-setup/prd-generator.js +295 -0
  41. package/dist/claude-setup/prd-generator.js.map +1 -0
  42. package/dist/claude-setup/setup-orchestrator.d.ts +11 -0
  43. package/dist/claude-setup/setup-orchestrator.d.ts.map +1 -0
  44. package/dist/claude-setup/setup-orchestrator.js +46 -0
  45. package/dist/claude-setup/setup-orchestrator.js.map +1 -0
  46. package/dist/claude-setup/skill-writer.d.ts +3 -0
  47. package/dist/claude-setup/skill-writer.d.ts.map +1 -0
  48. package/dist/claude-setup/skill-writer.js +256 -0
  49. package/dist/claude-setup/skill-writer.js.map +1 -0
  50. package/dist/cli/commands/add.d.ts +16 -0
  51. package/dist/cli/commands/add.d.ts.map +1 -0
  52. package/dist/cli/commands/add.js +414 -0
  53. package/dist/cli/commands/add.js.map +1 -0
  54. package/dist/cli/commands/create.d.ts +3 -0
  55. package/dist/cli/commands/create.d.ts.map +1 -0
  56. package/dist/cli/commands/create.js +161 -0
  57. package/dist/cli/commands/create.js.map +1 -0
  58. package/dist/cli/commands/list.d.ts +12 -0
  59. package/dist/cli/commands/list.d.ts.map +1 -0
  60. package/dist/cli/commands/list.js +148 -0
  61. package/dist/cli/commands/list.js.map +1 -0
  62. package/dist/cli/commands/migrate.d.ts +3 -0
  63. package/dist/cli/commands/migrate.d.ts.map +1 -0
  64. package/dist/cli/commands/migrate.js +332 -0
  65. package/dist/cli/commands/migrate.js.map +1 -0
  66. package/dist/cli/index.d.ts +3 -0
  67. package/dist/cli/index.d.ts.map +1 -0
  68. package/dist/cli/index.js +34 -0
  69. package/dist/cli/index.js.map +1 -0
  70. package/dist/cli/ui/prompts.d.ts +9 -0
  71. package/dist/cli/ui/prompts.d.ts.map +1 -0
  72. package/dist/cli/ui/prompts.js +74 -0
  73. package/dist/cli/ui/prompts.js.map +1 -0
  74. package/dist/cli/ui/spinner.d.ts +2 -0
  75. package/dist/cli/ui/spinner.d.ts.map +1 -0
  76. package/dist/cli/ui/spinner.js +5 -0
  77. package/dist/cli/ui/spinner.js.map +1 -0
  78. package/dist/cli/version-check.d.ts +7 -0
  79. package/dist/cli/version-check.d.ts.map +1 -0
  80. package/dist/cli/version-check.js +92 -0
  81. package/dist/cli/version-check.js.map +1 -0
  82. package/dist/core/config/defaults.d.ts +3 -0
  83. package/dist/core/config/defaults.d.ts.map +1 -0
  84. package/dist/core/config/defaults.js +21 -0
  85. package/dist/core/config/defaults.js.map +1 -0
  86. package/dist/core/config/loader.d.ts +4 -0
  87. package/dist/core/config/loader.d.ts.map +1 -0
  88. package/dist/core/config/loader.js +38 -0
  89. package/dist/core/config/loader.js.map +1 -0
  90. package/dist/core/config/schema.d.ts +406 -0
  91. package/dist/core/config/schema.d.ts.map +1 -0
  92. package/dist/core/config/schema.js +119 -0
  93. package/dist/core/config/schema.js.map +1 -0
  94. package/dist/core/context.d.ts +57 -0
  95. package/dist/core/context.d.ts.map +1 -0
  96. package/dist/core/context.js +99 -0
  97. package/dist/core/context.js.map +1 -0
  98. package/dist/core/detector.d.ts +28 -0
  99. package/dist/core/detector.d.ts.map +1 -0
  100. package/dist/core/detector.js +200 -0
  101. package/dist/core/detector.js.map +1 -0
  102. package/dist/core/validator.d.ts +7 -0
  103. package/dist/core/validator.d.ts.map +1 -0
  104. package/dist/core/validator.js +35 -0
  105. package/dist/core/validator.js.map +1 -0
  106. package/dist/index.d.ts +21 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +14 -0
  109. package/dist/index.js.map +1 -0
  110. package/dist/modules/composer.d.ts +50 -0
  111. package/dist/modules/composer.d.ts.map +1 -0
  112. package/dist/modules/composer.js +122 -0
  113. package/dist/modules/composer.js.map +1 -0
  114. package/dist/modules/definitions/analytics/module.d.ts +7 -0
  115. package/dist/modules/definitions/analytics/module.d.ts.map +1 -0
  116. package/dist/modules/definitions/analytics/module.js +28 -0
  117. package/dist/modules/definitions/analytics/module.js.map +1 -0
  118. package/dist/modules/definitions/api/module.d.ts +7 -0
  119. package/dist/modules/definitions/api/module.d.ts.map +1 -0
  120. package/dist/modules/definitions/api/module.js +41 -0
  121. package/dist/modules/definitions/api/module.js.map +1 -0
  122. package/dist/modules/definitions/auth/module.d.ts +7 -0
  123. package/dist/modules/definitions/auth/module.d.ts.map +1 -0
  124. package/dist/modules/definitions/auth/module.js +53 -0
  125. package/dist/modules/definitions/auth/module.js.map +1 -0
  126. package/dist/modules/definitions/cicd/module.d.ts +7 -0
  127. package/dist/modules/definitions/cicd/module.d.ts.map +1 -0
  128. package/dist/modules/definitions/cicd/module.js +34 -0
  129. package/dist/modules/definitions/cicd/module.js.map +1 -0
  130. package/dist/modules/definitions/core/module.d.ts +7 -0
  131. package/dist/modules/definitions/core/module.d.ts.map +1 -0
  132. package/dist/modules/definitions/core/module.js +31 -0
  133. package/dist/modules/definitions/core/module.js.map +1 -0
  134. package/dist/modules/definitions/database/module.d.ts +8 -0
  135. package/dist/modules/definitions/database/module.d.ts.map +1 -0
  136. package/dist/modules/definitions/database/module.js +47 -0
  137. package/dist/modules/definitions/database/module.js.map +1 -0
  138. package/dist/modules/definitions/deep-linking/module.d.ts +7 -0
  139. package/dist/modules/definitions/deep-linking/module.d.ts.map +1 -0
  140. package/dist/modules/definitions/deep-linking/module.js +48 -0
  141. package/dist/modules/definitions/deep-linking/module.js.map +1 -0
  142. package/dist/modules/definitions/i18n/module.d.ts +7 -0
  143. package/dist/modules/definitions/i18n/module.d.ts.map +1 -0
  144. package/dist/modules/definitions/i18n/module.js +37 -0
  145. package/dist/modules/definitions/i18n/module.js.map +1 -0
  146. package/dist/modules/definitions/push/module.d.ts +7 -0
  147. package/dist/modules/definitions/push/module.d.ts.map +1 -0
  148. package/dist/modules/definitions/push/module.js +40 -0
  149. package/dist/modules/definitions/push/module.js.map +1 -0
  150. package/dist/modules/definitions/theme/module.d.ts +7 -0
  151. package/dist/modules/definitions/theme/module.d.ts.map +1 -0
  152. package/dist/modules/definitions/theme/module.js +42 -0
  153. package/dist/modules/definitions/theme/module.js.map +1 -0
  154. package/dist/modules/registry.d.ts +50 -0
  155. package/dist/modules/registry.d.ts.map +1 -0
  156. package/dist/modules/registry.js +104 -0
  157. package/dist/modules/registry.js.map +1 -0
  158. package/dist/modules/resolver.d.ts +42 -0
  159. package/dist/modules/resolver.d.ts.map +1 -0
  160. package/dist/modules/resolver.js +140 -0
  161. package/dist/modules/resolver.js.map +1 -0
  162. package/dist/ralph/prd-generator.d.ts +2 -0
  163. package/dist/ralph/prd-generator.d.ts.map +1 -0
  164. package/dist/ralph/prd-generator.js +3 -0
  165. package/dist/ralph/prd-generator.js.map +1 -0
  166. package/dist/ralph/ralph-converter.d.ts +2 -0
  167. package/dist/ralph/ralph-converter.d.ts.map +1 -0
  168. package/dist/ralph/ralph-converter.js +3 -0
  169. package/dist/ralph/ralph-converter.js.map +1 -0
  170. package/dist/ralph/story-sizer.d.ts +2 -0
  171. package/dist/ralph/story-sizer.d.ts.map +1 -0
  172. package/dist/ralph/story-sizer.js +3 -0
  173. package/dist/ralph/story-sizer.js.map +1 -0
  174. package/dist/scaffold/engine.d.ts +40 -0
  175. package/dist/scaffold/engine.d.ts.map +1 -0
  176. package/dist/scaffold/engine.js +233 -0
  177. package/dist/scaffold/engine.js.map +1 -0
  178. package/dist/scaffold/file-writer.d.ts +22 -0
  179. package/dist/scaffold/file-writer.d.ts.map +1 -0
  180. package/dist/scaffold/file-writer.js +68 -0
  181. package/dist/scaffold/file-writer.js.map +1 -0
  182. package/dist/scaffold/post-processors/build-runner.d.ts +2 -0
  183. package/dist/scaffold/post-processors/build-runner.d.ts.map +1 -0
  184. package/dist/scaffold/post-processors/build-runner.js +5 -0
  185. package/dist/scaffold/post-processors/build-runner.js.map +1 -0
  186. package/dist/scaffold/post-processors/dart-format.d.ts +2 -0
  187. package/dist/scaffold/post-processors/dart-format.d.ts.map +1 -0
  188. package/dist/scaffold/post-processors/dart-format.js +5 -0
  189. package/dist/scaffold/post-processors/dart-format.js.map +1 -0
  190. package/dist/scaffold/post-processors/flutter-pub-get.d.ts +2 -0
  191. package/dist/scaffold/post-processors/flutter-pub-get.d.ts.map +1 -0
  192. package/dist/scaffold/post-processors/flutter-pub-get.js +5 -0
  193. package/dist/scaffold/post-processors/flutter-pub-get.js.map +1 -0
  194. package/dist/scaffold/renderer.d.ts +20 -0
  195. package/dist/scaffold/renderer.d.ts.map +1 -0
  196. package/dist/scaffold/renderer.js +75 -0
  197. package/dist/scaffold/renderer.js.map +1 -0
  198. package/dist/scaffold/template-helpers.d.ts +25 -0
  199. package/dist/scaffold/template-helpers.d.ts.map +1 -0
  200. package/dist/scaffold/template-helpers.js +115 -0
  201. package/dist/scaffold/template-helpers.js.map +1 -0
  202. package/dist/types/config.d.ts +4 -0
  203. package/dist/types/config.d.ts.map +1 -0
  204. package/dist/types/config.js +2 -0
  205. package/dist/types/config.js.map +1 -0
  206. package/dist/types/module.d.ts +85 -0
  207. package/dist/types/module.d.ts.map +1 -0
  208. package/dist/types/module.js +2 -0
  209. package/dist/types/module.js.map +1 -0
  210. package/dist/types/project.d.ts +13 -0
  211. package/dist/types/project.d.ts.map +1 -0
  212. package/dist/types/project.js +2 -0
  213. package/dist/types/project.js.map +1 -0
  214. package/package.json +80 -0
  215. package/templates/core/analysis_options.yaml.hbs +21 -0
  216. package/templates/core/lib/app.dart.hbs +20 -0
  217. package/templates/core/lib/core/providers/app_providers.dart.hbs +3 -0
  218. package/templates/core/lib/core/router/app_router.dart.hbs +19 -0
  219. package/templates/core/lib/core/theme/app_theme.dart.hbs +15 -0
  220. package/templates/core/lib/features/home/data/models/.gitkeep +0 -0
  221. package/templates/core/lib/features/home/data/repositories/.gitkeep +0 -0
  222. package/templates/core/lib/features/home/domain/entities/.gitkeep +0 -0
  223. package/templates/core/lib/features/home/domain/repositories/.gitkeep +0 -0
  224. package/templates/core/lib/features/home/presentation/pages/home_page.dart.hbs +18 -0
  225. package/templates/core/lib/features/home/presentation/widgets/.gitkeep +0 -0
  226. package/templates/core/lib/main.dart.hbs +11 -0
  227. package/templates/core/pubspec.yaml.hbs +30 -0
  228. package/templates/core/test/widget_test.dart.hbs +16 -0
  229. package/templates/modules/analytics/lib/features/analytics/data/observers/analytics_route_observer.dart.hbs +53 -0
  230. package/templates/modules/analytics/lib/features/analytics/data/services/firebase_analytics_service.dart.hbs +39 -0
  231. package/templates/modules/analytics/lib/features/analytics/domain/services/analytics_service.dart.hbs +25 -0
  232. package/templates/modules/analytics/lib/features/analytics/presentation/providers/analytics_provider.dart.hbs +17 -0
  233. package/templates/modules/analytics/pubspec.partial.yaml +2 -0
  234. package/templates/modules/api/lib/features/api/data/datasources/api_client.dart.hbs +171 -0
  235. package/templates/modules/api/lib/features/api/data/interceptors/auth_interceptor.dart.hbs +25 -0
  236. package/templates/modules/api/lib/features/api/data/interceptors/retry_interceptor.dart.hbs +42 -0
  237. package/templates/modules/api/lib/features/api/data/repositories/api_repository_impl.dart.hbs +21 -0
  238. package/templates/modules/api/lib/features/api/domain/exceptions/api_exception.dart.hbs +31 -0
  239. package/templates/modules/api/lib/features/api/domain/repositories/api_repository.dart.hbs +8 -0
  240. package/templates/modules/api/lib/features/api/presentation/providers/api_provider.dart.hbs +17 -0
  241. package/templates/modules/api/pubspec.partial.yaml +7 -0
  242. package/templates/modules/auth/lib/features/auth/data/datasources/auth_remote_datasource.dart.hbs +181 -0
  243. package/templates/modules/auth/lib/features/auth/data/models/auth_user_model.dart.hbs +27 -0
  244. package/templates/modules/auth/lib/features/auth/data/repositories/auth_repository_impl.dart.hbs +49 -0
  245. package/templates/modules/auth/lib/features/auth/domain/entities/user_entity.dart.hbs +18 -0
  246. package/templates/modules/auth/lib/features/auth/domain/repositories/auth_repository.dart.hbs +22 -0
  247. package/templates/modules/auth/lib/features/auth/domain/usecases/register_usecase.dart.hbs +20 -0
  248. package/templates/modules/auth/lib/features/auth/domain/usecases/sign_in_usecase.dart.hbs +15 -0
  249. package/templates/modules/auth/lib/features/auth/domain/usecases/sign_out_usecase.dart.hbs +11 -0
  250. package/templates/modules/auth/lib/features/auth/presentation/pages/login_page.dart.hbs +118 -0
  251. package/templates/modules/auth/lib/features/auth/presentation/pages/register_page.dart.hbs +131 -0
  252. package/templates/modules/auth/lib/features/auth/presentation/providers/auth_provider.dart.hbs +31 -0
  253. package/templates/modules/auth/pubspec.partial.yaml +13 -0
  254. package/templates/modules/cicd/.github/workflows/ci.yml.hbs +45 -0
  255. package/templates/modules/cicd/.gitlab-ci.yml.hbs +53 -0
  256. package/templates/modules/cicd/bitbucket-pipelines.yml.hbs +39 -0
  257. package/templates/modules/cicd/pubspec.partial.yaml +1 -0
  258. package/templates/modules/database/lib/features/database/data/datasources/database_datasource.dart.hbs +115 -0
  259. package/templates/modules/database/lib/features/database/data/repositories/database_repository_impl.dart.hbs +73 -0
  260. package/templates/modules/database/lib/features/database/domain/repositories/database_repository.dart.hbs +10 -0
  261. package/templates/modules/database/lib/features/database/presentation/providers/database_provider.dart.hbs +43 -0
  262. package/templates/modules/database/pubspec.partial.yaml +27 -0
  263. package/templates/modules/deep-linking/lib/features/deep_linking/data/datasources/deep_link_datasource.dart.hbs +18 -0
  264. package/templates/modules/deep-linking/lib/features/deep_linking/data/repositories/deep_link_repository_impl.dart.hbs +14 -0
  265. package/templates/modules/deep-linking/lib/features/deep_linking/domain/repositories/deep_link_repository.dart.hbs +7 -0
  266. package/templates/modules/deep-linking/lib/features/deep_linking/presentation/providers/deep_link_provider.dart.hbs +57 -0
  267. package/templates/modules/deep-linking/pubspec.partial.yaml +2 -0
  268. package/templates/modules/i18n/l10n.yaml.hbs +5 -0
  269. package/templates/modules/i18n/lib/core/l10n/l10n_config.dart.hbs +29 -0
  270. package/templates/modules/i18n/lib/core/l10n/l10n_provider.dart.hbs +20 -0
  271. package/templates/modules/i18n/lib/l10n/app_de.arb.hbs +27 -0
  272. package/templates/modules/i18n/lib/l10n/app_en.arb.hbs +27 -0
  273. package/templates/modules/i18n/pubspec.partial.yaml +7 -0
  274. package/templates/modules/push/lib/features/push/data/datasources/push_datasource.dart.hbs +124 -0
  275. package/templates/modules/push/lib/features/push/data/repositories/push_repository_impl.dart.hbs +28 -0
  276. package/templates/modules/push/lib/features/push/domain/repositories/push_repository.dart.hbs +31 -0
  277. package/templates/modules/push/lib/features/push/presentation/providers/push_provider.dart.hbs +34 -0
  278. package/templates/modules/push/pubspec.partial.yaml +8 -0
  279. package/templates/modules/theme/lib/core/theme/app_theme.dart.hbs +74 -0
  280. package/templates/modules/theme/lib/core/theme/theme_provider.dart.hbs +46 -0
  281. package/templates/modules/theme/pubspec.partial.yaml +2 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,42 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ Commit messages follow the [Angular Commit Convention](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#-commit-message-format):
9
+ - `feat:` — New feature
10
+ - `fix:` — Bug fix
11
+ - `chore:` — Maintenance
12
+
13
+ ## [0.1.0] - 2026-02-19
14
+
15
+ ### Added
16
+
17
+ - **CLI Commands**: `create`, `add`, and `migrate` commands via Commander.js
18
+ - **Scaffold Engine**: Handlebars-based template rendering with file writing, dry-run mode, and conflict detection
19
+ - **Core Templates**: Clean Architecture Flutter project with Riverpod, go_router, freezed, and build_runner
20
+ - **Module System**: 9 optional modules with dependency resolution via topological sort
21
+ - **auth**: Firebase, Supabase, or custom authentication
22
+ - **api**: Dio HTTP client with interceptors and error handling
23
+ - **database**: Drift (SQLite), Hive, or Isar local storage
24
+ - **i18n**: ARB-based internationalization with Flutter gen-l10n
25
+ - **theme**: Material 3 theming with ColorScheme.fromSeed and dark mode support
26
+ - **push**: Firebase Cloud Messaging or OneSignal push notifications
27
+ - **analytics**: Firebase Analytics with GoRouter route observer
28
+ - **cicd**: GitHub Actions, GitLab CI, or Bitbucket Pipelines
29
+ - **deep-linking**: App Links with go_router integration
30
+ - **Module Composer**: Pubspec dependency merging with semver-aware deduplication
31
+ - **Config System**: Zod-validated `maxsim.config.yaml` schema with defaults
32
+ - **Project Detector**: Analyzes existing Flutter projects for architecture, state management, routing, and module detection
33
+ - **Claude Code Integration**: Generates `.claude/` directory for scaffolded projects
34
+ - CLAUDE.md with architecture rules, Riverpod/go_router patterns, and Agent Teams workflow
35
+ - 5 agent definitions (architect, builder, tester, reviewer, docs)
36
+ - 4 skills (flutter-patterns, go-router-patterns, module-conventions, prd)
37
+ - TaskCompleted hook enforcing `flutter analyze` and `flutter test`
38
+ - MCP config for Firebase/Supabase projects
39
+ - PRD generator for Agent Teams task source
40
+ - **Claude Code Plugin**: Plugin structure with commands, skills, and setup agent
41
+ - **Interactive UI**: @clack/prompts for project creation and module selection
42
+ - **Post-Processors**: Optional dart format, flutter pub get, and build_runner execution
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 maxsim-flutter contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,445 @@
1
+ # maxsim-flutter
2
+
3
+ [![CI](https://github.com/nicosalm/maxsim-flutter/actions/workflows/ci.yml/badge.svg)](https://github.com/nicosalm/maxsim-flutter/actions/workflows/ci.yml)
4
+ [![npm version](https://img.shields.io/npm/v/maxsim-flutter.svg)](https://www.npmjs.com/package/maxsim-flutter)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+ [![Node.js >= 18](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org/)
7
+
8
+ AI-powered Flutter app scaffolding with Clean Architecture, Riverpod state management, go_router navigation, and autonomous development via Claude Code Agent Teams.
9
+
10
+ ---
11
+
12
+ ## Features
13
+
14
+ - Scaffold a complete Flutter app with Clean Architecture from a single command
15
+ - Interactive prompts or fully non-interactive mode with `--yes` and `--config`
16
+ - Nine opt-in feature modules (auth, API client, database, theming, i18n, push notifications, analytics, CI/CD, deep linking)
17
+ - Generates a `.claude/` directory with CLAUDE.md, agent definitions, and skills so Claude Code can continue development autonomously
18
+ - `add` command to bolt modules onto an existing project after initial creation
19
+ - `migrate` command that analyses an existing Flutter project and generates a migration plan with `prd.json` stories
20
+ - `maxsim.config.yaml` written to the project root for reproducible re-runs
21
+ - Dry-run mode to preview all generated files before committing
22
+
23
+ ---
24
+
25
+ ## Requirements
26
+
27
+ - Node.js >= 18
28
+ - Flutter SDK (optional at scaffold time; required to build and run the generated app)
29
+
30
+ ---
31
+
32
+ ## Installation
33
+
34
+ Install globally:
35
+
36
+ ```bash
37
+ npm install -g maxsim-flutter
38
+ ```
39
+
40
+ Or run without installing:
41
+
42
+ ```bash
43
+ npx maxsim-flutter <command>
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Quick Start
49
+
50
+ ```bash
51
+ # Interactive: answer prompts for name, org, modules, and platforms
52
+ maxsim-flutter create
53
+
54
+ # Non-interactive: create an app called "my_app" with auth and API modules
55
+ maxsim-flutter create my_app --org com.example --modules auth,api --yes
56
+
57
+ # After creation, enter the project directory and run the app
58
+ cd my_app
59
+ flutter pub get
60
+ flutter run
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Commands
66
+
67
+ ### `maxsim-flutter create [app-name]`
68
+
69
+ Creates a new Flutter project with Clean Architecture, Riverpod, and go_router.
70
+
71
+ If `app-name` is omitted and `--yes` is not set, an interactive prompt is shown.
72
+
73
+ **Flags**
74
+
75
+ | Flag | Description |
76
+ |------|-------------|
77
+ | `--org <id>` | Organisation identifier, e.g. `com.example` (default: `com.example`) |
78
+ | `--modules <list>` | Comma-separated list of modules to enable, e.g. `auth,api,theme` |
79
+ | `--platforms <list>` | Comma-separated target platforms: `android,ios,web,macos,windows,linux` (default: `android,ios`) |
80
+ | `--auth-provider <provider>` | Auth provider when `auth` module is included: `firebase`, `supabase`, or `custom` |
81
+ | `--config <file>` | Path to a `maxsim.config.yaml` preset file — skips all prompts |
82
+ | `--yes` | Accept all defaults without prompting |
83
+ | `--dry-run` | Preview generated files without writing anything to disk |
84
+ | `--no-claude` | Skip generating the `.claude/` directory and `CLAUDE.md` |
85
+
86
+ **Examples**
87
+
88
+ ```bash
89
+ # Interactive
90
+ maxsim-flutter create
91
+
92
+ # Minimal non-interactive
93
+ maxsim-flutter create shop_app --org com.acme --yes
94
+
95
+ # Full feature set, non-interactive
96
+ maxsim-flutter create shop_app \
97
+ --org com.acme \
98
+ --modules auth,api,database,theme,i18n \
99
+ --platforms android,ios,web \
100
+ --auth-provider firebase \
101
+ --yes
102
+
103
+ # Load a saved configuration file
104
+ maxsim-flutter create --config ./my-preset.yaml
105
+
106
+ # Preview without writing
107
+ maxsim-flutter create my_app --yes --dry-run
108
+ ```
109
+
110
+ ---
111
+
112
+ ### `maxsim-flutter add [module]`
113
+
114
+ Adds a feature module to an existing maxsim-flutter project. The command searches for `maxsim.config.yaml` in the current directory and up to five parent directories.
115
+
116
+ If `module` is omitted, an interactive selection prompt is shown listing only modules not yet enabled in the project.
117
+
118
+ **Flags**
119
+
120
+ | Flag | Description |
121
+ |------|-------------|
122
+ | `--project-dir <path>` | Path to the project directory (default: current directory) |
123
+ | `--dry-run` | Preview files that would be generated without writing |
124
+
125
+ **Examples**
126
+
127
+ ```bash
128
+ # Interactive: pick from available modules
129
+ maxsim-flutter add
130
+
131
+ # Add a specific module
132
+ maxsim-flutter add push
133
+
134
+ # Add to a project in another directory
135
+ maxsim-flutter add analytics --project-dir ~/projects/my_app
136
+
137
+ # Preview what the database module would generate
138
+ maxsim-flutter add database --dry-run
139
+ ```
140
+
141
+ Available module identifiers: `auth`, `api`, `theme`, `database`, `i18n`, `push`, `analytics`, `cicd`, `deep-linking`
142
+
143
+ ---
144
+
145
+ ### `maxsim-flutter migrate [path]`
146
+
147
+ Analyses an existing Flutter project and, optionally, migrates it to maxsim conventions. Detected architecture, state management, routing, and dependencies are reported. On confirmation the command writes `maxsim.config.yaml`, generates a `.claude/` directory, and creates a `prd.json` file containing story-by-story migration tasks.
148
+
149
+ **Arguments**
150
+
151
+ | Argument | Description |
152
+ |----------|-------------|
153
+ | `[path]` | Path to the Flutter project root (default: current directory) |
154
+
155
+ **Flags**
156
+
157
+ | Flag | Description |
158
+ |------|-------------|
159
+ | `--analysis-only` | Print the analysis report without making any changes |
160
+ | `--yes` | Skip the confirmation prompt and apply migration immediately |
161
+
162
+ **Examples**
163
+
164
+ ```bash
165
+ # Analyse the project in the current directory without making changes
166
+ maxsim-flutter migrate --analysis-only
167
+
168
+ # Analyse a project at a specific path
169
+ maxsim-flutter migrate ~/projects/legacy_app --analysis-only
170
+
171
+ # Migrate with confirmation prompt
172
+ maxsim-flutter migrate
173
+
174
+ # Migrate without prompting
175
+ maxsim-flutter migrate ~/projects/legacy_app --yes
176
+ ```
177
+
178
+ The migration writes non-destructively: if `maxsim.config.yaml`, `CLAUDE.md`, or `prd.json` already exist they are skipped.
179
+
180
+ ---
181
+
182
+ ## Modules
183
+
184
+ The `core` module is always included. All other modules are opt-in.
185
+
186
+ | Module | ID | Description | Options |
187
+ |--------|----|-------------|---------|
188
+ | Core | `core` | Base Clean Architecture structure with Riverpod state management and go_router navigation | Always included |
189
+ | Authentication | `auth` | User authentication with login, register, and session management | Provider: `firebase` (default), `supabase`, `custom` |
190
+ | API Client | `api` | HTTP client setup with Dio, interceptors, and typed error handling | Base URL (configurable) |
191
+ | Theme | `theme` | Advanced Material 3 theming with seed colors, dark/light mode switching via Riverpod | Seed color, dark mode toggle |
192
+ | Database | `database` | Local database persistence | Engine: `drift` / SQLite (default), `hive` / NoSQL, `isar` / NoSQL |
193
+ | Internationalization | `i18n` | Multi-language support with ARB files and Flutter localization | Default locale |
194
+ | Push Notifications | `push` | Push notification support | Provider: `firebase` / FCM (default), `onesignal` |
195
+ | Analytics | `analytics` | Analytics event tracking and route observation via Firebase Analytics | — |
196
+ | CI/CD | `cicd` | Continuous integration and deployment pipeline configuration | Provider: `github` (default), `gitlab`, `bitbucket` |
197
+ | Deep Linking | `deep-linking` | Deep link and universal link handling via app_links with go_router integration | URL scheme, host domain |
198
+
199
+ ---
200
+
201
+ ## Agent Teams Workflow
202
+
203
+ Every generated project includes a `.claude/` directory pre-configured for Claude Code Agent Teams. This enables autonomous AI-assisted feature development after the initial scaffold.
204
+
205
+ ### Prerequisites
206
+
207
+ - [Claude Code](https://github.com/anthropics/claude-code) installed and authenticated
208
+ - Enable the experimental agent teams feature:
209
+
210
+ ```bash
211
+ export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
212
+ ```
213
+
214
+ ### Step-by-step guide
215
+
216
+ **1. Scaffold the project**
217
+
218
+ ```bash
219
+ maxsim-flutter create task_manager --org com.example --modules auth,api --yes
220
+ cd task_manager
221
+ ```
222
+
223
+ **2. Review the generated prd.json**
224
+
225
+ The scaffold generates a `prd.json` containing phase-by-phase user stories for the enabled modules. Review and adjust stories to match your product requirements before starting the agent team.
226
+
227
+ **3. Start a Claude Code session in the project**
228
+
229
+ ```bash
230
+ claude
231
+ ```
232
+
233
+ **4. Instruct Claude Code to form a team**
234
+
235
+ ```
236
+ Create an agent team from prd.json. Spawn an architect, two builders,
237
+ a tester, and a reviewer. Implement the PRD stories phase by phase.
238
+ ```
239
+
240
+ Claude Code reads the `.claude/agents/` directory, creates a shared task list from `prd.json`, and coordinates the agents:
241
+
242
+ - **Architect** plans the implementation approach for each story
243
+ - **Builders** implement code following the Clean Architecture layers
244
+ - **Tester** writes unit and widget tests for new code
245
+ - **Reviewer** performs code review and enforces quality gates
246
+
247
+ **5. Monitor progress**
248
+
249
+ Agents communicate via the Claude Code task system. Use `/tasks` in your session to see the current state. Each story commit follows the format:
250
+
251
+ ```
252
+ feat: [Story-ID] - Story Title
253
+ ```
254
+
255
+ **6. Quality gates**
256
+
257
+ Each story must pass the following before being marked complete:
258
+
259
+ ```bash
260
+ flutter analyze # zero errors
261
+ flutter test # all tests pass
262
+ dart format --set-exit-if-changed .
263
+ ```
264
+
265
+ **7. Continue development after initial scaffold**
266
+
267
+ To add a new module and have the agent team implement it:
268
+
269
+ ```bash
270
+ maxsim-flutter add push
271
+ ```
272
+
273
+ The command regenerates `CLAUDE.md` with updated context. Tell Claude Code:
274
+
275
+ ```
276
+ Implement the push notifications module stories from prd.json.
277
+ ```
278
+
279
+ ---
280
+
281
+ ## Configuration Reference
282
+
283
+ Every project includes a `maxsim.config.yaml` at its root. You can edit this file and re-run scaffold commands.
284
+
285
+ ```yaml
286
+ version: "1"
287
+
288
+ project:
289
+ name: my_app # Flutter package name (snake_case)
290
+ orgId: com.example # Reverse-DNS organisation ID
291
+ description: "My Flutter app" # Optional description
292
+ minSdkVersion: "21" # Optional minimum Android SDK version
293
+
294
+ platforms:
295
+ - android
296
+ - ios
297
+ # also supported: web, macos, windows, linux
298
+
299
+ modules:
300
+ auth:
301
+ enabled: true
302
+ provider: firebase # firebase | supabase | custom
303
+
304
+ api:
305
+ enabled: true
306
+ baseUrl: https://api.example.com
307
+ timeout: 30000 # Optional request timeout in milliseconds
308
+
309
+ database:
310
+ enabled: true
311
+ engine: drift # drift | hive | isar
312
+
313
+ theme:
314
+ enabled: true
315
+ seedColor: "#6750A4" # Optional Material 3 seed color (hex)
316
+ useMaterial3: true
317
+ darkMode: true
318
+
319
+ i18n:
320
+ enabled: true
321
+ defaultLocale: en
322
+ supportedLocales:
323
+ - en
324
+ - es
325
+
326
+ push:
327
+ enabled: true
328
+ provider: firebase # firebase | onesignal
329
+
330
+ analytics:
331
+ enabled: true
332
+
333
+ cicd:
334
+ enabled: true
335
+ provider: github # github | gitlab | bitbucket
336
+ targets:
337
+ - android
338
+ - ios
339
+
340
+ deep-linking:
341
+ enabled: true
342
+ scheme: myapp # Custom URL scheme, e.g. myapp://
343
+ host: example.com # Universal link host
344
+
345
+ claude:
346
+ enabled: true # Generate .claude/ directory (default: true)
347
+ generateAgents: false # Generate agent definition files
348
+ generateSkills: false # Generate skill files
349
+ generateHooks: false # Generate hook files
350
+ agentTeams: false # Enable agent teams configuration
351
+ mcpServers: [] # MCP server names to include
352
+
353
+ ralph:
354
+ enabled: false # Enable Ralph autonomous loop
355
+ maxIterations: 25 # Maximum Ralph iterations
356
+
357
+ scaffold:
358
+ overwriteExisting: ask # ask | always | never
359
+ runDartFormat: true # Run dart format after scaffolding
360
+ runPubGet: true # Run flutter pub get after scaffolding
361
+ runBuildRunner: false # Run build_runner after scaffolding
362
+ dryRun: false # Preview only, do not write files
363
+ ```
364
+
365
+ ---
366
+
367
+ ## Contributing
368
+
369
+ ### Development setup
370
+
371
+ ```bash
372
+ git clone https://github.com/nicosalm/maxsim-flutter.git
373
+ cd maxsim-flutter
374
+ npm install
375
+ ```
376
+
377
+ ### Build
378
+
379
+ ```bash
380
+ npm run build # Compile TypeScript to dist/
381
+ npm run dev # Watch mode compilation
382
+ ```
383
+
384
+ ### Testing
385
+
386
+ ```bash
387
+ npm test # Run all tests
388
+ npm run test:watch # Watch mode
389
+ ```
390
+
391
+ ### Quality checks
392
+
393
+ All of the following must pass before submitting a pull request:
394
+
395
+ ```bash
396
+ npm run typecheck # TypeScript type checking (zero errors)
397
+ npm run lint # ESLint (zero errors)
398
+ npm test # All tests pass
399
+ ```
400
+
401
+ Auto-fix lint issues:
402
+
403
+ ```bash
404
+ npm run lint:fix
405
+ ```
406
+
407
+ ### Project structure
408
+
409
+ ```
410
+ src/
411
+ cli/ # CLI entry point, commands (create, add, migrate), interactive prompts
412
+ core/ # Config schema (Zod), project context, environment validator
413
+ scaffold/ # Template rendering engine (Handlebars), file writer, post-processors
414
+ modules/ # Module registry, resolver, composer, and definitions
415
+ ralph/ # PRD generation and story sizing
416
+ claude-setup/ # Generates .claude/ directory for output Flutter projects
417
+ types/ # Shared TypeScript interfaces
418
+ templates/
419
+ core/ # Base Clean Architecture Flutter templates
420
+ modules/ # Per-module Handlebars templates
421
+ claude-plugin/ # Claude Code plugin definition (commands, agents, skills)
422
+ tests/
423
+ unit/ # Unit tests
424
+ integration/ # Integration tests
425
+ ```
426
+
427
+ ### Commit convention
428
+
429
+ ```
430
+ feat: [Story-ID] - Short description
431
+ fix: short description
432
+ chore: short description
433
+ ```
434
+
435
+ ---
436
+
437
+ ## Changelog
438
+
439
+ See [CHANGELOG.md](./CHANGELOG.md) for release history.
440
+
441
+ ---
442
+
443
+ ## License
444
+
445
+ MIT. See [LICENSE](LICENSE) for details.
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "maxsim-flutter",
3
+ "version": "0.1.0",
4
+ "description": "AI-powered Flutter app scaffolding with Clean Architecture, Riverpod, go_router, and autonomous development via Claude Code Agent Teams",
5
+ "author": "maxsim-flutter contributors",
6
+ "homepage": "https://github.com/your-org/maxsim-flutter",
7
+ "keywords": [
8
+ "flutter",
9
+ "clean-architecture",
10
+ "riverpod",
11
+ "go-router",
12
+ "scaffold",
13
+ "agent-teams"
14
+ ],
15
+ "commands": [
16
+ {
17
+ "name": "flutter-create",
18
+ "description": "Create a new Flutter app with Clean Architecture, Riverpod, and AI tooling",
19
+ "file": "commands/flutter-create.md"
20
+ },
21
+ {
22
+ "name": "flutter-add",
23
+ "description": "Add a module to an existing maxsim-flutter project",
24
+ "file": "commands/flutter-add.md"
25
+ },
26
+ {
27
+ "name": "flutter-migrate",
28
+ "description": "Migrate an existing Flutter project to maxsim-flutter architecture",
29
+ "file": "commands/flutter-migrate.md"
30
+ }
31
+ ],
32
+ "skills": [
33
+ {
34
+ "name": "flutter-scaffolding",
35
+ "description": "Knowledge about available modules, architecture patterns, and configuration options for maxsim-flutter projects",
36
+ "directory": "skills/flutter-scaffolding"
37
+ }
38
+ ],
39
+ "agents": [
40
+ {
41
+ "name": "flutter-setup-agent",
42
+ "description": "Interactive agent that guides users through Flutter project setup, module selection, and configuration",
43
+ "file": "agents/flutter-setup-agent.md"
44
+ }
45
+ ]
46
+ }
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: flutter-setup-agent
3
+ description: Interactive agent that guides users through Flutter project setup using maxsim-flutter. Use when a user wants to create a new Flutter project and needs guidance on architecture, module selection, and configuration.
4
+ model: sonnet
5
+ tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
6
+ ---
7
+
8
+ You are an expert Flutter project setup assistant powered by maxsim-flutter.
9
+
10
+ ## Your Role
11
+
12
+ Guide users through creating a new Flutter project with Clean Architecture, Riverpod, and go_router. Ask about their requirements, recommend modules and architecture decisions, then execute the scaffolding.
13
+
14
+ ## Conversation Flow
15
+
16
+ 1. **Understand the Project**: Ask what the user is building (app type, target audience, key features)
17
+ 2. **Recommend Modules**: Based on their description, suggest which modules to enable:
18
+ - E-commerce app → auth, api, database, theme, analytics, push, deep-linking
19
+ - Social app → auth, api, push, analytics, theme, deep-linking
20
+ - Internal tool → auth, api, database, i18n
21
+ - Simple utility → theme only (or no modules)
22
+ 3. **Configure**: Help them choose options for each module:
23
+ - Auth: firebase vs supabase vs custom backend
24
+ - Database: drift (relational) vs hive (key-value) vs isar (document)
25
+ - Theme: seed color, dark mode support
26
+ - CI/CD: github vs gitlab vs bitbucket
27
+ 4. **Execute**: Run `npx maxsim-flutter create <name>` with appropriate flags:
28
+ - Non-interactive: `npx maxsim-flutter create <name> --yes --modules auth,api,theme`
29
+ - Interactive: `npx maxsim-flutter create` (follow prompts)
30
+ 5. **Verify**: Confirm the project was created successfully
31
+ 6. **Next Steps**: Explain how to use Claude Code Agent Teams with the generated project:
32
+ - The project includes `.claude/` with agents, skills, and CLAUDE.md
33
+ - They can create a team: architect + builders + tester + reviewer
34
+ - Use the generated `prd.json` as the task source
35
+
36
+ ## Module Recommendations by App Type
37
+
38
+ | App Type | Recommended Modules |
39
+ |----------|-------------------|
40
+ | MVP/Prototype | auth, api, theme |
41
+ | E-commerce | auth, api, database, theme, analytics, push, deep-linking, cicd |
42
+ | Social/Chat | auth, api, push, analytics, theme, deep-linking |
43
+ | Enterprise | auth, api, database, i18n, theme, analytics, cicd |
44
+ | Content/Blog | api, theme, analytics, deep-linking |
45
+ | Offline-first | auth, database, theme |
46
+
47
+ ## Guidelines
48
+
49
+ - Be concise but thorough when explaining tradeoffs
50
+ - Don't overwhelm beginners with too many options
51
+ - For simple apps, suggest minimal modules (2-3 max)
52
+ - For enterprise apps, suggest comprehensive setup
53
+ - Always explain why you're recommending specific modules
54
+ - If the user is unsure about a module, suggest starting without it (they can add it later with `maxsim-flutter add`)
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: flutter-add
3
+ description: Add a module to an existing maxsim-flutter project
4
+ argument-hint: <module-name>
5
+ ---
6
+
7
+ Add a module to an existing maxsim-flutter Flutter project.
8
+
9
+ Run: `npx maxsim-flutter add $ARGUMENTS`
10
+
11
+ ## Flags
12
+ - `--dry-run` - Preview what would change without writing files
13
+ - `--project-dir <path>` - Specify project location (default: auto-detect via maxsim.config.yaml)
14
+
15
+ ## Available Modules
16
+ - **auth** - Authentication (Firebase / Supabase / Custom)
17
+ - **api** - HTTP client with Dio, interceptors, retry logic
18
+ - **database** - Local database (Drift / Hive / Isar)
19
+ - **i18n** - Internationalization with ARB files
20
+ - **theme** - Advanced theming with Material 3 + dark mode
21
+ - **push** - Push notifications (Firebase Messaging / OneSignal)
22
+ - **analytics** - Analytics tracking with GoRouter observer
23
+ - **cicd** - CI/CD pipeline (GitHub Actions / GitLab CI / Bitbucket Pipelines)
24
+ - **deep-linking** - Deep linking with App Links + go_router
25
+
26
+ ## What It Does
27
+ 1. Detect the existing project (via maxsim.config.yaml)
28
+ 2. Check module dependencies and resolve conflicts
29
+ 3. Generate module files in the correct Clean Architecture structure
30
+ 4. Merge dependencies into existing pubspec.yaml
31
+ 5. Update maxsim.config.yaml with new module configuration
32
+ 6. Regenerate .claude/ setup (CLAUDE.md, agents, skills) to include the new module
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: flutter-create
3
+ description: Create a new Flutter app with Clean Architecture, Riverpod, go_router, and full AI tooling. Runs maxsim-flutter CLI interactively.
4
+ argument-hint: [app-name]
5
+ ---
6
+
7
+ Create a new Flutter application using maxsim-flutter.
8
+
9
+ If an app name was provided: `npx maxsim-flutter create $ARGUMENTS`
10
+ If no app name: `npx maxsim-flutter create` (interactive mode)
11
+
12
+ ## Flags
13
+ - `--yes` - Skip prompts and use defaults
14
+ - `--modules auth,api,theme` - Pre-select modules (comma-separated)
15
+ - `--config path/to/config.yaml` - Load configuration from file
16
+ - `--dry-run` - Preview generated files without writing
17
+ - `--no-claude` - Skip Claude Code setup (.claude/ directory)
18
+
19
+ ## What It Does
20
+ 1. Ask for project details (name, org, description)
21
+ 2. Let you select target platforms (ios, android, web, macos, windows, linux)
22
+ 3. Let you choose optional modules (auth, api, database, i18n, theme, push, analytics, cicd, deep-linking)
23
+ 4. Configure each selected module (auth provider, DB engine, etc.)
24
+ 5. Generate the Flutter project with Clean Architecture + Riverpod + go_router
25
+ 6. Set up Claude Code agents, skills, hooks, and CLAUDE.md in the project
26
+ 7. Generate a PRD for autonomous feature development with Agent Teams
27
+
28
+ Run the command and follow the interactive prompts.