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.
- package/#Tools/APPIQ-METHOD/.bmad-config.json +13 -0
- package/#Tools/APPIQ-METHOD/.cursor/commands/analyze.md +27 -0
- package/#Tools/APPIQ-METHOD/.cursor/commands/appiq.md +27 -0
- package/#Tools/APPIQ-METHOD/.cursor/commands/help.md +27 -0
- package/#Tools/APPIQ-METHOD/.cursor/commands/story.md +27 -0
- package/#Tools/APPIQ-METHOD/CHANGELOG.md +119 -173
- package/#Tools/APPIQ-METHOD/DEVELOPMENT_GUIDE.md +855 -0
- package/#Tools/APPIQ-METHOD/NPM-README.md +138 -0
- package/#Tools/APPIQ-METHOD/SMART_WORKFLOW_GUIDE.md +401 -0
- package/#Tools/APPIQ-METHOD/activate-appiq.js +81 -0
- package/#Tools/APPIQ-METHOD/appiq-solution/README.md +226 -0
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-flutter-mobile.yaml +114 -0
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-fullstack.yaml +11 -1
- package/#Tools/APPIQ-METHOD/bmad-core/agents/analyst.md +7 -3
- package/#Tools/APPIQ-METHOD/bmad-core/agents/architect.md +6 -0
- package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-orchestrator.md +0 -84
- package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-smart-launcher.md +170 -0
- package/#Tools/APPIQ-METHOD/bmad-core/agents/dev.md +31 -12
- package/#Tools/APPIQ-METHOD/bmad-core/agents/pm.md +10 -4
- package/#Tools/APPIQ-METHOD/bmad-core/agents/qa.md +17 -0
- package/#Tools/APPIQ-METHOD/bmad-core/agents/sm.md +8 -3
- package/#Tools/APPIQ-METHOD/bmad-core/agents/ux-expert.md +8 -3
- package/#Tools/APPIQ-METHOD/bmad-core/bmad-core/user-guide.md +0 -0
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/security-validation-checklist.md +332 -0
- package/#Tools/APPIQ-METHOD/bmad-core/data/backend-services-integration.md +686 -0
- package/#Tools/APPIQ-METHOD/bmad-core/data/shadcn-ui-integration.md +388 -0
- package/#Tools/APPIQ-METHOD/bmad-core/data/technical-preferences.md +147 -1
- package/#Tools/APPIQ-METHOD/bmad-core/enhanced-ide-development-workflow.md +43 -0
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-flutter-story.md +197 -0
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/intelligent-epic-creation.md +234 -0
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/smart-project-analysis.md +289 -0
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-mobile-prd-tmpl.yaml +330 -0
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-story-tmpl.yaml +376 -0
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-ui-spec-tmpl.yaml +415 -0
- package/#Tools/APPIQ-METHOD/bmad-core/templates/fullstack-architecture-tmpl.yaml +12 -5
- package/#Tools/APPIQ-METHOD/bmad-core/user-guide.md +10 -9
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-fullstack.yaml +15 -1
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-fullstack.yaml +49 -5
- package/#Tools/APPIQ-METHOD/bmad-core/working-in-the-brownfield.md +56 -44
- package/#Tools/APPIQ-METHOD/commands/README.md +28 -0
- package/#Tools/APPIQ-METHOD/commands/analyze.md +27 -0
- package/#Tools/APPIQ-METHOD/commands/appiq.md +27 -0
- package/#Tools/APPIQ-METHOD/commands/help.md +27 -0
- package/#Tools/APPIQ-METHOD/commands/story.md +27 -0
- package/#Tools/APPIQ-METHOD/dist/agents/bmad-orchestrator.txt +0 -111
- package/#Tools/APPIQ-METHOD/dist/agents/pm.txt +2 -0
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -111
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -111
- package/#Tools/APPIQ-METHOD/dist/teams/team-all.txt +2 -111
- package/#Tools/APPIQ-METHOD/dist/teams/team-fullstack.txt +2 -111
- package/#Tools/APPIQ-METHOD/dist/teams/team-ide-minimal.txt +0 -111
- package/#Tools/APPIQ-METHOD/dist/teams/team-no-ui.txt +2 -111
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +1 -1
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-2d-unity-game-dev/config.yaml +1 -1
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agent-teams/flutter-mobile-team.yaml +23 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-cubit-agent.md +133 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-data-agent.md +160 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-domain-agent.md +153 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/flutter-ui-agent.md +122 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/agents/shared-components-agent.md +161 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/checklists/flutter-story-dod-checklist.md +194 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/config.yaml +41 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/data/flutter-development-guidelines.md +551 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/templates/flutter-mobile-architecture-tmpl.yaml +530 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev/workflows/flutter-ui-first-development.yaml +220 -0
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-infrastructure-devops/config.yaml +1 -1
- package/#Tools/APPIQ-METHOD/install-appiq.sh +41 -0
- package/#Tools/APPIQ-METHOD/package-lock.json +631 -0
- package/#Tools/APPIQ-METHOD/package.json +20 -69
- package/#Tools/APPIQ-METHOD/tasks/todo.md +275 -0
- package/#Tools/APPIQ-METHOD/tools/appiq-installer.js +2714 -0
- package/#Tools/APPIQ-METHOD/tools/bmad-npx-wrapper.js +5 -7
- package/#Tools/APPIQ-METHOD/tools/cli.js +3 -3
- package/#Tools/APPIQ-METHOD/tools/epic-solution-installer.js +538 -0
- package/#Tools/APPIQ-METHOD/tools/flattener/main.js +570 -0
- package/#Tools/APPIQ-METHOD/tools/installer/bin/bmad.js +15 -14
- package/#Tools/APPIQ-METHOD/tools/installer/lib/installer.js +28 -2
- package/#Tools/APPIQ-METHOD/tools/installer/package-lock.json +906 -0
- package/#Tools/APPIQ-METHOD/tools/installer/package.json +1 -1
- package/#Tools/APPIQ-METHOD/tools/setup-ide-commands.js +345 -0
- package/#Tools/APPIQ-METHOD/tools/smart-installer.js +589 -0
- package/package.json +20 -69
- package/tools/appiq-installer.js +2714 -0
- package/tools/bmad-npx-wrapper.js +5 -7
- package/tools/cli.js +3 -3
- package/tools/epic-solution-installer.js +538 -0
- package/tools/flattener/main.js +570 -0
- package/tools/installer/bin/bmad.js +15 -14
- package/tools/installer/lib/installer.js +28 -2
- package/tools/installer/package-lock.json +89 -89
- package/tools/installer/package.json +1 -1
- package/tools/setup-ide-commands.js +345 -0
- package/tools/smart-installer.js +589 -0
- package/#Tools/APPIQ-METHOD/appiq_start.md +0 -232
- package/#Tools/APPIQ-METHOD/deployment/DEPLOYMENT_GUIDE.md +0 -426
- package/#Tools/APPIQ-METHOD/deployment/GITHUB_RELEASE_GUIDE.md +0 -326
- package/#Tools/APPIQ-METHOD/deployment/README.md +0 -331
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-all.yaml +0 -14
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-fullstack.yaml +0 -18
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-ide-minimal.yaml +0 -10
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agent-teams/team-no-ui.yaml +0 -13
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/analyst.md +0 -81
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/architect.md +0 -84
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/bmad-master.md +0 -108
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/bmad-orchestrator.md +0 -234
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/dev.md +0 -76
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/pm.md +0 -79
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/po.md +0 -76
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/qa.md +0 -69
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/sm.md +0 -62
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/agents/ux-expert.md +0 -66
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/architect-checklist.md +0 -443
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/change-checklist.md +0 -182
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/pm-checklist.md +0 -375
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/po-master-checklist.md +0 -441
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/story-dod-checklist.md +0 -101
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/checklists/story-draft-checklist.md +0 -156
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/bmad-kb.md +0 -803
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/brainstorming-techniques.md +0 -36
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/elicitation-methods.md +0 -134
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/data/technical-preferences.md +0 -3
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/advanced-elicitation.md +0 -117
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/brownfield-create-epic.md +0 -160
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/brownfield-create-story.md +0 -147
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/correct-course.md +0 -70
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-brownfield-story.md +0 -304
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-deep-research-prompt.md +0 -289
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/create-next-story.md +0 -112
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/document-project.md +0 -341
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/facilitate-brainstorming-session.md +0 -136
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/generate-ai-frontend-prompt.md +0 -51
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/index-docs.md +0 -179
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/kb-mode-interaction.md +0 -75
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/review-story.md +0 -145
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/shard-doc.md +0 -187
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/tasks/validate-next-story.md +0 -134
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/architecture-tmpl.yaml +0 -650
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -476
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/brownfield-prd-tmpl.yaml +0 -280
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/competitor-analysis-tmpl.yaml +0 -293
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/front-end-architecture-tmpl.yaml +0 -206
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/front-end-spec-tmpl.yaml +0 -349
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -805
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/market-research-tmpl.yaml +0 -252
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/prd-tmpl.yaml +0 -202
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/project-brief-tmpl.yaml +0 -221
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/templates/story-tmpl.yaml +0 -137
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/user-guide.md +0 -250
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-fullstack.yaml +0 -297
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-service.yaml +0 -187
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/brownfield-ui.yaml +0 -197
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-fullstack.yaml +0 -240
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-service.yaml +0 -206
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/workflows/greenfield-ui.yaml +0 -235
- package/#Tools/APPIQ-METHOD/deployment/build/bmad-core/working-in-the-brownfield.md +0 -361
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/README.md +0 -3
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -13
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -71
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -78
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -64
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -201
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -160
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +0 -8
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -254
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -651
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -111
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -216
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -308
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -613
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -356
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -343
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -253
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -183
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -175
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +0 -14
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +0 -80
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +0 -77
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +0 -78
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +0 -65
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +0 -396
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +0 -203
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +0 -201
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +0 -132
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/config.yaml +0 -6
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +0 -776
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +0 -590
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +0 -111
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +0 -151
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +0 -184
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +0 -308
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +0 -200
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +0 -1030
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +0 -356
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +0 -705
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +0 -256
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +0 -484
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +0 -183
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +0 -175
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/README.md +0 -147
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +0 -71
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +0 -484
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/config.yaml +0 -9
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +0 -308
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +0 -160
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +0 -154
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -424
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -629
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-cross-platform.yaml +0 -22
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-flutter.yaml +0 -20
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-minimal.yaml +0 -13
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-react-native.yaml +0 -20
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.md +0 -1487
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.md +0 -279
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.md +0 -649
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.md +0 -339
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.md +0 -622
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.md +0 -1027
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.md +0 -1451
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/checklists/mobile-development-checklist.md +0 -490
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/config.yaml +0 -54
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/data/bmad-kb.md +0 -292
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/data/flutter-development-guidelines.md +0 -483
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/tasks/existing-app-analysis.md +0 -645
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/tasks/platform-selection.md +0 -489
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/templates/mobile-architecture-tmpl.yaml +0 -437
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/templates/mobile-prd-tmpl.yaml +0 -408
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-app-development-init.yaml +0 -555
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-flutter.yaml +0 -336
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-react-native.yaml +0 -345
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-flutter.yaml +0 -281
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-react-native.yaml +0 -283
- package/#Tools/APPIQ-METHOD/deployment/build/expansion-packs/bmad-mobile-app-dev/workflows/mobile-platform-selection.yaml +0 -404
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/appiq.md +0 -273
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/claude-appiq.md +0 -294
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/cursor-appiq.md +0 -516
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/universal-appiq.md +0 -448
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/ide-integrations/windsurf-appiq.md +0 -698
- package/#Tools/APPIQ-METHOD/deployment/build/slash-commands/start.md +0 -211
- package/#Tools/APPIQ-METHOD/deployment/build-release.sh +0 -449
- package/#Tools/APPIQ-METHOD/deployment/create-release.sh +0 -196
- package/#Tools/APPIQ-METHOD/deployment/dist/appiq_installer.sh +0 -678
- package/#Tools/APPIQ-METHOD/deployment/docs/main_prd.md +0 -36
- package/#Tools/APPIQ-METHOD/deployment/init_appiq.sh +0 -805
- package/#Tools/APPIQ-METHOD/deployment/init_appiq_v2.sh +0 -678
- package/#Tools/APPIQ-METHOD/deployment/installers/appiq-global.sh +0 -91
- package/#Tools/APPIQ-METHOD/deployment/installers/claude-integration.sh +0 -281
- package/#Tools/APPIQ-METHOD/deployment/installers/cursor-integration.sh +0 -257
- package/#Tools/APPIQ-METHOD/deployment/installers/terminal-integration.sh +0 -645
- package/#Tools/APPIQ-METHOD/deployment/installers/windsurf-integration.sh +0 -350
- package/#Tools/APPIQ-METHOD/deployment/package-v2.sh +0 -97
- package/#Tools/APPIQ-METHOD/deployment/package.sh +0 -363
- package/#Tools/APPIQ-METHOD/deployment/quick-install.sh +0 -57
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.txt +0 -1530
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.txt +0 -322
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.txt +0 -692
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.txt +0 -382
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.txt +0 -665
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.txt +0 -1070
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.txt +0 -1494
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-mobile-app-dev/teams/mobile-team-cross-platform.txt +0 -15613
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-cross-platform.yaml +0 -22
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-flutter.yaml +0 -20
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-minimal.yaml +0 -13
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agent-teams/mobile-team-react-native.yaml +0 -20
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.md +0 -1487
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.md +0 -279
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.md +0 -649
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.md +0 -339
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.md +0 -622
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.md +0 -1027
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.md +0 -1451
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/checklists/mobile-development-checklist.md +0 -490
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/config.yaml +0 -54
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/data/bmad-kb.md +0 -292
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/data/flutter-development-guidelines.md +0 -483
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/tasks/existing-app-analysis.md +0 -645
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/tasks/platform-selection.md +0 -489
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/templates/mobile-architecture-tmpl.yaml +0 -437
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/templates/mobile-prd-tmpl.yaml +0 -408
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-app-development-init.yaml +0 -555
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-flutter.yaml +0 -336
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-brownfield-react-native.yaml +0 -345
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-flutter.yaml +0 -281
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-greenfield-react-native.yaml +0 -283
- package/#Tools/APPIQ-METHOD/expansion-packs/bmad-mobile-app-dev/workflows/mobile-platform-selection.yaml +0 -404
- package/#Tools/APPIQ-METHOD/package-bmad-backup.json +0 -78
- package/#Tools/APPIQ-METHOD/slash-commands/appiq.md +0 -273
- package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/claude-appiq.md +0 -294
- package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/cursor-appiq.md +0 -516
- package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/universal-appiq.md +0 -448
- package/#Tools/APPIQ-METHOD/slash-commands/ide-integrations/windsurf-appiq.md +0 -698
- package/#Tools/APPIQ-METHOD/slash-commands/start.md +0 -211
- /package/#Tools/APPIQ-METHOD/{deployment/build/bmad-core/core-config.yaml โ bmad-core/core-config.yaml.bak} +0 -0
@@ -1,483 +0,0 @@
|
|
1
|
-
# Flutter Development Guidelines & Best Practices
|
2
|
-
|
3
|
-
## Core Development Principles
|
4
|
-
|
5
|
-
**THIS RULES ARE IMPORTANT AND YOU NEED FOLLOW THEM ALWAYS!!!!!**
|
6
|
-
|
7
|
-
๐งน **DRY-Prinzip befolgt** - Keine Code-Duplikation mehr
|
8
|
-
๐ **Bessere Lesbarkeit** - Kleinere, fokussierte Methoden
|
9
|
-
๐ง **Wartbarkeit** - Logische Gruppierung รคhnlicher Funktionen
|
10
|
-
โก **Performance** - Weniger redundante Repository-Calls
|
11
|
-
๐งช **Testbarkeit** - Kleinere, testbare Methoden-Einheiten
|
12
|
-
|
13
|
-
Follow the best clean code rules and the best practices. Implement Code the same style as the architecture is built up - follow the folder and file structure.
|
14
|
-
|
15
|
-
## Architecture & Project Structure
|
16
|
-
|
17
|
-
### Clean Architecture Layers
|
18
|
-
All new features **MUST** follow the established Clean Architecture pattern:
|
19
|
-
|
20
|
-
```
|
21
|
-
lib/
|
22
|
-
โโโ core/ # Infrastructure & shared utilities
|
23
|
-
โโโ data/ # Data layer (repositories impl, data sources, models)
|
24
|
-
โโโ domain/ # Business logic (entities, repository interfaces, failures)
|
25
|
-
โโโ presentation/ # UI layer (screens, widgets, BLoC/Cubit, navigation)
|
26
|
-
โโโ l10n/ # Internationalization files
|
27
|
-
```
|
28
|
-
|
29
|
-
### Folder Organization Rules
|
30
|
-
|
31
|
-
#### 1. Feature-Based Organization
|
32
|
-
- Group related functionality by feature/domain
|
33
|
-
- Each feature should have its own subfolder structure
|
34
|
-
- Follow existing patterns in `presentation/ui/screens/`
|
35
|
-
|
36
|
-
#### 2. Core & Shared Services Integration (CRITICAL!)
|
37
|
-
- **ALWAYS** check existing services in `lib/core/services/` before creating new ones
|
38
|
-
- Services grouped by category: `auth/`, `network/`, `storage/`, `voice/`, etc.
|
39
|
-
- Use existing utilities in `lib/core/utils/`
|
40
|
-
- **Shared components**: Use `lib/shared/widgets/` for cross-feature UI components
|
41
|
-
- **Core utilities**: Use `lib/core/di/` for dependency injection setup
|
42
|
-
- **Global theme**: Use `lib/shared/theme/` for app-wide theming
|
43
|
-
- **Shared localization**: Use `lib/shared/localization/` for global translations
|
44
|
-
|
45
|
-
#### 3. Mandatory Directory Structure for New Features
|
46
|
-
```
|
47
|
-
feature_name/
|
48
|
-
โโโ translations/ # Feature-specific translations (MANDATORY for new features)
|
49
|
-
โ โโโ feature_name_de.arb # German translations
|
50
|
-
โ โโโ feature_name_en.arb # English translations
|
51
|
-
โ โโโ feature_name_ru.arb # Russian translations
|
52
|
-
โ โโโ feature_name_tr.arb # Turkish translations
|
53
|
-
โ โโโ feature_name_ar.arb # Arabic translations
|
54
|
-
โโโ data/
|
55
|
-
โ โโโ repositories/ # Repository implementations
|
56
|
-
โ โโโ datasources/ # Local & remote data sources
|
57
|
-
โ โโโ models/ # Data models with freezed + JSON serialization
|
58
|
-
โ โโโ model_name_model.dart
|
59
|
-
โ โโโ model_name_model.freezed.dart # Generated freezed file
|
60
|
-
โ โโโ model_name_model.g.dart # Generated JSON file
|
61
|
-
โโโ domain/
|
62
|
-
โ โโโ entities/ # Business entities (immutable with freezed)
|
63
|
-
โ โโโ repositories/ # Repository interfaces
|
64
|
-
โ โโโ usecases/ # Business use cases
|
65
|
-
โโโ presentation/
|
66
|
-
โโโ cubit/ # Cubit state management (SEPARATE FILES!)
|
67
|
-
โ โโโ feature_name_cubit.dart # Cubit class file
|
68
|
-
โ โโโ feature_name_state.dart # State class file
|
69
|
-
โโโ pages/ # Screen implementations
|
70
|
-
โโโ widgets/ # Feature-specific widgets
|
71
|
-
```
|
72
|
-
|
73
|
-
**CRITICAL RULES:**
|
74
|
-
- Each feature MUST have its own translations/ folder
|
75
|
-
- Cubit and State classes MUST be in separate files
|
76
|
-
- All models MUST use freezed for immutability
|
77
|
-
- Follow exact naming convention: feature_name_cubit.dart, feature_name_state.dart
|
78
|
-
|
79
|
-
## State Management Rules
|
80
|
-
|
81
|
-
### BaseCubitMixin Usage
|
82
|
-
**MANDATORY**: All Cubits **MUST** use `BaseCubitMixin` from `@lib/core/utils/base_cubit_mixin.dart`
|
83
|
-
|
84
|
-
```dart
|
85
|
-
class FeatureCubit extends Cubit<FeatureState> with BaseCubitMixin<FeatureState> {
|
86
|
-
// Use executeRepositoryOperation for all repository calls
|
87
|
-
Future<void> loadData() async {
|
88
|
-
await executeRepositoryOperation<DataModel>(
|
89
|
-
operation: () => repository.getData(),
|
90
|
-
onSuccess: (data) => safeEmit(FeatureState.loaded(data)),
|
91
|
-
operationName: 'loadData',
|
92
|
-
loadingState: FeatureState.loading(),
|
93
|
-
errorStateBuilder: (message) => FeatureState.error(message),
|
94
|
-
);
|
95
|
-
}
|
96
|
-
|
97
|
-
@override
|
98
|
-
void clearError() => safeEmit(FeatureState.initial());
|
99
|
-
|
100
|
-
@override
|
101
|
-
void resetToInitial() => safeEmit(FeatureState.initial());
|
102
|
-
}
|
103
|
-
```
|
104
|
-
|
105
|
-
### State Class Requirements
|
106
|
-
```dart
|
107
|
-
class FeatureState extends Equatable {
|
108
|
-
final FeatureStatus status;
|
109
|
-
final DataModel? data;
|
110
|
-
final String? errorMessage;
|
111
|
-
|
112
|
-
const FeatureState._({
|
113
|
-
required this.status,
|
114
|
-
this.data,
|
115
|
-
this.errorMessage,
|
116
|
-
});
|
117
|
-
|
118
|
-
// Named constructors for each state
|
119
|
-
const FeatureState.initial() : this._(status: FeatureStatus.initial);
|
120
|
-
const FeatureState.loading() : this._(status: FeatureStatus.loading);
|
121
|
-
const FeatureState.loaded(DataModel data) : this._(status: FeatureStatus.loaded, data: data);
|
122
|
-
const FeatureState.error(String message) : this._(status: FeatureStatus.error, errorMessage: message);
|
123
|
-
|
124
|
-
@override
|
125
|
-
List<Object?> get props => [status, data, errorMessage];
|
126
|
-
}
|
127
|
-
|
128
|
-
enum FeatureStatus { initial, loading, loaded, error }
|
129
|
-
```
|
130
|
-
|
131
|
-
## Repository Pattern Rules
|
132
|
-
|
133
|
-
### Repository Interface (Domain Layer)
|
134
|
-
```dart
|
135
|
-
abstract class FeatureRepository {
|
136
|
-
Future<Either<Failure, DataModel>> getData();
|
137
|
-
Future<Either<Failure, void>> saveData(DataModel data);
|
138
|
-
}
|
139
|
-
```
|
140
|
-
|
141
|
-
### Repository Implementation (Data Layer)
|
142
|
-
```dart
|
143
|
-
class FeatureRepositoryImpl extends BaseRepository implements FeatureRepository {
|
144
|
-
final FeatureRemoteDataSource remoteDataSource;
|
145
|
-
final FeatureLocalDataSource localDataSource;
|
146
|
-
|
147
|
-
FeatureRepositoryImpl({
|
148
|
-
required this.remoteDataSource,
|
149
|
-
required this.localDataSource,
|
150
|
-
});
|
151
|
-
|
152
|
-
@override
|
153
|
-
Future<Either<Failure, DataModel>> getData() async {
|
154
|
-
return executeWithErrorHandling<DataModel>(
|
155
|
-
() async => await remoteDataSource.getData(),
|
156
|
-
operationName: 'getData',
|
157
|
-
failureMessage: 'Failed to load data',
|
158
|
-
);
|
159
|
-
}
|
160
|
-
}
|
161
|
-
```
|
162
|
-
|
163
|
-
## Multi-Language Support Rules
|
164
|
-
|
165
|
-
### Localization Requirements
|
166
|
-
**MANDATORY**: All user-facing text **MUST** support multi-language (en, de, ru, tr, ar)
|
167
|
-
|
168
|
-
```dart
|
169
|
-
// โ Wrong - Hardcoded text
|
170
|
-
Text('Welcome to ProjectPilot')
|
171
|
-
|
172
|
-
// โ
Correct - Using AppLocalizations
|
173
|
-
Text(AppLocalizations.of(context).welcomeMessage)
|
174
|
-
```
|
175
|
-
|
176
|
-
### Adding New Translations
|
177
|
-
1. Add key to `lib/l10n/app_en.arb`
|
178
|
-
2. Provide translations for all supported languages
|
179
|
-
3. Use semantic key names: `featureName_actionName_element`
|
180
|
-
|
181
|
-
```json
|
182
|
-
{
|
183
|
-
"auth_login_welcomeTitle": "Welcome Back",
|
184
|
-
"auth_login_emailLabel": "Email Address",
|
185
|
-
"project_create_successMessage": "Project created successfully"
|
186
|
-
}
|
187
|
-
```
|
188
|
-
|
189
|
-
## Service Locator Rules
|
190
|
-
|
191
|
-
### Service Registration
|
192
|
-
**MANDATORY**: All services **MUST** be registered in `@lib/core/di/service_locator.dart`
|
193
|
-
|
194
|
-
```dart
|
195
|
-
// Check existing services BEFORE adding new ones
|
196
|
-
static Future<void> _registerFeatureServices() async {
|
197
|
-
AppLogger.d('Registering feature services...', tag: 'DI');
|
198
|
-
|
199
|
-
// Only register if not already exists
|
200
|
-
_registerLazySingleton<FeatureService>(
|
201
|
-
() => FeatureService(dependency: getIt<DependencyService>()),
|
202
|
-
serviceName: 'FeatureService',
|
203
|
-
);
|
204
|
-
}
|
205
|
-
```
|
206
|
-
|
207
|
-
### Service Access Pattern
|
208
|
-
```dart
|
209
|
-
class FeatureCubit extends Cubit<FeatureState> {
|
210
|
-
final FeatureRepository repository;
|
211
|
-
final FeatureService service;
|
212
|
-
|
213
|
-
// Use dependency injection, NOT direct service locator calls
|
214
|
-
FeatureCubit({
|
215
|
-
required this.repository,
|
216
|
-
required this.service,
|
217
|
-
}) : super(FeatureState.initial());
|
218
|
-
}
|
219
|
-
```
|
220
|
-
|
221
|
-
## UI Development Rules
|
222
|
-
|
223
|
-
### Widget Organization
|
224
|
-
```dart
|
225
|
-
// Feature-specific widgets in feature directory
|
226
|
-
lib/presentation/ui/screens/feature/widgets/
|
227
|
-
โโโ feature_list_item.dart
|
228
|
-
โโโ feature_form.dart
|
229
|
-
โโโ feature_header.dart
|
230
|
-
|
231
|
-
// Shared widgets in core
|
232
|
-
lib/core/widgets/
|
233
|
-
โโโ loading_indicator.dart
|
234
|
-
โโโ error_display.dart
|
235
|
-
โโโ custom_button.dart
|
236
|
-
```
|
237
|
-
|
238
|
-
### Widget Structure
|
239
|
-
```dart
|
240
|
-
class FeatureWidget extends StatelessWidget {
|
241
|
-
final FeatureModel data;
|
242
|
-
final VoidCallback? onTap;
|
243
|
-
|
244
|
-
const FeatureWidget({
|
245
|
-
super.key,
|
246
|
-
required this.data,
|
247
|
-
this.onTap,
|
248
|
-
});
|
249
|
-
|
250
|
-
@override
|
251
|
-
Widget build(BuildContext context) {
|
252
|
-
final theme = Theme.of(context);
|
253
|
-
final l10n = AppLocalizations.of(context);
|
254
|
-
|
255
|
-
return Container(
|
256
|
-
// Use theme colors and constants
|
257
|
-
decoration: BoxDecoration(
|
258
|
-
color: theme.colorScheme.surface,
|
259
|
-
borderRadius: BorderRadius.circular(AppConstants.defaultRadius),
|
260
|
-
),
|
261
|
-
child: // Widget content
|
262
|
-
);
|
263
|
-
}
|
264
|
-
}
|
265
|
-
```
|
266
|
-
|
267
|
-
### Theme Usage
|
268
|
-
```dart
|
269
|
-
// โ
Use theme colors
|
270
|
-
color: theme.colorScheme.primary
|
271
|
-
color: AppColors.primary // For custom brand colors
|
272
|
-
|
273
|
-
// โ
Use app constants
|
274
|
-
padding: EdgeInsets.all(AppConstants.defaultPadding)
|
275
|
-
borderRadius: BorderRadius.circular(AppConstants.defaultRadius)
|
276
|
-
```
|
277
|
-
|
278
|
-
## Code Style & Documentation
|
279
|
-
|
280
|
-
### Import Organization
|
281
|
-
```dart
|
282
|
-
// 1. Flutter/Dart imports
|
283
|
-
import 'dart:async';
|
284
|
-
import 'package:flutter/material.dart';
|
285
|
-
// 2. Package imports (alphabetical)
|
286
|
-
import 'package:dartz/dartz.dart';
|
287
|
-
import 'package:equatable/equatable.dart';
|
288
|
-
import 'package:flutter_bloc/flutter_bloc.dart';
|
289
|
-
|
290
|
-
// 3. Local imports (grouped by layer)
|
291
|
-
import 'package:projectpilot/core/constants/app_colors.dart';
|
292
|
-
import 'package:projectpilot/core/services/logger/app_logger.dart';
|
293
|
-
import 'package:projectpilot/domain/entities/feature_entity.dart';
|
294
|
-
import 'package:projectpilot/presentation/ui/widgets/custom_widget.dart';
|
295
|
-
```
|
296
|
-
|
297
|
-
### Documentation Requirements
|
298
|
-
```dart
|
299
|
-
/// Service responsible for managing feature operations
|
300
|
-
///
|
301
|
-
/// Provides CRUD operations for features with automatic caching,
|
302
|
-
/// error handling, and offline support.
|
303
|
-
///
|
304
|
-
/// Example usage:
|
305
|
-
/// ```dart
|
306
|
-
/// final service = sl<FeatureService>();
|
307
|
-
/// final result = await service.createFeature(data);
|
308
|
-
/// ```
|
309
|
-
class FeatureService {
|
310
|
-
/// Creates a new feature with validation and persistence
|
311
|
-
///
|
312
|
-
/// [data] The feature data to create
|
313
|
-
/// Returns [Either] with failure or created feature
|
314
|
-
Future<Either<Failure, FeatureEntity>> createFeature(FeatureData data) async {
|
315
|
-
// Implementation
|
316
|
-
}
|
317
|
-
}
|
318
|
-
```
|
319
|
-
|
320
|
-
### Naming Conventions
|
321
|
-
- **Classes**: `PascalCase` (e.g., `FeatureService`, `ProjectEntity`)
|
322
|
-
- **Files**: `snake_case` (e.g., `feature_service.dart`, `project_entity.dart`)
|
323
|
-
- **Variables/Methods**: `camelCase` (e.g., `loadFeatures`, `isLoading`)
|
324
|
-
- **Constants**: `SCREAMING_SNAKE_CASE` (e.g., `DEFAULT_TIMEOUT`)
|
325
|
-
- **Private members**: Prefix with `_` (e.g., `_initializeService`)
|
326
|
-
|
327
|
-
## Development Workflow & Validation
|
328
|
-
|
329
|
-
### Pre-Implementation Checklist
|
330
|
-
|
331
|
-
#### Planning Phase
|
332
|
-
- [ ] **Analyze existing code** for similar patterns
|
333
|
-
- [ ] **Check core services** for reusable functionality
|
334
|
-
- [ ] **Verify multi-language** requirements
|
335
|
-
- [ ] **Design state management** structure
|
336
|
-
- [ ] **Plan repository interfaces** and implementations
|
337
|
-
|
338
|
-
#### Implementation Phase
|
339
|
-
- [ ] **Follow Clean Architecture** layers
|
340
|
-
- [ ] **Use BaseCubitMixin** for all Cubits
|
341
|
-
- [ ] **Implement proper error handling** with typed failures
|
342
|
-
- [ ] **Add comprehensive logging** with AppLogger
|
343
|
-
- [ ] **Use existing services** and utilities
|
344
|
-
- [ ] **Register new services** in ServiceLocator
|
345
|
-
|
346
|
-
#### Quality Assurance Phase
|
347
|
-
- [ ] **๐งน DRY Principle**: No code duplication
|
348
|
-
- [ ] **๐ Readability**: Small, focused methods with clear names
|
349
|
-
- [ ] **๐ง Maintainability**: Logical grouping and proper separation
|
350
|
-
- [ ] **โก Performance**: Efficient operations and minimal redundancy
|
351
|
-
- [ ] **๐งช Testability**: Small, testable method units
|
352
|
-
|
353
|
-
### Implementation Validation Checklist
|
354
|
-
|
355
|
-
```markdown
|
356
|
-
## Feature Implementation Review
|
357
|
-
|
358
|
-
### Architecture Compliance
|
359
|
-
- [ ] Follows Clean Architecture layers
|
360
|
-
- [ ] Proper dependency injection setup
|
361
|
-
- [ ] Repository pattern implemented correctly
|
362
|
-
- [ ] Entity design follows domain rules
|
363
|
-
|
364
|
-
### State Management
|
365
|
-
- [ ] BaseCubitMixin used and implemented properly
|
366
|
-
- [ ] State classes extend Equatable
|
367
|
-
- [ ] Error handling integrated
|
368
|
-
- [ ] Loading states managed correctly
|
369
|
-
|
370
|
-
### Code Quality
|
371
|
-
- [ ] No code duplication (DRY)
|
372
|
-
- [ ] Methods are small and focused
|
373
|
-
- [ ] Proper error handling throughout
|
374
|
-
- [ ] Comprehensive logging added
|
375
|
-
- [ ] Performance considerations addressed
|
376
|
-
|
377
|
-
### Multi-language Support
|
378
|
-
- [ ] All UI text uses AppLocalizations
|
379
|
-
- [ ] Keys added to all language files
|
380
|
-
- [ ] Semantic key naming used
|
381
|
-
|
382
|
-
### Service Integration
|
383
|
-
- [ ] Existing services reused where possible
|
384
|
-
- [ ] New services registered in ServiceLocator
|
385
|
-
- [ ] Dependencies properly injected
|
386
|
-
|
387
|
-
### Testing & Documentation
|
388
|
-
- [ ] Unit tests written for business logic
|
389
|
-
- [ ] Widget tests for UI components
|
390
|
-
- [ ] Code documented with examples
|
391
|
-
- [ ] Public API documented
|
392
|
-
```
|
393
|
-
|
394
|
-
## Anti-Patterns to Avoid
|
395
|
-
|
396
|
-
### โ What NOT to do
|
397
|
-
|
398
|
-
```dart
|
399
|
-
// โ Don't access service locator directly in widgets
|
400
|
-
Widget build(BuildContext context) {
|
401
|
-
final service = sl<FeatureService>(); // WRONG
|
402
|
-
}
|
403
|
-
|
404
|
-
// โ Don't hardcode text
|
405
|
-
Text('Welcome User'); // WRONG
|
406
|
-
|
407
|
-
// โ Don't create cubits without BaseCubitMixin
|
408
|
-
class BadCubit extends Cubit<State> { // WRONG
|
409
|
-
// Missing BaseCubitMixin
|
410
|
-
}
|
411
|
-
|
412
|
-
// โ Don't create services without registration
|
413
|
-
class NewService { // WRONG - Not registered in ServiceLocator
|
414
|
-
}
|
415
|
-
|
416
|
-
// โ Don't bypass repository pattern
|
417
|
-
class Cubit {
|
418
|
-
void loadData() {
|
419
|
-
apiClient.getData(); // WRONG - Direct API access
|
420
|
-
}
|
421
|
-
}
|
422
|
-
|
423
|
-
// โ Don't ignore error handling
|
424
|
-
Future<void> operation() async {
|
425
|
-
final result = await repository.getData(); // WRONG - No error handling
|
426
|
-
}
|
427
|
-
```
|
428
|
-
|
429
|
-
### โ
Correct Patterns
|
430
|
-
|
431
|
-
```dart
|
432
|
-
// โ
Use dependency injection
|
433
|
-
class FeatureWidget extends StatelessWidget {
|
434
|
-
const FeatureWidget({super.key});
|
435
|
-
|
436
|
-
@override
|
437
|
-
Widget build(BuildContext context) {
|
438
|
-
return BlocBuilder<FeatureCubit, FeatureState>( // CORRECT
|
439
|
-
builder: (context, state) => // Build UI
|
440
|
-
);
|
441
|
-
}
|
442
|
-
}
|
443
|
-
|
444
|
-
// โ
Use localization
|
445
|
-
Text(AppLocalizations.of(context).welcomeMessage) // CORRECT
|
446
|
-
|
447
|
-
// โ
Use BaseCubitMixin
|
448
|
-
class FeatureCubit extends Cubit<FeatureState> with BaseCubitMixin<FeatureState> // CORRECT
|
449
|
-
|
450
|
-
// โ
Register services
|
451
|
-
_registerLazySingleton<FeatureService>(() => FeatureService()) // CORRECT
|
452
|
-
|
453
|
-
// โ
Use repository pattern
|
454
|
-
await executeRepositoryOperation<Data>( // CORRECT
|
455
|
-
operation: () => repository.getData(),
|
456
|
-
onSuccess: (data) => handleSuccess(data),
|
457
|
-
// ...
|
458
|
-
);
|
459
|
-
```
|
460
|
-
|
461
|
-
## Success Criteria
|
462
|
-
|
463
|
-
A feature is considered **complete and correct** when:
|
464
|
-
|
465
|
-
1. **Architecture**: Follows Clean Architecture with proper layer separation
|
466
|
-
2. **State Management**: Uses BaseCubitMixin with proper error/loading states
|
467
|
-
3. **Localization**: All text supports multi-language
|
468
|
-
4. **Services**: Reuses existing services or properly registers new ones
|
469
|
-
5. **Quality**: Passes all 5 quality criteria (DRY, Readable, Maintainable, Performant, Testable)
|
470
|
-
6. **Documentation**: Code is properly documented with examples
|
471
|
-
7. **Testing**: Unit and widget tests are implemented
|
472
|
-
8. **Consistency**: Code style matches existing patterns
|
473
|
-
|
474
|
-
## Support & Questions
|
475
|
-
|
476
|
-
When implementing new features:
|
477
|
-
|
478
|
-
1. **First**: Check existing code for similar patterns
|
479
|
-
2. **Second**: Review these coding rules
|
480
|
-
3. **Third**: Ensure all validation criteria are met
|
481
|
-
4. **Finally**: Implement with confidence following established patterns
|
482
|
-
|
483
|
-
> **Remember**: Consistency is key. When in doubt, follow existing patterns in the codebase.
|