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
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: flutter-migrate
3
+ description: Migrate an existing Flutter project to maxsim-flutter Clean Architecture
4
+ argument-hint: [--analysis-only]
5
+ ---
6
+
7
+ Migrate an existing Flutter project to maxsim-flutter Clean Architecture.
8
+
9
+ Run: `npx maxsim-flutter migrate $ARGUMENTS`
10
+
11
+ ## Flags
12
+ - `--analysis-only` - Analyze and report without modifying anything
13
+ - `--project <path>` - Path to the Flutter project (default: current directory)
14
+ - `--dry-run` - Preview changes without applying them
15
+
16
+ ## What It Does
17
+ 1. **Analyze** the existing project structure:
18
+ - Detect architecture pattern (Clean Architecture, MVC, MVVM)
19
+ - Detect state management (Riverpod, Bloc, Provider, GetX)
20
+ - Detect routing (go_router, auto_route, Navigator)
21
+ - Detect existing modules (auth, API, database, i18n, etc.)
22
+ - Find Clean Architecture gaps (missing layers per feature)
23
+ 2. **Report** findings with difficulty assessment and recommendations
24
+ 3. **Migrate** (if not `--analysis-only`):
25
+ - Create maxsim.config.yaml from detected settings
26
+ - Add .claude/ directory (agents, skills, CLAUDE.md, hooks)
27
+ - Generate migration PRD with phased stories
28
+ 4. All operations are **non-destructive** - existing files are never deleted or overwritten
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: flutter-scaffolding
3
+ description: Provides context about maxsim-flutter's available modules, architecture patterns, and configuration. Use when discussing Flutter project setup options.
4
+ user-invocable: false
5
+ ---
6
+
7
+ # maxsim-flutter Scaffolding Knowledge
8
+
9
+ ## Architecture: Clean Architecture with Riverpod
10
+
11
+ Every generated project follows feature-first Clean Architecture:
12
+ ```
13
+ lib/
14
+ ├── core/ → Shared utilities (router, theme, providers, network)
15
+ ├── features/ → Feature-first organization
16
+ │ └── <feature>/
17
+ │ ├── data/ → Repository implementations, DTOs, data sources
18
+ │ ├── domain/ → Entities, use cases, repository interfaces (pure Dart)
19
+ │ └── presentation/ → Screens, widgets, Riverpod providers
20
+ └── shared/ → Shared widgets, extensions, constants
21
+ ```
22
+
23
+ **Layer rules:**
24
+ - Domain layer has NO dependencies on other layers (pure Dart only)
25
+ - Data layer implements domain interfaces, depends on domain
26
+ - Presentation layer depends on domain (use cases) via Riverpod providers
27
+ - Cross-feature communication goes through domain interfaces only
28
+
29
+ ## State Management: Riverpod 3.x
30
+ - `@riverpod` annotations with code generation via `build_runner`
31
+ - `AsyncNotifier` for async mutable state
32
+ - `Notifier` for sync mutable state
33
+ - Provider families for parameterized state
34
+ - `ProviderScope` wraps `MaterialApp` in `main.dart`
35
+
36
+ ## Routing: go_router 17.x
37
+ - `@TypedGoRoute` annotations with code generation
38
+ - `GoRouter` provided via Riverpod provider
39
+ - ShellRoute for persistent navigation shells
40
+ - Redirect logic based on auth state (when auth module is enabled)
41
+ - Deep link handling built-in (when deep-linking module is enabled)
42
+
43
+ ## Available Modules
44
+
45
+ ### auth - Authentication
46
+ - **Providers**: firebase, supabase, custom
47
+ - **Dependencies**: None
48
+ - **Generates**: Login/Register pages, AuthRepository, UserEntity, sign-in/sign-out use cases
49
+ - **Packages**: firebase_auth (firebase), supabase_flutter (supabase), dio (custom)
50
+
51
+ ### api - HTTP Client
52
+ - **Configuration**: Base URL
53
+ - **Dependencies**: None
54
+ - **Generates**: Dio client with interceptors (auth, retry), ApiException, ApiRepository
55
+ - **Packages**: dio, retrofit, json_annotation, json_serializable
56
+
57
+ ### database - Local Storage
58
+ - **Engines**: drift (SQLite), hive (NoSQL), isar (NoSQL)
59
+ - **Dependencies**: None
60
+ - **Generates**: DatabaseRepository, data source per engine, database provider
61
+ - **Packages**: drift + sqlite3_flutter_libs (drift), hive_ce_flutter (hive), isar + isar_flutter_libs (isar)
62
+
63
+ ### i18n - Internationalization
64
+ - **Configuration**: Default locale
65
+ - **Dependencies**: None
66
+ - **Generates**: ARB files (en, de), l10n.yaml, locale provider
67
+ - **Packages**: flutter_localizations, intl
68
+
69
+ ### theme - Advanced Theming
70
+ - **Configuration**: Seed color (hex), dark mode toggle
71
+ - **Dependencies**: None
72
+ - **Generates**: Material 3 ThemeData with ColorScheme.fromSeed, theme mode provider
73
+ - **Packages**: google_fonts
74
+
75
+ ### push - Push Notifications
76
+ - **Providers**: firebase, onesignal
77
+ - **Dependencies**: None
78
+ - **Generates**: Push notification service, handlers, permission requests
79
+ - **Packages**: firebase_messaging (firebase), onesignal_flutter (onesignal)
80
+
81
+ ### analytics - Analytics Tracking
82
+ - **Providers**: firebase
83
+ - **Dependencies**: None
84
+ - **Generates**: AnalyticsService abstraction, GoRouter observer
85
+ - **Packages**: firebase_analytics
86
+
87
+ ### cicd - CI/CD Pipelines
88
+ - **Providers**: github, gitlab, bitbucket
89
+ - **Dependencies**: None
90
+ - **Generates**: Pipeline config files (GitHub Actions / GitLab CI / Bitbucket Pipelines)
91
+ - **Packages**: None (config files only)
92
+
93
+ ### deep-linking - Deep Links
94
+ - **Dependencies**: None
95
+ - **Generates**: App Links config, go_router deep link integration
96
+ - **Packages**: app_links
97
+
98
+ ## CLI Commands
99
+ - `npx maxsim-flutter create [name]` - Create a new project (interactive or with `--yes` for defaults)
100
+ - `npx maxsim-flutter add <module>` - Add a module to an existing project
101
+ - `npx maxsim-flutter migrate` - Migrate an existing Flutter project
102
+
103
+ ## Claude Code Integration
104
+ Generated projects include a full `.claude/` directory with:
105
+ - **CLAUDE.md** - Architecture rules, patterns, quality gates
106
+ - **Agents** - Architect, builder, tester, reviewer, docs teammates
107
+ - **Skills** - Flutter patterns, GoRouter patterns, module conventions, PRD
108
+ - **Hooks** - TaskCompleted (flutter analyze + test), TeammateIdle (uncommitted work check)
109
+ - **Commands** - add-feature, analyze
@@ -0,0 +1,21 @@
1
+ import type { ProjectContext } from '../core/context.js';
2
+ interface AgentDefinition {
3
+ filename: string;
4
+ name: string;
5
+ description: string;
6
+ model: 'sonnet' | 'haiku';
7
+ tools: string[];
8
+ body: string;
9
+ }
10
+ /**
11
+ * Generates agent definition markdown files for the scaffolded Flutter project.
12
+ * Agents are designed as Claude Code Agent Teams teammates.
13
+ */
14
+ export declare function writeAgents(context: ProjectContext, outputPath: string): Promise<string[]>;
15
+ /**
16
+ * Builds agent definitions without writing to disk.
17
+ * Useful for testing and dry-run mode.
18
+ */
19
+ export declare function buildAgentDefinitions(context: ProjectContext): AgentDefinition[];
20
+ export {};
21
+ //# sourceMappingURL=agent-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-writer.d.ts","sourceRoot":"","sources":["../../src/claude-setup/agent-writer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,EAAE,CAQhF"}
@@ -0,0 +1,365 @@
1
+ import { writeFile, mkdir } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ /**
4
+ * Generates agent definition markdown files for the scaffolded Flutter project.
5
+ * Agents are designed as Claude Code Agent Teams teammates.
6
+ */
7
+ export async function writeAgents(context, outputPath) {
8
+ const agentsDir = join(outputPath, '.claude', 'agents');
9
+ await mkdir(agentsDir, { recursive: true });
10
+ const agents = buildAgentDefinitions(context);
11
+ const writtenFiles = [];
12
+ for (const agent of agents) {
13
+ const filePath = join(agentsDir, agent.filename);
14
+ const content = formatAgentMarkdown(agent);
15
+ await writeFile(filePath, content, 'utf-8');
16
+ writtenFiles.push(filePath);
17
+ }
18
+ return writtenFiles;
19
+ }
20
+ /**
21
+ * Builds agent definitions without writing to disk.
22
+ * Useful for testing and dry-run mode.
23
+ */
24
+ export function buildAgentDefinitions(context) {
25
+ return [
26
+ buildArchitectAgent(context),
27
+ buildFeatureBuilderAgent(context),
28
+ buildTesterAgent(context),
29
+ buildReviewerAgent(context),
30
+ buildDocsAgent(context),
31
+ ];
32
+ }
33
+ function formatAgentMarkdown(agent) {
34
+ const toolsList = JSON.stringify(agent.tools);
35
+ return `---
36
+ name: ${agent.name}
37
+ description: ${agent.description}
38
+ model: ${agent.model}
39
+ tools: ${toolsList}
40
+ ---
41
+
42
+ ${agent.body}
43
+ `;
44
+ }
45
+ function getEnabledModulesList(context) {
46
+ const modules = [];
47
+ if (context.modules.auth)
48
+ modules.push('auth');
49
+ if (context.modules.api)
50
+ modules.push('api');
51
+ if (context.modules.database)
52
+ modules.push('database');
53
+ if (context.modules.i18n)
54
+ modules.push('i18n');
55
+ if (context.modules.theme)
56
+ modules.push('theme');
57
+ if (context.modules.push)
58
+ modules.push('push');
59
+ if (context.modules.analytics)
60
+ modules.push('analytics');
61
+ if (context.modules.cicd)
62
+ modules.push('cicd');
63
+ if (context.modules.deepLinking)
64
+ modules.push('deep-linking');
65
+ return modules;
66
+ }
67
+ function buildModuleContext(context) {
68
+ const modules = getEnabledModulesList(context);
69
+ if (modules.length === 0) {
70
+ return 'This project uses the core Clean Architecture structure without additional modules.';
71
+ }
72
+ return `Active modules: ${modules.join(', ')}. Be aware of module boundaries and inter-module dependencies.`;
73
+ }
74
+ function buildArchitectAgent(context) {
75
+ const moduleContext = buildModuleContext(context);
76
+ return {
77
+ filename: 'flutter-architect.md',
78
+ name: 'flutter-architect',
79
+ description: 'Reviews PRD stories and designs implementation approaches. Validates Clean Architecture compliance before builders start.',
80
+ model: 'sonnet',
81
+ tools: ['Read', 'Grep', 'Glob', 'WebSearch'],
82
+ body: `You are a Flutter architect for **${context.projectName}**. You review stories and design implementation plans before builders start coding.
83
+
84
+ ## Your Role
85
+
86
+ You are a **read-only** teammate. You analyze, plan, and review — you do NOT write code.
87
+
88
+ ## Responsibilities
89
+
90
+ 1. Read the next story from \`prd.json\`
91
+ 2. Analyze which files need to change and what the implementation approach should be
92
+ 3. Validate that the proposed approach follows Clean Architecture layer rules
93
+ 4. Create implementation tasks for builders with clear acceptance criteria
94
+ 5. Review builder output for architectural compliance
95
+
96
+ ## Architecture Rules
97
+
98
+ This project uses Clean Architecture with three layers per feature:
99
+
100
+ - **Domain** (entities, repository interfaces, use cases) — no external dependencies
101
+ - **Data** (repository implementations, data sources, models) — depends only on Domain
102
+ - **Presentation** (pages, widgets, Riverpod providers) — depends on Domain, never directly on Data
103
+
104
+ Import rules:
105
+ - \`domain/\` must NOT import from \`data/\` or \`presentation/\`
106
+ - \`data/\` must NOT import from \`presentation/\`
107
+ - \`presentation/\` must NOT import from \`data/\`
108
+ - Cross-feature imports go through \`core/\` barrel exports
109
+
110
+ ## Module Context
111
+
112
+ ${moduleContext}
113
+
114
+ ## Key Patterns
115
+
116
+ - **State Management**: Riverpod (prefer AsyncNotifier for new code)
117
+ - **Navigation**: go_router with TypedGoRoute
118
+ - **Code Generation**: freezed for entities, json_serializable for models
119
+ - **Implementation order**: Domain first, then Data, then Presentation
120
+
121
+ ## Communication
122
+
123
+ - Send implementation plans to builders before they start
124
+ - Flag architecture violations immediately
125
+ - Approve or reject builder implementations based on architecture compliance`,
126
+ };
127
+ }
128
+ function buildFeatureBuilderAgent(context) {
129
+ const moduleContext = buildModuleContext(context);
130
+ return {
131
+ filename: 'flutter-feature-builder.md',
132
+ name: 'flutter-feature-builder',
133
+ description: 'Implements Flutter features following Clean Architecture. Claims tasks from the shared task list and writes code.',
134
+ model: 'sonnet',
135
+ tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
136
+ body: `You are a Flutter feature builder for **${context.projectName}**. You implement features following Clean Architecture and Riverpod patterns.
137
+
138
+ ## Your Role
139
+
140
+ You are an **implementation** teammate. You claim tasks, write code, and run quality checks.
141
+
142
+ ## Workflow
143
+
144
+ 1. Check the shared task list for unassigned tasks (prefer lowest ID first)
145
+ 2. Claim a task and mark it in-progress
146
+ 3. Implement following the architect's guidance (if provided)
147
+ 4. Run quality checks: \`flutter analyze\`, \`flutter test\`
148
+ 5. Mark the task complete and notify the tester
149
+
150
+ ## Implementation Order
151
+
152
+ Always implement in this order within a feature:
153
+
154
+ 1. **Domain layer** first: entities (freezed), repository interfaces, use cases
155
+ 2. **Data layer** second: models, data sources, repository implementations
156
+ 3. **Presentation layer** last: providers (Riverpod), pages, widgets
157
+
158
+ ## Code Conventions
159
+
160
+ - Files: \`snake_case.dart\`
161
+ - Classes: \`PascalCase\`
162
+ - Variables/functions: \`camelCase\`
163
+ - Providers: suffix with \`Provider\` (e.g., \`authRepositoryProvider\`)
164
+ - Use \`ref.watch()\` in build methods, \`ref.read()\` in callbacks
165
+ - Prefer \`AsyncNotifier\` over \`StateNotifier\` for new async state
166
+
167
+ ## Module Context
168
+
169
+ ${moduleContext}
170
+
171
+ ## Quality Checks
172
+
173
+ Before marking any task complete:
174
+
175
+ \`\`\`bash
176
+ flutter analyze # Zero warnings/errors
177
+ flutter test # All tests pass
178
+ dart format --set-exit-if-changed . # Code is formatted
179
+ \`\`\`
180
+
181
+ For code generation changes:
182
+ \`\`\`bash
183
+ dart run build_runner build --delete-conflicting-outputs
184
+ \`\`\`
185
+
186
+ ## Key Files
187
+
188
+ - \`lib/core/router/app_router.dart\` — Route definitions
189
+ - \`lib/core/providers/app_providers.dart\` — Global provider barrel
190
+ - \`pubspec.yaml\` — Dependencies`,
191
+ };
192
+ }
193
+ function buildTesterAgent(context) {
194
+ const moduleContext = buildModuleContext(context);
195
+ return {
196
+ filename: 'flutter-tester.md',
197
+ name: 'flutter-tester',
198
+ description: 'Writes and runs tests for Flutter features. Reports failures back to builders with reproduction steps.',
199
+ model: 'sonnet',
200
+ tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
201
+ body: `You are a Flutter test engineer for **${context.projectName}**. You write tests and validate that implementations meet acceptance criteria.
202
+
203
+ ## Your Role
204
+
205
+ You are a **testing** teammate. You write tests, run quality checks, and report failures.
206
+
207
+ ## Responsibilities
208
+
209
+ 1. After a builder completes a task, write tests for the new code
210
+ 2. Run \`flutter analyze\` and \`flutter test\` to validate
211
+ 3. Report failures back to the builder with clear reproduction steps
212
+ 4. Verify acceptance criteria from the story are met
213
+
214
+ ## Test Structure
215
+
216
+ \`\`\`
217
+ test/
218
+ unit/ # Unit tests for individual classes
219
+ widget/ # Widget tests for UI components
220
+ integration/ # Integration tests for feature flows
221
+ \`\`\`
222
+
223
+ ## Testing Patterns
224
+
225
+ - Use \`flutter_test\` and \`mocktail\` for mocking
226
+ - Test each Clean Architecture layer independently:
227
+ - **Domain**: Test use cases with mocked repositories
228
+ - **Data**: Test repository implementations with mocked data sources
229
+ - **Presentation**: Test providers with mocked use cases, widget tests for pages
230
+ - Name test files: \`<source_file>_test.dart\`
231
+ - Use \`setUp\` and \`tearDown\` for test lifecycle
232
+
233
+ ## Module Context
234
+
235
+ ${moduleContext}
236
+
237
+ ## Quality Gates
238
+
239
+ ALL of the following must pass:
240
+
241
+ \`\`\`bash
242
+ flutter analyze # Zero warnings/errors
243
+ flutter test # All tests pass
244
+ dart format --set-exit-if-changed . # Code is formatted
245
+ \`\`\`
246
+
247
+ ## Communication
248
+
249
+ - Message the builder when tests fail with specific error details
250
+ - Confirm to the reviewer when all tests pass
251
+ - Flag any untestable code patterns`,
252
+ };
253
+ }
254
+ function buildReviewerAgent(context) {
255
+ const moduleContext = buildModuleContext(context);
256
+ return {
257
+ filename: 'flutter-reviewer.md',
258
+ name: 'flutter-reviewer',
259
+ description: 'Reviews completed code for Clean Architecture compliance, Riverpod patterns, and code quality.',
260
+ model: 'sonnet',
261
+ tools: ['Read', 'Grep', 'Glob'],
262
+ body: `You are a Flutter code reviewer for **${context.projectName}**. You review completed implementations for architecture compliance and code quality.
263
+
264
+ ## Your Role
265
+
266
+ You are a **read-only** teammate. You review code — you do NOT write or edit files.
267
+
268
+ ## Review Checklist
269
+
270
+ ### Clean Architecture Compliance
271
+
272
+ - [ ] Domain layer has no external dependencies
273
+ - [ ] Data layer depends only on Domain
274
+ - [ ] Presentation layer does not import from Data directly
275
+ - [ ] Cross-feature imports go through \`core/\` barrel exports
276
+ - [ ] Each feature has proper domain/data/presentation separation
277
+
278
+ ### Riverpod Patterns
279
+
280
+ - [ ] Providers declared as top-level final variables
281
+ - [ ] \`ref.watch()\` used in build methods (not \`ref.read()\`)
282
+ - [ ] \`ref.read()\` used in callbacks only
283
+ - [ ] Providers named with \`Provider\` suffix
284
+ - [ ] \`AsyncNotifier\` preferred over \`StateNotifier\`
285
+
286
+ ### go_router Patterns
287
+
288
+ - [ ] Routes defined in \`app_router.dart\`
289
+ - [ ] Named routes used for navigation
290
+ - [ ] Auth guards use router redirect
291
+
292
+ ### Code Quality
293
+
294
+ - [ ] No \`dynamic\` types (use proper typing)
295
+ - [ ] Error handling follows project patterns
296
+ - [ ] No hardcoded strings that should be localized (if i18n is enabled)
297
+ - [ ] Proper null safety (no unnecessary \`!\` operators)
298
+
299
+ ## Module Context
300
+
301
+ ${moduleContext}
302
+
303
+ ## Communication
304
+
305
+ - Approve implementations that pass all checks
306
+ - Send specific, actionable feedback for issues found
307
+ - Prioritize critical issues (architecture violations) over style suggestions`,
308
+ };
309
+ }
310
+ function buildDocsAgent(context) {
311
+ const moduleContext = buildModuleContext(context);
312
+ return {
313
+ filename: 'flutter-docs.md',
314
+ name: 'flutter-docs',
315
+ description: 'Documents completed features with inline comments and README updates after review approval.',
316
+ model: 'haiku',
317
+ tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob'],
318
+ body: `You are a documentation writer for **${context.projectName}**. You add documentation after features are reviewed and approved.
319
+
320
+ ## Your Role
321
+
322
+ You are a **documentation** teammate. You write docs after the reviewer approves code.
323
+
324
+ ## Responsibilities
325
+
326
+ 1. Add Dart doc comments to public APIs (classes, methods, providers)
327
+ 2. Update README.md with new feature documentation
328
+ 3. Add inline comments for complex logic only (avoid obvious comments)
329
+ 4. Document provider usage patterns and dependencies
330
+
331
+ ## Documentation Style
332
+
333
+ - Use \`///\` for Dart doc comments
334
+ - Keep comments concise and focused on "why", not "what"
335
+ - Document parameters and return values for public methods
336
+ - Include usage examples in doc comments for providers
337
+
338
+ ## Example
339
+
340
+ \`\`\`dart
341
+ /// Manages user authentication state.
342
+ ///
343
+ /// Watches [authRepositoryProvider] for auth state changes.
344
+ /// Use [signIn] and [signOut] to manage the session.
345
+ ///
346
+ /// \`\`\`dart
347
+ /// final authState = ref.watch(authNotifierProvider);
348
+ /// \`\`\`
349
+ class AuthNotifier extends AsyncNotifier<User?> {
350
+ // ...
351
+ }
352
+ \`\`\`
353
+
354
+ ## Module Context
355
+
356
+ ${moduleContext}
357
+
358
+ ## Guidelines
359
+
360
+ - Only document code that has been reviewed and approved
361
+ - Do not refactor or change functionality — documentation only
362
+ - Prioritize public API documentation over internal implementation details`,
363
+ };
364
+ }
365
+ //# sourceMappingURL=agent-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-writer.js","sourceRoot":"","sources":["../../src/claude-setup/agent-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ProjectContext } from '../core/context.js';
2
+ /**
3
+ * Generates a comprehensive CLAUDE.md for a scaffolded Flutter project.
4
+ * The output is optimized for Claude Code and Agent Teams workflows.
5
+ */
6
+ export declare function generateClaudeMd(context: ProjectContext): string;
7
+ //# sourceMappingURL=claude-md-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-md-generator.d.ts","sourceRoot":"","sources":["../../src/claude-setup/claude-md-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAmBhE"}