appiq-solution 1.3.2 β†’ 1.4.2

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 (297) hide show
  1. package/#Tools/APPIQ-METHOD/.bmad-config.json +13 -0
  2. package/#Tools/APPIQ-METHOD/.cursor/commands/analyze.md +27 -0
  3. package/#Tools/APPIQ-METHOD/.cursor/commands/appiq.md +27 -0
  4. package/#Tools/APPIQ-METHOD/.cursor/commands/help.md +27 -0
  5. package/#Tools/APPIQ-METHOD/.cursor/commands/story.md +27 -0
  6. package/#Tools/APPIQ-METHOD/CHANGELOG.md +119 -173
  7. package/#Tools/APPIQ-METHOD/DEVELOPMENT_GUIDE.md +855 -0
  8. package/#Tools/APPIQ-METHOD/NPM-README.md +138 -0
  9. package/#Tools/APPIQ-METHOD/README.md +73 -105
  10. package/#Tools/APPIQ-METHOD/SMART_WORKFLOW_GUIDE.md +401 -0
  11. package/#Tools/APPIQ-METHOD/activate-appiq.js +81 -0
  12. package/#Tools/APPIQ-METHOD/appiq-solution/README.md +226 -0
  13. package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-flutter-mobile.yaml +114 -0
  14. package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-fullstack.yaml +11 -1
  15. package/#Tools/APPIQ-METHOD/bmad-core/agents/analyst.md +7 -3
  16. package/#Tools/APPIQ-METHOD/bmad-core/agents/architect.md +6 -0
  17. package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-orchestrator.md +0 -84
  18. package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-smart-launcher.md +170 -0
  19. package/#Tools/APPIQ-METHOD/bmad-core/agents/dev.md +31 -12
  20. package/#Tools/APPIQ-METHOD/bmad-core/agents/pm.md +10 -4
  21. package/#Tools/APPIQ-METHOD/bmad-core/agents/qa.md +17 -0
  22. package/#Tools/APPIQ-METHOD/bmad-core/agents/sm.md +8 -3
  23. package/#Tools/APPIQ-METHOD/bmad-core/agents/ux-expert.md +8 -3
  24. package/#Tools/APPIQ-METHOD/bmad-core/bmad-core/user-guide.md +0 -0
  25. package/#Tools/APPIQ-METHOD/bmad-core/checklists/security-validation-checklist.md +332 -0
  26. package/#Tools/APPIQ-METHOD/bmad-core/data/backend-services-integration.md +686 -0
  27. package/#Tools/APPIQ-METHOD/bmad-core/data/shadcn-ui-integration.md +388 -0
  28. package/#Tools/APPIQ-METHOD/bmad-core/data/technical-preferences.md +147 -1
  29. package/#Tools/APPIQ-METHOD/bmad-core/enhanced-ide-development-workflow.md +43 -0
  30. package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-flutter-story.md +197 -0
  31. package/#Tools/APPIQ-METHOD/bmad-core/tasks/intelligent-epic-creation.md +234 -0
  32. package/#Tools/APPIQ-METHOD/bmad-core/tasks/smart-project-analysis.md +289 -0
  33. package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-mobile-prd-tmpl.yaml +330 -0
  34. package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-story-tmpl.yaml +376 -0
  35. package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-ui-spec-tmpl.yaml +415 -0
  36. package/#Tools/APPIQ-METHOD/bmad-core/templates/fullstack-architecture-tmpl.yaml +12 -5
  37. package/#Tools/APPIQ-METHOD/bmad-core/user-guide.md +10 -9
  38. package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-fullstack.yaml +15 -1
  39. package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-fullstack.yaml +49 -5
  40. package/#Tools/APPIQ-METHOD/bmad-core/working-in-the-brownfield.md +56 -44
  41. package/#Tools/APPIQ-METHOD/commands/README.md +28 -0
  42. package/#Tools/APPIQ-METHOD/commands/analyze.md +27 -0
  43. package/#Tools/APPIQ-METHOD/commands/appiq.md +27 -0
  44. package/#Tools/APPIQ-METHOD/commands/help.md +27 -0
  45. package/#Tools/APPIQ-METHOD/commands/story.md +27 -0
  46. package/#Tools/APPIQ-METHOD/dist/agents/bmad-orchestrator.txt +0 -111
  47. package/#Tools/APPIQ-METHOD/dist/agents/pm.txt +2 -0
  48. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -111
  49. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -111
  50. package/#Tools/APPIQ-METHOD/dist/teams/team-all.txt +2 -111
  51. package/#Tools/APPIQ-METHOD/dist/teams/team-fullstack.txt +2 -111
  52. package/#Tools/APPIQ-METHOD/dist/teams/team-ide-minimal.txt +0 -111
  53. package/#Tools/APPIQ-METHOD/dist/teams/team-no-ui.txt +2 -111
  54. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +1 -1
  55. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/config.yaml +1 -1
  56. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agent-teams/flutter-mobile-team.yaml +23 -0
  57. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-cubit-agent.md +133 -0
  58. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-data-agent.md +160 -0
  59. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-domain-agent.md +153 -0
  60. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-ui-agent.md +122 -0
  61. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/shared-components-agent.md +161 -0
  62. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/checklists/flutter-story-dod-checklist.md +194 -0
  63. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/config.yaml +41 -0
  64. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/data/flutter-development-guidelines.md +551 -0
  65. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/templates/flutter-mobile-architecture-tmpl.yaml +530 -0
  66. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/workflows/flutter-ui-first-development.yaml +220 -0
  67. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/config.yaml +1 -1
  68. package/#Tools/APPIQ-METHOD/install-appiq.sh +41 -0
  69. package/#Tools/APPIQ-METHOD/package-lock.json +631 -0
  70. package/#Tools/APPIQ-METHOD/package.json +20 -69
  71. package/#Tools/APPIQ-METHOD/tasks/todo.md +275 -0
  72. package/#Tools/APPIQ-METHOD/tools/appiq-installer.js +2622 -0
  73. package/#Tools/APPIQ-METHOD/tools/bmad-npx-wrapper.js +5 -7
  74. package/#Tools/APPIQ-METHOD/tools/cli.js +3 -3
  75. package/#Tools/APPIQ-METHOD/tools/epic-solution-installer.js +538 -0
  76. package/#Tools/APPIQ-METHOD/tools/flattener/main.js +570 -0
  77. package/#Tools/APPIQ-METHOD/tools/installer/bin/bmad.js +15 -14
  78. package/#Tools/APPIQ-METHOD/tools/installer/lib/installer.js +28 -2
  79. package/#Tools/APPIQ-METHOD/tools/installer/package-lock.json +906 -0
  80. package/#Tools/APPIQ-METHOD/tools/installer/package.json +1 -1
  81. package/#Tools/APPIQ-METHOD/tools/setup-ide-commands.js +345 -0
  82. package/#Tools/APPIQ-METHOD/tools/smart-installer.js +589 -0
  83. package/README.md +73 -105
  84. package/package.json +20 -69
  85. package/tools/appiq-installer.js +2622 -0
  86. package/tools/bmad-npx-wrapper.js +5 -7
  87. package/tools/cli.js +3 -3
  88. package/tools/epic-solution-installer.js +538 -0
  89. package/tools/flattener/main.js +570 -0
  90. package/tools/installer/bin/bmad.js +15 -14
  91. package/tools/installer/lib/installer.js +28 -2
  92. package/tools/installer/package-lock.json +89 -89
  93. package/tools/installer/package.json +1 -1
  94. package/tools/setup-ide-commands.js +345 -0
  95. package/tools/smart-installer.js +589 -0
  96. package/#Tools/APPIQ-METHOD/appiq_start.md +0 -232
  97. package/#Tools/APPIQ-METHOD/deployment/DEPLOYMENT_GUIDE.md +0 -426
  98. package/#Tools/APPIQ-METHOD/deployment/GITHUB_RELEASE_GUIDE.md +0 -326
  99. package/#Tools/APPIQ-METHOD/deployment/README.md +0 -331
  100. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-all.yaml +0 -14
  101. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-fullstack.yaml +0 -18
  102. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-ide-minimal.yaml +0 -10
  103. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-no-ui.yaml +0 -13
  104. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/analyst.md +0 -81
  105. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/architect.md +0 -84
  106. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/bmad-master.md +0 -108
  107. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/bmad-orchestrator.md +0 -234
  108. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/dev.md +0 -76
  109. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/pm.md +0 -79
  110. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/po.md +0 -76
  111. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/qa.md +0 -69
  112. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/sm.md +0 -62
  113. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/ux-expert.md +0 -66
  114. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/architect-checklist.md +0 -443
  115. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/change-checklist.md +0 -182
  116. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/pm-checklist.md +0 -375
  117. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/po-master-checklist.md +0 -441
  118. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/story-dod-checklist.md +0 -101
  119. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/story-draft-checklist.md +0 -156
  120. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/bmad-kb.md +0 -803
  121. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/brainstorming-techniques.md +0 -36
  122. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/elicitation-methods.md +0 -134
  123. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/technical-preferences.md +0 -3
  124. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/advanced-elicitation.md +0 -117
  125. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/brownfield-create-epic.md +0 -160
  126. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/brownfield-create-story.md +0 -147
  127. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/correct-course.md +0 -70
  128. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-brownfield-story.md +0 -304
  129. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-deep-research-prompt.md +0 -289
  130. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-next-story.md +0 -112
  131. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/document-project.md +0 -341
  132. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/facilitate-brainstorming-session.md +0 -136
  133. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/generate-ai-frontend-prompt.md +0 -51
  134. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/index-docs.md +0 -179
  135. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/kb-mode-interaction.md +0 -75
  136. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/review-story.md +0 -145
  137. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/shard-doc.md +0 -187
  138. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/validate-next-story.md +0 -134
  139. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/architecture-tmpl.yaml +0 -650
  140. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
  141. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -476
  142. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brownfield-prd-tmpl.yaml +0 -280
  143. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/competitor-analysis-tmpl.yaml +0 -293
  144. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/front-end-architecture-tmpl.yaml +0 -206
  145. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/front-end-spec-tmpl.yaml +0 -349
  146. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -805
  147. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/market-research-tmpl.yaml +0 -252
  148. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/prd-tmpl.yaml +0 -202
  149. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/project-brief-tmpl.yaml +0 -221
  150. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/story-tmpl.yaml +0 -137
  151. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/user-guide.md +0 -250
  152. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-fullstack.yaml +0 -297
  153. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-service.yaml +0 -187
  154. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-ui.yaml +0 -197
  155. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-fullstack.yaml +0 -240
  156. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-service.yaml +0 -206
  157. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-ui.yaml +0 -235
  158. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/working-in-the-brownfield.md +0 -361
  159. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/README.md +0 -3
  160. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -13
  161. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -71
  162. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -78
  163. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -64
  164. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -201
  165. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -160
  166. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +0 -8
  167. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -254
  168. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -651
  169. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -111
  170. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -216
  171. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -308
  172. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -613
  173. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -356
  174. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -343
  175. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -253
  176. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
  177. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -183
  178. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -175
  179. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +0 -14
  180. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +0 -80
  181. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +0 -77
  182. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +0 -78
  183. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +0 -65
  184. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +0 -396
  185. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +0 -203
  186. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +0 -201
  187. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +0 -132
  188. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/config.yaml +0 -6
  189. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +0 -776
  190. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +0 -590
  191. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +0 -111
  192. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +0 -151
  193. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +0 -184
  194. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +0 -308
  195. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +0 -200
  196. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +0 -1030
  197. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +0 -356
  198. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +0 -705
  199. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +0 -256
  200. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
  201. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +0 -183
  202. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +0 -175
  203. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/README.md +0 -147
  204. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +0 -71
  205. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +0 -484
  206. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/config.yaml +0 -9
  207. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +0 -308
  208. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +0 -160
  209. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +0 -154
  210. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -424
  211. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -629
  212. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-cross-platform.yaml +0 -22
  213. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-flutter.yaml +0 -20
  214. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-minimal.yaml +0 -13
  215. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-react-native.yaml +0 -20
  216. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.md +0 -1487
  217. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.md +0 -279
  218. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.md +0 -649
  219. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.md +0 -339
  220. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.md +0 -622
  221. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.md +0 -1027
  222. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.md +0 -1451
  223. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/checklists/mobile-development-checklist.md +0 -490
  224. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/config.yaml +0 -54
  225. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/data/bmad-kb.md +0 -292
  226. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/data/flutter-development-guidelines.md +0 -483
  227. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/tasks/existing-app-analysis.md +0 -645
  228. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/tasks/platform-selection.md +0 -489
  229. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/templates/mobile-architecture-tmpl.yaml +0 -437
  230. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/templates/mobile-prd-tmpl.yaml +0 -408
  231. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-app-development-init.yaml +0 -555
  232. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-flutter.yaml +0 -336
  233. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-react-native.yaml +0 -345
  234. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-flutter.yaml +0 -281
  235. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-react-native.yaml +0 -283
  236. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-platform-selection.yaml +0 -404
  237. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/appiq.md +0 -273
  238. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/claude-appiq.md +0 -294
  239. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/cursor-appiq.md +0 -516
  240. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/universal-appiq.md +0 -448
  241. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/windsurf-appiq.md +0 -698
  242. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/start.md +0 -211
  243. package/#Tools/APPIQ-METHOD/deployment/build-release.sh +0 -449
  244. package/#Tools/APPIQ-METHOD/deployment/create-release.sh +0 -196
  245. package/#Tools/APPIQ-METHOD/deployment/dist/appiq_installer.sh +0 -678
  246. package/#Tools/APPIQ-METHOD/deployment/docs/main_prd.md +0 -36
  247. package/#Tools/APPIQ-METHOD/deployment/init_appiq.sh +0 -805
  248. package/#Tools/APPIQ-METHOD/deployment/init_appiq_v2.sh +0 -678
  249. package/#Tools/APPIQ-METHOD/deployment/installers/appiq-global.sh +0 -91
  250. package/#Tools/APPIQ-METHOD/deployment/installers/claude-integration.sh +0 -281
  251. package/#Tools/APPIQ-METHOD/deployment/installers/cursor-integration.sh +0 -257
  252. package/#Tools/APPIQ-METHOD/deployment/installers/terminal-integration.sh +0 -645
  253. package/#Tools/APPIQ-METHOD/deployment/installers/windsurf-integration.sh +0 -350
  254. package/#Tools/APPIQ-METHOD/deployment/package-v2.sh +0 -97
  255. package/#Tools/APPIQ-METHOD/deployment/package.sh +0 -363
  256. package/#Tools/APPIQ-METHOD/deployment/quick-install.sh +0 -57
  257. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.txt +0 -1530
  258. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.txt +0 -322
  259. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.txt +0 -692
  260. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.txt +0 -382
  261. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.txt +0 -665
  262. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.txt +0 -1070
  263. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.txt +0 -1494
  264. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/teams/mobile-team-cross-platform.txt +0 -15613
  265. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-cross-platform.yaml +0 -22
  266. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-flutter.yaml +0 -20
  267. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-minimal.yaml +0 -13
  268. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-react-native.yaml +0 -20
  269. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.md +0 -1487
  270. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.md +0 -279
  271. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.md +0 -649
  272. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.md +0 -339
  273. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.md +0 -622
  274. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.md +0 -1027
  275. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.md +0 -1451
  276. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/checklists/mobile-development-checklist.md +0 -490
  277. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/config.yaml +0 -54
  278. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/data/bmad-kb.md +0 -292
  279. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/data/flutter-development-guidelines.md +0 -483
  280. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/tasks/existing-app-analysis.md +0 -645
  281. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/tasks/platform-selection.md +0 -489
  282. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/templates/mobile-architecture-tmpl.yaml +0 -437
  283. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/templates/mobile-prd-tmpl.yaml +0 -408
  284. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-app-development-init.yaml +0 -555
  285. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-flutter.yaml +0 -336
  286. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-react-native.yaml +0 -345
  287. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-flutter.yaml +0 -281
  288. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-react-native.yaml +0 -283
  289. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-platform-selection.yaml +0 -404
  290. package/#Tools/APPIQ-METHOD/package-bmad-backup.json +0 -78
  291. package/#Tools/APPIQ-METHOD/slash-commands/appiq.md +0 -273
  292. package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/claude-appiq.md +0 -294
  293. package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/cursor-appiq.md +0 -516
  294. package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/universal-appiq.md +0 -448
  295. package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/windsurf-appiq.md +0 -698
  296. package/#Tools/APPIQ-METHOD/slash-commands/start.md +0 -211
  297. /package/#Tools/APPIQ-METHOD/{deployment/build/bmad-core/core-config.yaml β†’ bmad-core/core-config.yaml.bak} +0 -0
