appiq-solution 1.3.3 β†’ 1.4.3

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 (295) 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/SMART_WORKFLOW_GUIDE.md +401 -0
  10. package/#Tools/APPIQ-METHOD/activate-appiq.js +81 -0
  11. package/#Tools/APPIQ-METHOD/appiq-solution/README.md +226 -0
  12. package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-flutter-mobile.yaml +114 -0
  13. package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-fullstack.yaml +11 -1
  14. package/#Tools/APPIQ-METHOD/bmad-core/agents/analyst.md +7 -3
  15. package/#Tools/APPIQ-METHOD/bmad-core/agents/architect.md +6 -0
  16. package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-orchestrator.md +0 -84
  17. package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-smart-launcher.md +170 -0
  18. package/#Tools/APPIQ-METHOD/bmad-core/agents/dev.md +31 -12
  19. package/#Tools/APPIQ-METHOD/bmad-core/agents/pm.md +10 -4
  20. package/#Tools/APPIQ-METHOD/bmad-core/agents/qa.md +17 -0
  21. package/#Tools/APPIQ-METHOD/bmad-core/agents/sm.md +8 -3
  22. package/#Tools/APPIQ-METHOD/bmad-core/agents/ux-expert.md +8 -3
  23. package/#Tools/APPIQ-METHOD/bmad-core/bmad-core/user-guide.md +0 -0
  24. package/#Tools/APPIQ-METHOD/bmad-core/checklists/security-validation-checklist.md +332 -0
  25. package/#Tools/APPIQ-METHOD/bmad-core/data/backend-services-integration.md +686 -0
  26. package/#Tools/APPIQ-METHOD/bmad-core/data/shadcn-ui-integration.md +388 -0
  27. package/#Tools/APPIQ-METHOD/bmad-core/data/technical-preferences.md +147 -1
  28. package/#Tools/APPIQ-METHOD/bmad-core/enhanced-ide-development-workflow.md +43 -0
  29. package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-flutter-story.md +197 -0
  30. package/#Tools/APPIQ-METHOD/bmad-core/tasks/intelligent-epic-creation.md +234 -0
  31. package/#Tools/APPIQ-METHOD/bmad-core/tasks/smart-project-analysis.md +289 -0
  32. package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-mobile-prd-tmpl.yaml +330 -0
  33. package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-story-tmpl.yaml +376 -0
  34. package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-ui-spec-tmpl.yaml +415 -0
  35. package/#Tools/APPIQ-METHOD/bmad-core/templates/fullstack-architecture-tmpl.yaml +12 -5
  36. package/#Tools/APPIQ-METHOD/bmad-core/user-guide.md +10 -9
  37. package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-fullstack.yaml +15 -1
  38. package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-fullstack.yaml +49 -5
  39. package/#Tools/APPIQ-METHOD/bmad-core/working-in-the-brownfield.md +56 -44
  40. package/#Tools/APPIQ-METHOD/commands/README.md +28 -0
  41. package/#Tools/APPIQ-METHOD/commands/analyze.md +27 -0
  42. package/#Tools/APPIQ-METHOD/commands/appiq.md +27 -0
  43. package/#Tools/APPIQ-METHOD/commands/help.md +27 -0
  44. package/#Tools/APPIQ-METHOD/commands/story.md +27 -0
  45. package/#Tools/APPIQ-METHOD/dist/agents/bmad-orchestrator.txt +0 -111
  46. package/#Tools/APPIQ-METHOD/dist/agents/pm.txt +2 -0
  47. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -111
  48. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -111
  49. package/#Tools/APPIQ-METHOD/dist/teams/team-all.txt +2 -111
  50. package/#Tools/APPIQ-METHOD/dist/teams/team-fullstack.txt +2 -111
  51. package/#Tools/APPIQ-METHOD/dist/teams/team-ide-minimal.txt +0 -111
  52. package/#Tools/APPIQ-METHOD/dist/teams/team-no-ui.txt +2 -111
  53. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +1 -1
  54. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/config.yaml +1 -1
  55. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agent-teams/flutter-mobile-team.yaml +23 -0
  56. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-cubit-agent.md +133 -0
  57. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-data-agent.md +160 -0
  58. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-domain-agent.md +153 -0
  59. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-ui-agent.md +122 -0
  60. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/shared-components-agent.md +161 -0
  61. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/checklists/flutter-story-dod-checklist.md +194 -0
  62. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/config.yaml +41 -0
  63. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/data/flutter-development-guidelines.md +551 -0
  64. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/templates/flutter-mobile-architecture-tmpl.yaml +530 -0
  65. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/workflows/flutter-ui-first-development.yaml +220 -0
  66. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/config.yaml +1 -1
  67. package/#Tools/APPIQ-METHOD/install-appiq.sh +41 -0
  68. package/#Tools/APPIQ-METHOD/package-lock.json +631 -0
  69. package/#Tools/APPIQ-METHOD/package.json +20 -69
  70. package/#Tools/APPIQ-METHOD/tasks/todo.md +275 -0
  71. package/#Tools/APPIQ-METHOD/tools/appiq-installer.js +2714 -0
  72. package/#Tools/APPIQ-METHOD/tools/bmad-npx-wrapper.js +5 -7
  73. package/#Tools/APPIQ-METHOD/tools/cli.js +3 -3
  74. package/#Tools/APPIQ-METHOD/tools/epic-solution-installer.js +538 -0
  75. package/#Tools/APPIQ-METHOD/tools/flattener/main.js +570 -0
  76. package/#Tools/APPIQ-METHOD/tools/installer/bin/bmad.js +15 -14
  77. package/#Tools/APPIQ-METHOD/tools/installer/lib/installer.js +28 -2
  78. package/#Tools/APPIQ-METHOD/tools/installer/package-lock.json +906 -0
  79. package/#Tools/APPIQ-METHOD/tools/installer/package.json +1 -1
  80. package/#Tools/APPIQ-METHOD/tools/setup-ide-commands.js +345 -0
  81. package/#Tools/APPIQ-METHOD/tools/smart-installer.js +589 -0
  82. package/package.json +20 -69
  83. package/tools/appiq-installer.js +2714 -0
  84. package/tools/bmad-npx-wrapper.js +5 -7
  85. package/tools/cli.js +3 -3
  86. package/tools/epic-solution-installer.js +538 -0
  87. package/tools/flattener/main.js +570 -0
  88. package/tools/installer/bin/bmad.js +15 -14
  89. package/tools/installer/lib/installer.js +28 -2
  90. package/tools/installer/package-lock.json +89 -89
  91. package/tools/installer/package.json +1 -1
  92. package/tools/setup-ide-commands.js +345 -0
  93. package/tools/smart-installer.js +589 -0
  94. package/#Tools/APPIQ-METHOD/appiq_start.md +0 -232
  95. package/#Tools/APPIQ-METHOD/deployment/DEPLOYMENT_GUIDE.md +0 -426
  96. package/#Tools/APPIQ-METHOD/deployment/GITHUB_RELEASE_GUIDE.md +0 -326
  97. package/#Tools/APPIQ-METHOD/deployment/README.md +0 -331
  98. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-all.yaml +0 -14
  99. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-fullstack.yaml +0 -18
  100. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-ide-minimal.yaml +0 -10
  101. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-no-ui.yaml +0 -13
  102. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/analyst.md +0 -81
  103. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/architect.md +0 -84
  104. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/bmad-master.md +0 -108
  105. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/bmad-orchestrator.md +0 -234
  106. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/dev.md +0 -76
  107. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/pm.md +0 -79
  108. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/po.md +0 -76
  109. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/qa.md +0 -69
  110. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/sm.md +0 -62
  111. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/ux-expert.md +0 -66
  112. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/architect-checklist.md +0 -443
  113. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/change-checklist.md +0 -182
  114. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/pm-checklist.md +0 -375
  115. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/po-master-checklist.md +0 -441
  116. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/story-dod-checklist.md +0 -101
  117. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/story-draft-checklist.md +0 -156
  118. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/bmad-kb.md +0 -803
  119. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/brainstorming-techniques.md +0 -36
  120. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/elicitation-methods.md +0 -134
  121. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/technical-preferences.md +0 -3
  122. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/advanced-elicitation.md +0 -117
  123. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/brownfield-create-epic.md +0 -160
  124. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/brownfield-create-story.md +0 -147
  125. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/correct-course.md +0 -70
  126. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-brownfield-story.md +0 -304
  127. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-deep-research-prompt.md +0 -289
  128. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-next-story.md +0 -112
  129. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/document-project.md +0 -341
  130. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/facilitate-brainstorming-session.md +0 -136
  131. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/generate-ai-frontend-prompt.md +0 -51
  132. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/index-docs.md +0 -179
  133. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/kb-mode-interaction.md +0 -75
  134. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/review-story.md +0 -145
  135. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/shard-doc.md +0 -187
  136. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/validate-next-story.md +0 -134
  137. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/architecture-tmpl.yaml +0 -650
  138. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
  139. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -476
  140. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brownfield-prd-tmpl.yaml +0 -280
  141. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/competitor-analysis-tmpl.yaml +0 -293
  142. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/front-end-architecture-tmpl.yaml +0 -206
  143. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/front-end-spec-tmpl.yaml +0 -349
  144. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -805
  145. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/market-research-tmpl.yaml +0 -252
  146. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/prd-tmpl.yaml +0 -202
  147. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/project-brief-tmpl.yaml +0 -221
  148. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/story-tmpl.yaml +0 -137
  149. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/user-guide.md +0 -250
  150. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-fullstack.yaml +0 -297
  151. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-service.yaml +0 -187
  152. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-ui.yaml +0 -197
  153. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-fullstack.yaml +0 -240
  154. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-service.yaml +0 -206
  155. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-ui.yaml +0 -235
  156. package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/working-in-the-brownfield.md +0 -361
  157. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/README.md +0 -3
  158. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -13
  159. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -71
  160. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -78
  161. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -64
  162. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -201
  163. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -160
  164. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +0 -8
  165. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -254
  166. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -651
  167. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -111
  168. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -216
  169. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -308
  170. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -613
  171. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -356
  172. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -343
  173. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -253
  174. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
  175. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -183
  176. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -175
  177. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +0 -14
  178. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +0 -80
  179. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +0 -77
  180. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +0 -78
  181. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +0 -65
  182. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +0 -396
  183. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +0 -203
  184. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +0 -201
  185. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +0 -132
  186. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/config.yaml +0 -6
  187. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +0 -776
  188. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +0 -590
  189. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +0 -111
  190. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +0 -151
  191. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +0 -184
  192. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +0 -308
  193. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +0 -200
  194. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +0 -1030
  195. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +0 -356
  196. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +0 -705
  197. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +0 -256
  198. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
  199. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +0 -183
  200. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +0 -175
  201. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/README.md +0 -147
  202. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +0 -71
  203. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +0 -484
  204. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/config.yaml +0 -9
  205. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +0 -308
  206. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +0 -160
  207. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +0 -154
  208. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -424
  209. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -629
  210. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-cross-platform.yaml +0 -22
  211. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-flutter.yaml +0 -20
  212. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-minimal.yaml +0 -13
  213. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-react-native.yaml +0 -20
  214. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.md +0 -1487
  215. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.md +0 -279
  216. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.md +0 -649
  217. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.md +0 -339
  218. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.md +0 -622
  219. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.md +0 -1027
  220. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.md +0 -1451
  221. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/checklists/mobile-development-checklist.md +0 -490
  222. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/config.yaml +0 -54
  223. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/data/bmad-kb.md +0 -292
  224. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/data/flutter-development-guidelines.md +0 -483
  225. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/tasks/existing-app-analysis.md +0 -645
  226. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/tasks/platform-selection.md +0 -489
  227. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/templates/mobile-architecture-tmpl.yaml +0 -437
  228. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/templates/mobile-prd-tmpl.yaml +0 -408
  229. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-app-development-init.yaml +0 -555
  230. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-flutter.yaml +0 -336
  231. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-react-native.yaml +0 -345
  232. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-flutter.yaml +0 -281
  233. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-react-native.yaml +0 -283
  234. package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-platform-selection.yaml +0 -404
  235. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/appiq.md +0 -273
  236. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/claude-appiq.md +0 -294
  237. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/cursor-appiq.md +0 -516
  238. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/universal-appiq.md +0 -448
  239. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/windsurf-appiq.md +0 -698
  240. package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/start.md +0 -211
  241. package/#Tools/APPIQ-METHOD/deployment/build-release.sh +0 -449
  242. package/#Tools/APPIQ-METHOD/deployment/create-release.sh +0 -196
  243. package/#Tools/APPIQ-METHOD/deployment/dist/appiq_installer.sh +0 -678
  244. package/#Tools/APPIQ-METHOD/deployment/docs/main_prd.md +0 -36
  245. package/#Tools/APPIQ-METHOD/deployment/init_appiq.sh +0 -805
  246. package/#Tools/APPIQ-METHOD/deployment/init_appiq_v2.sh +0 -678
  247. package/#Tools/APPIQ-METHOD/deployment/installers/appiq-global.sh +0 -91
  248. package/#Tools/APPIQ-METHOD/deployment/installers/claude-integration.sh +0 -281
  249. package/#Tools/APPIQ-METHOD/deployment/installers/cursor-integration.sh +0 -257
  250. package/#Tools/APPIQ-METHOD/deployment/installers/terminal-integration.sh +0 -645
  251. package/#Tools/APPIQ-METHOD/deployment/installers/windsurf-integration.sh +0 -350
  252. package/#Tools/APPIQ-METHOD/deployment/package-v2.sh +0 -97
  253. package/#Tools/APPIQ-METHOD/deployment/package.sh +0 -363
  254. package/#Tools/APPIQ-METHOD/deployment/quick-install.sh +0 -57
  255. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.txt +0 -1530
  256. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.txt +0 -322
  257. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.txt +0 -692
  258. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.txt +0 -382
  259. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.txt +0 -665
  260. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.txt +0 -1070
  261. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.txt +0 -1494
  262. package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/teams/mobile-team-cross-platform.txt +0 -15613
  263. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-cross-platform.yaml +0 -22
  264. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-flutter.yaml +0 -20
  265. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-minimal.yaml +0 -13
  266. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-react-native.yaml +0 -20
  267. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.md +0 -1487
  268. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.md +0 -279
  269. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.md +0 -649
  270. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.md +0 -339
  271. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.md +0 -622
  272. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.md +0 -1027
  273. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.md +0 -1451
  274. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/checklists/mobile-development-checklist.md +0 -490
  275. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/config.yaml +0 -54
  276. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/data/bmad-kb.md +0 -292
  277. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/data/flutter-development-guidelines.md +0 -483
  278. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/tasks/existing-app-analysis.md +0 -645
  279. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/tasks/platform-selection.md +0 -489
  280. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/templates/mobile-architecture-tmpl.yaml +0 -437
  281. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/templates/mobile-prd-tmpl.yaml +0 -408
  282. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-app-development-init.yaml +0 -555
  283. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-flutter.yaml +0 -336
  284. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-react-native.yaml +0 -345
  285. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-flutter.yaml +0 -281
  286. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-react-native.yaml +0 -283
  287. package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-platform-selection.yaml +0 -404
  288. package/#Tools/APPIQ-METHOD/package-bmad-backup.json +0 -78
  289. package/#Tools/APPIQ-METHOD/slash-commands/appiq.md +0 -273
  290. package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/claude-appiq.md +0 -294
  291. package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/cursor-appiq.md +0 -516
  292. package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/universal-appiq.md +0 -448
  293. package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/windsurf-appiq.md +0 -698
  294. package/#Tools/APPIQ-METHOD/slash-commands/start.md +0 -211
  295. /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.