@@ -0,0 +1,855 @@
1
+ # Flutter Clean Architecture Development Guide
2
+
3
+ ## πŸ“‹ Project Overview
4
+
5
+ **NX SourceCode** ist eine umfassende Flutter-Anwendung, die Clean Architecture Prinzipien implementiert und als soziale Plattform mit vielfΓ€ltigen Features fungiert. Das Projekt demonstriert professionelle Flutter-Entwicklung mit skalierbarer, testbarer und wartbarer Code-Architektur.
6
+
7
+ ## πŸ—οΈ Architecture Overview
8
+
9
+ ### Clean Architecture Layers
10
+
11
+ ```
12
+ lib/
13
+ β”œβ”€β”€ core/ # Shared Core Functionality
14
+ β”‚ β”œβ”€β”€ constants/ # API endpoints, app constants
15
+ β”‚ β”œβ”€β”€ di/ # Dependency injection setup
16
+ β”‚ β”œβ”€β”€ error/ # Error handling (failures, exceptions)
17
+ β”‚ β”œβ”€β”€ network/ # Networking setup (API client, network info)
18
+ β”‚ └── local_storage/ # Hive service for local storage
19
+ β”œβ”€β”€ features/ # Feature-based modules (17 Features)
20
+ β”‚ └── [feature_name]/ # Individual features
21
+ β”‚ β”œβ”€β”€ data/ # Data layer
22
+ β”‚ β”‚ β”œβ”€β”€ datasources/ # Remote/Local data sources
23
+ β”‚ β”‚ β”œβ”€β”€ models/ # Data models with JSON serialization
24
+ β”‚ β”‚ └── repositories/ # Repository implementations
25
+ β”‚ β”œβ”€β”€ domain/ # Domain layer (Business Logic)
26
+ β”‚ β”‚ β”œβ”€β”€ entities/ # Business entities
27
+ β”‚ β”‚ β”œβ”€β”€ repositories/ # Repository interfaces
28
+ β”‚ β”‚ └── usecases/ # Business use cases
29
+ β”‚ └── presentation/ # Presentation layer (UI)
30
+ β”‚ β”œβ”€β”€ cubit/ # State management (Cubit + State)
31
+ β”‚ β”œβ”€β”€ pages/ # UI pages/screens
32
+ β”‚ └── widgets/ # Feature-specific widgets
33
+ β”œβ”€β”€ shared/ # Shared UI components and utilities
34
+ β”‚ β”œβ”€β”€ theme/ # Theme management
35
+ β”‚ └── widgets/ # Reusable widgets (BaseScaffold, etc.)
36
+ └── l10n/ # Localization files (.arb)
37
+ ```
38
+
39
+ ## 🎯 Development Patterns & Style Guide
40
+
41
+ ### 1. Entity Pattern (Domain Layer)
42
+
43
+ **Struktur:**
44
+ - Extends `Equatable` fΓΌr Value Equality
45
+ - Immutable mit `const` Konstruktoren
46
+ - `copyWith` Methoden fΓΌr Updates
47
+ - Alle Properties in `props` Liste
48
+
49
+ ```dart
50
+ class UserEntity extends Equatable {
51
+ const UserEntity({
52
+ required this.id,
53
+ required this.name,
54
+ required this.email,
55
+ this.bio,
56
+ this.avatarUrl,
57
+ this.createdAt,
58
+ this.updatedAt,
59
+ });
60
+
61
+ final String id;
62
+ final String name;
63
+ final String email;
64
+ final String? bio;
65
+ final String? avatarUrl;
66
+ final DateTime? createdAt;
67
+ final DateTime? updatedAt;
68
+
69
+ @override
70
+ List<Object?> get props => [
71
+ id, name, email, bio, avatarUrl, createdAt, updatedAt,
72
+ ];
73
+
74
+ UserEntity copyWith({
75
+ String? id,
76
+ String? name,
77
+ String? email,
78
+ String? bio,
79
+ String? avatarUrl,
80
+ DateTime? createdAt,
81
+ DateTime? updatedAt,
82
+ }) {
83
+ return UserEntity(
84
+ id: id ?? this.id,
85
+ name: name ?? this.name,
86
+ email: email ?? this.email,
87
+ bio: bio ?? this.bio,
88
+ avatarUrl: avatarUrl ?? this.avatarUrl,
89
+ createdAt: createdAt ?? this.createdAt,
90
+ updatedAt: updatedAt ?? this.updatedAt,
91
+ );
92
+ }
93
+ }
94
+ ```
95
+
96
+ ### 2. Model Pattern (Data Layer)
97
+
98
+ **Struktur:**
99
+ - `@freezed` Annotation fΓΌr Immutability
100
+ - JSON Serialization mit `json_serializable`
101
+ - `@JsonKey` fΓΌr API Field Mapping
102
+ - Extension Methods fΓΌr Entity Conversion
103
+
104
+ ```dart
105
+ import 'package:freezed_annotation/freezed_annotation.dart';
106
+ import '../../domain/entities/user_entity.dart';
107
+
108
+ part 'user_model.freezed.dart';
109
+ part 'user_model.g.dart';
110
+
111
+ @freezed
112
+ class UserModel with _$UserModel {
113
+ const factory UserModel({
114
+ required String id,
115
+ required String name,
116
+ required String email,
117
+ String? bio,
118
+ @JsonKey(name: 'avatar_url') String? avatarUrl,
119
+ @JsonKey(name: 'created_at') String? createdAt,
120
+ @JsonKey(name: 'updated_at') String? updatedAt,
121
+ }) = _UserModel;
122
+
123
+ factory UserModel.fromJson(Map<String, dynamic> json) =>
124
+ _$UserModelFromJson(json);
125
+ }
126
+
127
+ extension UserModelExtension on UserModel {
128
+ UserEntity toEntity() {
129
+ return UserEntity(
130
+ id: id,
131
+ name: name,
132
+ email: email,
133
+ bio: bio,
134
+ avatarUrl: avatarUrl,
135
+ createdAt: createdAt != null ? DateTime.tryParse(createdAt!) : null,
136
+ updatedAt: updatedAt != null ? DateTime.tryParse(updatedAt!) : null,
137
+ );
138
+ }
139
+ }
140
+
141
+ extension UserEntityExtension on UserEntity {
142
+ UserModel toModel() {
143
+ return UserModel(
144
+ id: id,
145
+ name: name,
146
+ email: email,
147
+ bio: bio,
148
+ avatarUrl: avatarUrl,
149
+ createdAt: createdAt?.toIso8601String(),
150
+ updatedAt: updatedAt?.toIso8601String(),
151
+ );
152
+ }
153
+ }
154
+ ```
155
+
156
+ ### 3. Repository Pattern
157
+
158
+ **Interface (Domain Layer):**
159
+ ```dart
160
+ import 'package:dartz/dartz.dart';
161
+ import '../../../../core/error/failures.dart';
162
+ import '../entities/user_entity.dart';
163
+
164
+ abstract class UserRepository {
165
+ Future<Either<Failure, List<UserEntity>>> getUsers();
166
+ Future<Either<Failure, UserEntity>> getUserById(String id);
167
+ Future<Either<Failure, UserEntity>> createUser(UserEntity user);
168
+ Future<Either<Failure, UserEntity>> updateUser(UserEntity user);
169
+ Future<Either<Failure, void>> deleteUser(String id);
170
+ Future<Either<Failure, List<UserEntity>>> searchUsers(String query);
171
+ }
172
+ ```
173
+
174
+ **Implementation (Data Layer):**
175
+ ```dart
176
+ import 'package:dartz/dartz.dart';
177
+ import 'package:injectable/injectable.dart';
178
+ import '../../../../core/error/exceptions.dart';
179
+ import '../../../../core/error/failures.dart';
180
+ import '../../../../core/network/network_info.dart';
181
+
182
+ @LazySingleton(as: UserRepository)
183
+ class UserRepositoryImpl implements UserRepository {
184
+ const UserRepositoryImpl(
185
+ this._remoteDataSource,
186
+ this._networkInfo,
187
+ );
188
+
189
+ final UserRemoteDataSource _remoteDataSource;
190
+ final NetworkInfo _networkInfo;
191
+
192
+ @override
193
+ Future<Either<Failure, List<UserEntity>>> getUsers() async {
194
+ if (await _networkInfo.isConnected) {
195
+ try {
196
+ final users = await _remoteDataSource.getUsers();
197
+ return Right(users.map((model) => model.toEntity()).toList());
198
+ } on ServerException catch (e) {
199
+ return Left(ServerFailure(e.message));
200
+ } on NetworkException catch (e) {
201
+ return Left(NetworkFailure(e.message));
202
+ } catch (e) {
203
+ return Left(UnknownFailure(e.toString()));
204
+ }
205
+ } else {
206
+ return const Left(NetworkFailure('No internet connection'));
207
+ }
208
+ }
209
+ }
210
+ ```
211
+
212
+ ### 4. UseCase Pattern
213
+
214
+ **Struktur:**
215
+ - `@injectable` fΓΌr Dependency Injection
216
+ - `call` Methode als Main Entry Point
217
+ - Business Logic & Validation
218
+ - `Either<Failure, Success>` Return Type
219
+
220
+ ```dart
221
+ import 'package:dartz/dartz.dart';
222
+ import 'package:injectable/injectable.dart';
223
+ import '../../../../core/error/failures.dart';
224
+ import '../entities/user_entity.dart';
225
+ import '../repositories/user_repository.dart';
226
+
227
+ @injectable
228
+ class CreateUserUseCase {
229
+ const CreateUserUseCase(this._repository);
230
+
231
+ final UserRepository _repository;
232
+
233
+ Future<Either<Failure, UserEntity>> call(UserEntity user) async {
234
+ // Validate user data
235
+ final validationResult = _validateUser(user);
236
+ if (validationResult != null) {
237
+ return Left(ValidationFailure(validationResult));
238
+ }
239
+
240
+ return await _repository.createUser(user);
241
+ }
242
+
243
+ String? _validateUser(UserEntity user) {
244
+ if (user.name.trim().isEmpty) {
245
+ return 'Name is required';
246
+ }
247
+
248
+ if (user.email.trim().isEmpty) {
249
+ return 'Email is required';
250
+ }
251
+
252
+ if (!_isValidEmail(user.email)) {
253
+ return 'Please enter a valid email address';
254
+ }
255
+
256
+ return null;
257
+ }
258
+
259
+ bool _isValidEmail(String email) {
260
+ return RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$').hasMatch(email);
261
+ }
262
+ }
263
+ ```
264
+
265
+ ### 5. State Management Pattern
266
+
267
+ **State Class:**
268
+ ```dart
269
+ import 'package:equatable/equatable.dart';
270
+ import '../../domain/entities/user_entity.dart';
271
+
272
+ enum UserStatus {
273
+ initial,
274
+ loading,
275
+ success,
276
+ failure,
277
+ }
278
+
279
+ class UserState extends Equatable {
280
+ const UserState({
281
+ this.status = UserStatus.initial,
282
+ this.users = const [],
283
+ this.selectedUser,
284
+ this.message,
285
+ });
286
+
287
+ final UserStatus status;
288
+ final List<UserEntity> users;
289
+ final UserEntity? selectedUser;
290
+ final String? message;
291
+
292
+ UserState copyWith({
293
+ UserStatus? status,
294
+ List<UserEntity>? users,
295
+ UserEntity? selectedUser,
296
+ String? message,
297
+ }) {
298
+ return UserState(
299
+ status: status ?? this.status,
300
+ users: users ?? this.users,
301
+ selectedUser: selectedUser ?? this.selectedUser,
302
+ message: message ?? this.message,
303
+ );
304
+ }
305
+
306
+ @override
307
+ List<Object?> get props => [status, users, selectedUser, message];
308
+ }
309
+ ```
310
+
311
+ **Cubit Implementation:**
312
+ ```dart
313
+ import 'package:flutter_bloc/flutter_bloc.dart';
314
+ import 'package:injectable/injectable.dart';
315
+ import '../../domain/entities/user_entity.dart';
316
+ import '../../domain/usecases/get_users_usecase.dart';
317
+ import 'user_state.dart';
318
+
319
+ @injectable
320
+ class UserCubit extends Cubit<UserState> {
321
+ UserCubit(
322
+ this._getUsersUseCase,
323
+ this._getUserByIdUseCase,
324
+ this._createUserUseCase,
325
+ this._updateUserUseCase,
326
+ this._deleteUserUseCase,
327
+ this._searchUsersUseCase,
328
+ ) : super(const UserState());
329
+
330
+ final GetUsersUseCase _getUsersUseCase;
331
+ final GetUserByIdUseCase _getUserByIdUseCase;
332
+ final CreateUserUseCase _createUserUseCase;
333
+ final UpdateUserUseCase _updateUserUseCase;
334
+ final DeleteUserUseCase _deleteUserUseCase;
335
+ final SearchUsersUseCase _searchUsersUseCase;
336
+
337
+ Future<void> getUsers() async {
338
+ emit(state.copyWith(status: UserStatus.loading));
339
+
340
+ final result = await _getUsersUseCase();
341
+ result.fold(
342
+ (failure) => emit(state.copyWith(
343
+ status: UserStatus.failure,
344
+ message: failure.message ?? 'Failed to load users',
345
+ )),
346
+ (users) => emit(state.copyWith(
347
+ status: UserStatus.success,
348
+ users: users,
349
+ )),
350
+ );
351
+ }
352
+
353
+ Future<void> createUser(UserEntity user) async {
354
+ emit(state.copyWith(status: UserStatus.loading));
355
+
356
+ final result = await _createUserUseCase(user);
357
+ result.fold(
358
+ (failure) => emit(state.copyWith(
359
+ status: UserStatus.failure,
360
+ message: failure.message ?? 'Failed to create user',
361
+ )),
362
+ (createdUser) {
363
+ final updatedUsers = [...state.users, createdUser];
364
+ emit(state.copyWith(
365
+ status: UserStatus.success,
366
+ users: updatedUsers,
367
+ ));
368
+ },
369
+ );
370
+ }
371
+ }
372
+ ```
373
+
374
+ ### 6. DataSource Pattern
375
+
376
+ **Abstract Class:**
377
+ ```dart
378
+ abstract class UserRemoteDataSource {
379
+ Future<List<UserModel>> getUsers();
380
+ Future<UserModel> getUserById(String id);
381
+ Future<UserModel> createUser(UserModel user);
382
+ Future<UserModel> updateUser(UserModel user);
383
+ Future<void> deleteUser(String id);
384
+ Future<List<UserModel>> searchUsers(String query);
385
+ }
386
+ ```
387
+
388
+ **Implementation:**
389
+ ```dart
390
+ import 'package:injectable/injectable.dart';
391
+ import '../../../../core/constants/api_constants.dart';
392
+ import '../../../../core/network/api_client.dart';
393
+ import '../models/user_model.dart';
394
+
395
+ @LazySingleton(as: UserRemoteDataSource)
396
+ class UserRemoteDataSourceImpl implements UserRemoteDataSource {
397
+ const UserRemoteDataSourceImpl(this._apiClient);
398
+
399
+ final ApiClient _apiClient;
400
+
401
+ @override
402
+ Future<List<UserModel>> getUsers() async {
403
+ final response = await _apiClient.get(ApiConstants.users);
404
+ final List<dynamic> usersJson = response.data['data'] ?? response.data;
405
+ return usersJson.map((json) => UserModel.fromJson(json)).toList();
406
+ }
407
+
408
+ @override
409
+ Future<UserModel> getUserById(String id) async {
410
+ final response = await _apiClient.get('${ApiConstants.users}/$id');
411
+ return UserModel.fromJson(response.data['data'] ?? response.data);
412
+ }
413
+
414
+ @override
415
+ Future<UserModel> createUser(UserModel user) async {
416
+ final response = await _apiClient.post(
417
+ ApiConstants.users,
418
+ data: user.toJson(),
419
+ );
420
+ return UserModel.fromJson(response.data['data'] ?? response.data);
421
+ }
422
+ }
423
+ ```
424
+
425
+ ### 7. UI Page Pattern
426
+
427
+ ```dart
428
+ import 'package:flutter/material.dart';
429
+ import 'package:flutter_bloc/flutter_bloc.dart';
430
+ import '../../../../core/di/injection_container.dart';
431
+ import '../../../../shared/widgets/base_scaffold.dart';
432
+ import '../../../../shared/widgets/loading_widget.dart';
433
+ import '../../../../shared/widgets/error_widget.dart';
434
+ import '../cubit/user_cubit.dart';
435
+ import '../cubit/user_state.dart';
436
+ import '../widgets/user_list_item.dart';
437
+
438
+ class UserListPage extends StatelessWidget {
439
+ const UserListPage({super.key});
440
+
441
+ @override
442
+ Widget build(BuildContext context) {
443
+ return BlocProvider(
444
+ create: (context) => getIt<UserCubit>()..getUsers(),
445
+ child: const UserListView(),
446
+ );
447
+ }
448
+ }
449
+
450
+ class UserListView extends StatelessWidget {
451
+ const UserListView({super.key});
452
+
453
+ @override
454
+ Widget build(BuildContext context) {
455
+ return BaseScaffold(
456
+ title: 'Users',
457
+ floatingActionButton: FloatingActionButton(
458
+ onPressed: () => _showCreateUserDialog(context),
459
+ child: const Icon(Icons.add),
460
+ ),
461
+ body: BlocConsumer<UserCubit, UserState>(
462
+ listener: (context, state) {
463
+ if (state.status == UserStatus.failure && state.message != null) {
464
+ ScaffoldMessenger.of(context).showSnackBar(
465
+ SnackBar(
466
+ content: Text(state.message!),
467
+ backgroundColor: Theme.of(context).colorScheme.error,
468
+ ),
469
+ );
470
+ }
471
+ },
472
+ builder: (context, state) {
473
+ return switch (state.status) {
474
+ UserStatus.loading => const LoadingWidget(),
475
+ UserStatus.failure => CustomErrorWidget(
476
+ message: state.message ?? 'Unknown error occurred',
477
+ onRetry: () => context.read<UserCubit>().getUsers(),
478
+ ),
479
+ UserStatus.success => RefreshIndicator(
480
+ onRefresh: () => context.read<UserCubit>().getUsers(),
481
+ child: ListView.builder(
482
+ itemCount: state.users.length,
483
+ itemBuilder: (context, index) {
484
+ return UserListItem(
485
+ user: state.users[index],
486
+ onTap: () => _navigateToUserDetail(context, state.users[index]),
487
+ );
488
+ },
489
+ ),
490
+ ),
491
+ _ => const SizedBox.shrink(),
492
+ };
493
+ },
494
+ ),
495
+ );
496
+ }
497
+ }
498
+ ```
499
+
500
+ ## πŸ› οΈ Technology Stack
501
+
502
+ ### Core Dependencies
503
+ - **State Management**: `flutter_bloc` ^8.1.6
504
+ - **Dependency Injection**: `get_it` ^8.0.2 + `injectable` ^2.5.0
505
+ - **Code Generation**: `freezed` ^2.5.7 + `json_serializable` ^6.8.0
506
+ - **Networking**: `dio` ^5.7.0
507
+ - **Local Storage**: `hive` ^2.2.3
508
+ - **Error Handling**: `dartz` ^0.10.1
509
+ - **Value Equality**: `equatable` ^2.0.7
510
+
511
+ ### Dev Dependencies
512
+ - **Build Runner**: `build_runner` ^2.4.13
513
+ - **Code Generation**: `injectable_generator` ^2.6.2
514
+ - **Testing**: `bloc_test` ^9.1.7 + `mocktail` ^1.0.4
515
+
516
+ ## 🌐 Networking Layer
517
+
518
+ ### API Client Implementation
519
+ ```dart
520
+ import 'package:dio/dio.dart';
521
+ import 'package:injectable/injectable.dart';
522
+ import '../constants/api_constants.dart';
523
+ import '../error/exceptions.dart';
524
+
525
+ @LazySingleton()
526
+ class ApiClient {
527
+ late final Dio _dio;
528
+
529
+ ApiClient() {
530
+ _dio = Dio(
531
+ BaseOptions(
532
+ baseUrl: ApiConstants.baseUrl,
533
+ connectTimeout: const Duration(seconds: 30),
534
+ receiveTimeout: const Duration(seconds: 30),
535
+ headers: {
536
+ 'Content-Type': 'application/json',
537
+ 'Accept': 'application/json',
538
+ },
539
+ ),
540
+ );
541
+
542
+ _dio.interceptors.add(
543
+ InterceptorsWrapper(
544
+ onError: (error, handler) {
545
+ final exception = _handleDioError(error);
546
+ handler.reject(DioException(
547
+ requestOptions: error.requestOptions,
548
+ error: exception,
549
+ ));
550
+ },
551
+ ),
552
+ );
553
+ }
554
+
555
+ Exception _handleDioError(DioException error) {
556
+ switch (error.type) {
557
+ case DioExceptionType.connectionTimeout:
558
+ case DioExceptionType.sendTimeout:
559
+ case DioExceptionType.receiveTimeout:
560
+ return const NetworkException('Connection timeout');
561
+ case DioExceptionType.badResponse:
562
+ final statusCode = error.response?.statusCode;
563
+ switch (statusCode) {
564
+ case 400:
565
+ return ValidationException(
566
+ error.response?.data?['message'] ?? 'Bad request',
567
+ );
568
+ case 401:
569
+ return const AuthenticationException('Unauthorized');
570
+ case 403:
571
+ return const AuthorizationException('Forbidden');
572
+ case 404:
573
+ return const NotFoundException('Resource not found');
574
+ case 500:
575
+ default:
576
+ return ServerException(
577
+ error.response?.data?['message'] ?? 'Server error',
578
+ );
579
+ }
580
+ case DioExceptionType.connectionError:
581
+ return const NetworkException('No internet connection');
582
+ default:
583
+ return ServerException(error.message);
584
+ }
585
+ }
586
+ }
587
+ ```
588
+
589
+ ## 🚨 Error Handling System
590
+
591
+ ### Failure Types
592
+ ```dart
593
+ import 'package:equatable/equatable.dart';
594
+
595
+ abstract class Failure extends Equatable {
596
+ const Failure([this.message]);
597
+ final String? message;
598
+
599
+ @override
600
+ List<Object?> get props => [message];
601
+ }
602
+
603
+ class ServerFailure extends Failure {
604
+ const ServerFailure([super.message]);
605
+ }
606
+
607
+ class NetworkFailure extends Failure {
608
+ const NetworkFailure([super.message]);
609
+ }
610
+
611
+ class ValidationFailure extends Failure {
612
+ const ValidationFailure([super.message]);
613
+ }
614
+
615
+ class AuthenticationFailure extends Failure {
616
+ const AuthenticationFailure([super.message]);
617
+ }
618
+
619
+ // ... weitere Failure Types
620
+ ```
621
+
622
+ ### Exception Types
623
+ ```dart
624
+ class ServerException implements Exception {
625
+ const ServerException([this.message]);
626
+ final String? message;
627
+
628
+ @override
629
+ String toString() => 'ServerException: ${message ?? 'Unknown server error'}';
630
+ }
631
+
632
+ class NetworkException implements Exception {
633
+ const NetworkException([this.message]);
634
+ final String? message;
635
+
636
+ @override
637
+ String toString() => 'NetworkException: ${message ?? 'Network error'}';
638
+ }
639
+
640
+ // ... weitere Exception Types
641
+ ```
642
+
643
+ ## 🎨 UI/UX Patterns
644
+
645
+ ### Shared Components
646
+
647
+ **BaseScaffold - Responsive Layout:**
648
+ ```dart
649
+ class BaseScaffold extends StatelessWidget {
650
+ const BaseScaffold({
651
+ super.key,
652
+ required this.body,
653
+ this.title,
654
+ this.actions,
655
+ this.floatingActionButton,
656
+ this.safeArea = true,
657
+ });
658
+
659
+ @override
660
+ Widget build(BuildContext context) {
661
+ final mediaQuery = MediaQuery.of(context);
662
+ final isTablet = mediaQuery.size.width >= 768;
663
+ final isDesktop = mediaQuery.size.width >= 1024;
664
+
665
+ Widget bodyWidget = body;
666
+
667
+ // Responsive constraints
668
+ if (isDesktop) {
669
+ bodyWidget = Center(
670
+ child: ConstrainedBox(
671
+ constraints: const BoxConstraints(maxWidth: 1200),
672
+ child: bodyWidget,
673
+ ),
674
+ );
675
+ } else if (isTablet) {
676
+ bodyWidget = Padding(
677
+ padding: const EdgeInsets.symmetric(horizontal: 32),
678
+ child: bodyWidget,
679
+ );
680
+ }
681
+
682
+ return Scaffold(
683
+ appBar: title != null ? AppBar(title: Text(title!)) : null,
684
+ body: safeArea ? SafeArea(child: bodyWidget) : bodyWidget,
685
+ floatingActionButton: floatingActionButton,
686
+ );
687
+ }
688
+ }
689
+ ```
690
+
691
+ ### Theme System
692
+ ```dart
693
+ enum ThemeType { light, dark, custom }
694
+
695
+ class ThemeCubit extends Cubit<ThemeState> {
696
+ ThemeCubit() : super(const ThemeState());
697
+
698
+ void changeTheme(ThemeType themeType) {
699
+ emit(state.copyWith(themeType: themeType));
700
+ // Save to local storage
701
+ }
702
+
703
+ void toggleTheme() {
704
+ final newTheme = switch (state.themeType) {
705
+ ThemeType.light => ThemeType.dark,
706
+ ThemeType.dark => ThemeType.custom,
707
+ ThemeType.custom => ThemeType.light,
708
+ };
709
+ changeTheme(newTheme);
710
+ }
711
+ }
712
+ ```
713
+
714
+ ## πŸ“ Feature Template Structure
715
+
716
+ ### FΓΌr jedes neue Feature:
717
+
718
+ ```
719
+ feature_name/
720
+ β”œβ”€β”€ data/
721
+ β”‚ β”œβ”€β”€ datasources/
722
+ β”‚ β”‚ └── feature_remote_datasource.dart
723
+ β”‚ β”œβ”€β”€ models/
724
+ β”‚ β”‚ └── feature_model.dart
725
+ β”‚ └── repositories/
726
+ β”‚ └── feature_repository_impl.dart
727
+ β”œβ”€β”€ domain/
728
+ β”‚ β”œβ”€β”€ entities/
729
+ β”‚ β”‚ └── feature_entity.dart
730
+ β”‚ β”œβ”€β”€ repositories/
731
+ β”‚ β”‚ └── feature_repository.dart
732
+ β”‚ └── usecases/
733
+ β”‚ β”œβ”€β”€ get_features_usecase.dart
734
+ β”‚ β”œβ”€β”€ get_feature_by_id_usecase.dart
735
+ β”‚ β”œβ”€β”€ create_feature_usecase.dart
736
+ β”‚ β”œβ”€β”€ update_feature_usecase.dart
737
+ β”‚ β”œβ”€β”€ delete_feature_usecase.dart
738
+ β”‚ └── search_features_usecase.dart
739
+ └── presentation/
740
+ β”œβ”€β”€ cubit/
741
+ β”‚ β”œβ”€β”€ feature_cubit.dart
742
+ β”‚ └── feature_state.dart
743
+ β”œβ”€β”€ pages/
744
+ β”‚ β”œβ”€β”€ feature_list_page.dart
745
+ β”‚ └── feature_detail_page.dart
746
+ └── widgets/
747
+ └── feature_list_item.dart
748
+ ```
749
+
750
+ ## πŸ”§ Development Commands
751
+
752
+ ### Code Generation
753
+ ```bash
754
+ # Generate all code (models, DI, etc.)
755
+ flutter packages pub run build_runner build --delete-conflicting-outputs
756
+
757
+ # Generate localization files
758
+ flutter gen-l10n
759
+
760
+ # Clean ARB files
761
+ dart run scripts/clean_arb_files.dart
762
+ ```
763
+
764
+ ### Testing
765
+ ```bash
766
+ # Run all tests
767
+ flutter test
768
+
769
+ # Run with coverage
770
+ flutter test --coverage
771
+ ```
772
+
773
+ ## πŸ“‹ Naming Conventions
774
+
775
+ ### Files & Directories
776
+ - **Files**: `snake_case.dart`
777
+ - **Directories**: `snake_case/`
778
+ - **Assets**: `snake_case.png`
779
+
780
+ ### Code
781
+ - **Classes**: `PascalCase`
782
+ - **Variables & Methods**: `camelCase`
783
+ - **Constants**: `SCREAMING_SNAKE_CASE` in static classes
784
+ - **Private Members**: `_leadingUnderscore`
785
+
786
+ ### Feature Naming Pattern
787
+ - **Entity**: `FeatureEntity`
788
+ - **Model**: `FeatureModel`
789
+ - **Repository Interface**: `FeatureRepository`
790
+ - **Repository Implementation**: `FeatureRepositoryImpl`
791
+ - **DataSource Interface**: `FeatureRemoteDataSource`
792
+ - **DataSource Implementation**: `FeatureRemoteDataSourceImpl`
793
+ - **UseCase**: `GetFeatureUseCase`, `CreateFeatureUseCase`, etc.
794
+ - **Cubit**: `FeatureCubit`
795
+ - **State**: `FeatureState`
796
+ - **Page**: `FeatureListPage`, `FeatureDetailPage`
797
+
798
+ ## 🎯 Development Guidelines
799
+
800
+ ### Best Practices
801
+ 1. **Immutability**: Alle Data Classes sind immutable
802
+ 2. **Single Responsibility**: Jede Klasse hat eine einzige Verantwortung
803
+ 3. **Dependency Injection**: Alle Dependencies werden injected
804
+ 4. **Error Handling**: Consistent Either<Failure, Success> Pattern
805
+ 5. **Testing**: Jeder Use Case und Repository wird getestet
806
+ 6. **Documentation**: Alle Public APIs sind dokumentiert
807
+
808
+ ### Code Quality Checks
809
+ - **Linting**: `flutter_lints` fΓΌr Code-QualitΓ€t
810
+ - **Type Safety**: Null Safety aktiviert
811
+ - **Build Runner**: RegelmÀßige Code-Generierung
812
+ - **Testing**: Unit Tests fΓΌr Business Logic
813
+
814
+ ## πŸ“š Implemented Features
815
+
816
+ ### Core Features (17 Total)
817
+ 1. **user** - User Management
818
+ 2. **auth** - Authentication & Authorization
819
+ 3. **profile** - User Profiles & Settings
820
+ 4. **chat** - Real-time Messaging
821
+ 5. **forum** - Discussion Forums
822
+ 6. **livestream** - Live Streaming
823
+ 7. **media** - Photo/Video Management
824
+ 8. **learning_hub** - Educational Content
825
+ 9. **shop** - Product Catalog
826
+ 10. **sponsorship** - Sponsorship Requests
827
+ 11. **coin_system** - Virtual Currency
828
+ 12. **support** - Customer Support
829
+ 13. **partners** - Partner Management
830
+ 14. **membership** - Membership System
831
+ 15. **legal_settings** - Legal Compliance
832
+ 16. **admin_panel** - Administration
833
+ 17. **admin_panel** - Admin Interface
834
+
835
+ ## πŸš€ Getting Started Template
836
+
837
+ ### Neues Feature erstellen:
838
+
839
+ 1. **Feature Ordner erstellen:**
840
+ ```bash
841
+ mkdir -p lib/features/new_feature/{data/{datasources,models,repositories},domain/{entities,repositories,usecases},presentation/{cubit,pages,widgets}}
842
+ ```
843
+
844
+ 2. **Entity definieren** (Domain Layer)
845
+ 3. **Repository Interface erstellen** (Domain Layer)
846
+ 4. **Use Cases implementieren** (Domain Layer)
847
+ 5. **Model mit Freezed erstellen** (Data Layer)
848
+ 6. **DataSource implementieren** (Data Layer)
849
+ 7. **Repository implementieren** (Data Layer)
850
+ 8. **State und Cubit erstellen** (Presentation Layer)
851
+ 9. **Pages und Widgets erstellen** (Presentation Layer)
852
+ 10. **Dependency Injection registrieren**
853
+ 11. **Build Runner ausfΓΌhren**
854
+
855
+ Diese Anleitung dient als umfassende Referenz fΓΌr die Entwicklung neuer Features und das Training von AI-Agenten auf Basis der etablierten Architektur und Patterns.