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,590 +0,0 @@
|
|
1
|
-
# Game Development Guidelines (Unity & C#)
|
2
|
-
|
3
|
-
## Overview
|
4
|
-
|
5
|
-
This document establishes coding standards, architectural patterns, and development practices for 2D game development using Unity and C#. These guidelines ensure consistency, performance, and maintainability across all game development stories.
|
6
|
-
|
7
|
-
## C# Standards
|
8
|
-
|
9
|
-
### Naming Conventions
|
10
|
-
|
11
|
-
**Classes, Structs, Enums, and Interfaces:**
|
12
|
-
|
13
|
-
- PascalCase for types: `PlayerController`, `GameData`, `IInteractable`
|
14
|
-
- Prefix interfaces with 'I': `IDamageable`, `IControllable`
|
15
|
-
- Descriptive names that indicate purpose: `GameStateManager` not `GSM`
|
16
|
-
|
17
|
-
**Methods and Properties:**
|
18
|
-
|
19
|
-
- PascalCase for methods and properties: `CalculateScore()`, `CurrentHealth`
|
20
|
-
- Descriptive verb phrases for methods: `ActivateShield()` not `shield()`
|
21
|
-
|
22
|
-
**Fields and Variables:**
|
23
|
-
|
24
|
-
- `private` or `protected` fields: camelCase with an underscore prefix: `_playerHealth`, `_movementSpeed`
|
25
|
-
- `public` fields (use sparingly, prefer properties): PascalCase: `PlayerName`
|
26
|
-
- `static` fields: PascalCase: `Instance`, `GameVersion`
|
27
|
-
- `const` fields: PascalCase: `MaxHitPoints`
|
28
|
-
- `local` variables: camelCase: `damageAmount`, `isJumping`
|
29
|
-
- Boolean variables with is/has/can prefix: `_isAlive`, `_hasKey`, `_canJump`
|
30
|
-
|
31
|
-
**Files and Directories:**
|
32
|
-
|
33
|
-
- PascalCase for C# script files, matching the primary class name: `PlayerController.cs`
|
34
|
-
- PascalCase for Scene files: `MainMenu.unity`, `Level01.unity`
|
35
|
-
|
36
|
-
### Style and Formatting
|
37
|
-
|
38
|
-
- **Braces**: Use Allman style (braces on a new line).
|
39
|
-
- **Spacing**: Use 4 spaces for indentation (no tabs).
|
40
|
-
- **`using` directives**: Place all `using` directives at the top of the file, outside the namespace.
|
41
|
-
- **`this` keyword**: Only use `this` when necessary to distinguish between a field and a local variable/parameter.
|
42
|
-
|
43
|
-
## Unity Architecture Patterns
|
44
|
-
|
45
|
-
### Scene Lifecycle Management
|
46
|
-
|
47
|
-
**Loading and Transitioning Between Scenes:**
|
48
|
-
|
49
|
-
```csharp
|
50
|
-
// SceneLoader.cs - A singleton for managing scene transitions.
|
51
|
-
using UnityEngine;
|
52
|
-
using UnityEngine.SceneManagement;
|
53
|
-
using System.Collections;
|
54
|
-
|
55
|
-
public class SceneLoader : MonoBehaviour
|
56
|
-
{
|
57
|
-
public static SceneLoader Instance { get; private set; }
|
58
|
-
|
59
|
-
private void Awake()
|
60
|
-
{
|
61
|
-
if (Instance != null && Instance != this)
|
62
|
-
{
|
63
|
-
Destroy(gameObject);
|
64
|
-
return;
|
65
|
-
}
|
66
|
-
Instance = this;
|
67
|
-
DontDestroyOnLoad(gameObject);
|
68
|
-
}
|
69
|
-
|
70
|
-
public void LoadGameScene()
|
71
|
-
{
|
72
|
-
// Example of loading the main game scene, perhaps with a loading screen first.
|
73
|
-
StartCoroutine(LoadSceneAsync("Level01"));
|
74
|
-
}
|
75
|
-
|
76
|
-
private IEnumerator LoadSceneAsync(string sceneName)
|
77
|
-
{
|
78
|
-
// Load a loading screen first (optional)
|
79
|
-
SceneManager.LoadScene("LoadingScreen");
|
80
|
-
|
81
|
-
// Wait a frame for the loading screen to appear
|
82
|
-
yield return null;
|
83
|
-
|
84
|
-
// Begin loading the target scene in the background
|
85
|
-
AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(sceneName);
|
86
|
-
|
87
|
-
// Don't activate the scene until it's fully loaded
|
88
|
-
asyncLoad.allowSceneActivation = false;
|
89
|
-
|
90
|
-
// Wait until the asynchronous scene fully loads
|
91
|
-
while (!asyncLoad.isDone)
|
92
|
-
{
|
93
|
-
// Here you could update a progress bar with asyncLoad.progress
|
94
|
-
if (asyncLoad.progress >= 0.9f)
|
95
|
-
{
|
96
|
-
// Scene is loaded, allow activation
|
97
|
-
asyncLoad.allowSceneActivation = true;
|
98
|
-
}
|
99
|
-
yield return null;
|
100
|
-
}
|
101
|
-
}
|
102
|
-
}
|
103
|
-
```
|
104
|
-
|
105
|
-
### MonoBehaviour Lifecycle
|
106
|
-
|
107
|
-
**Understanding Core MonoBehaviour Events:**
|
108
|
-
|
109
|
-
```csharp
|
110
|
-
// Example of a standard MonoBehaviour lifecycle
|
111
|
-
using UnityEngine;
|
112
|
-
|
113
|
-
public class PlayerController : MonoBehaviour
|
114
|
-
{
|
115
|
-
// AWAKE: Called when the script instance is being loaded.
|
116
|
-
// Use for initialization before the game starts. Good for caching component references.
|
117
|
-
private void Awake()
|
118
|
-
{
|
119
|
-
Debug.Log("PlayerController Awake!");
|
120
|
-
}
|
121
|
-
|
122
|
-
// ONENABLE: Called when the object becomes enabled and active.
|
123
|
-
// Good for subscribing to events.
|
124
|
-
private void OnEnable()
|
125
|
-
{
|
126
|
-
// Example: UIManager.OnGamePaused += HandleGamePaused;
|
127
|
-
}
|
128
|
-
|
129
|
-
// START: Called on the frame when a script is enabled just before any of the Update methods are called the first time.
|
130
|
-
// Good for logic that depends on other objects being initialized.
|
131
|
-
private void Start()
|
132
|
-
{
|
133
|
-
Debug.Log("PlayerController Start!");
|
134
|
-
}
|
135
|
-
|
136
|
-
// FIXEDUPDATE: Called every fixed framerate frame.
|
137
|
-
// Use for physics calculations (e.g., applying forces to a Rigidbody).
|
138
|
-
private void FixedUpdate()
|
139
|
-
{
|
140
|
-
// Handle Rigidbody movement here.
|
141
|
-
}
|
142
|
-
|
143
|
-
// UPDATE: Called every frame.
|
144
|
-
// Use for most game logic, like handling input and non-physics movement.
|
145
|
-
private void Update()
|
146
|
-
{
|
147
|
-
// Handle input and non-physics movement here.
|
148
|
-
}
|
149
|
-
|
150
|
-
// LATEUPDATE: Called every frame, after all Update functions have been called.
|
151
|
-
// Good for camera logic that needs to track a target that moves in Update.
|
152
|
-
private void LateUpdate()
|
153
|
-
{
|
154
|
-
// Camera follow logic here.
|
155
|
-
}
|
156
|
-
|
157
|
-
// ONDISABLE: Called when the behaviour becomes disabled or inactive.
|
158
|
-
// Good for unsubscribing from events to prevent memory leaks.
|
159
|
-
private void OnDisable()
|
160
|
-
{
|
161
|
-
// Example: UIManager.OnGamePaused -= HandleGamePaused;
|
162
|
-
}
|
163
|
-
|
164
|
-
// ONDESTROY: Called when the MonoBehaviour will be destroyed.
|
165
|
-
// Good for any final cleanup.
|
166
|
-
private void OnDestroy()
|
167
|
-
{
|
168
|
-
Debug.Log("PlayerController Destroyed!");
|
169
|
-
}
|
170
|
-
}
|
171
|
-
```
|
172
|
-
|
173
|
-
### Game Object Patterns
|
174
|
-
|
175
|
-
**Component-Based Architecture:**
|
176
|
-
|
177
|
-
```csharp
|
178
|
-
// Player.cs - The main GameObject class, acts as a container for components.
|
179
|
-
using UnityEngine;
|
180
|
-
|
181
|
-
[RequireComponent(typeof(PlayerMovement), typeof(PlayerHealth))]
|
182
|
-
public class Player : MonoBehaviour
|
183
|
-
{
|
184
|
-
public PlayerMovement Movement { get; private set; }
|
185
|
-
public PlayerHealth Health { get; private set; }
|
186
|
-
|
187
|
-
private void Awake()
|
188
|
-
{
|
189
|
-
Movement = GetComponent<PlayerMovement>();
|
190
|
-
Health = GetComponent<PlayerHealth>();
|
191
|
-
}
|
192
|
-
}
|
193
|
-
|
194
|
-
// PlayerHealth.cs - A component responsible only for health logic.
|
195
|
-
public class PlayerHealth : MonoBehaviour
|
196
|
-
{
|
197
|
-
[SerializeField] private int _maxHealth = 100;
|
198
|
-
private int _currentHealth;
|
199
|
-
|
200
|
-
private void Awake()
|
201
|
-
{
|
202
|
-
_currentHealth = _maxHealth;
|
203
|
-
}
|
204
|
-
|
205
|
-
public void TakeDamage(int amount)
|
206
|
-
{
|
207
|
-
_currentHealth -= amount;
|
208
|
-
if (_currentHealth <= 0)
|
209
|
-
{
|
210
|
-
Die();
|
211
|
-
}
|
212
|
-
}
|
213
|
-
|
214
|
-
private void Die()
|
215
|
-
{
|
216
|
-
// Death logic
|
217
|
-
Debug.Log("Player has died.");
|
218
|
-
gameObject.SetActive(false);
|
219
|
-
}
|
220
|
-
}
|
221
|
-
```
|
222
|
-
|
223
|
-
### Data-Driven Design with ScriptableObjects
|
224
|
-
|
225
|
-
**Define Data Containers:**
|
226
|
-
|
227
|
-
```csharp
|
228
|
-
// EnemyData.cs - A ScriptableObject to hold data for an enemy type.
|
229
|
-
using UnityEngine;
|
230
|
-
|
231
|
-
[CreateAssetMenu(fileName = "NewEnemyData", menuName = "Game/Enemy Data")]
|
232
|
-
public class EnemyData : ScriptableObject
|
233
|
-
{
|
234
|
-
public string enemyName;
|
235
|
-
public int maxHealth;
|
236
|
-
public float moveSpeed;
|
237
|
-
public int damage;
|
238
|
-
public Sprite sprite;
|
239
|
-
}
|
240
|
-
|
241
|
-
// Enemy.cs - A MonoBehaviour that uses the EnemyData.
|
242
|
-
public class Enemy : MonoBehaviour
|
243
|
-
{
|
244
|
-
[SerializeField] private EnemyData _enemyData;
|
245
|
-
private int _currentHealth;
|
246
|
-
|
247
|
-
private void Start()
|
248
|
-
{
|
249
|
-
_currentHealth = _enemyData.maxHealth;
|
250
|
-
GetComponent<SpriteRenderer>().sprite = _enemyData.sprite;
|
251
|
-
}
|
252
|
-
|
253
|
-
// ... other enemy logic
|
254
|
-
}
|
255
|
-
```
|
256
|
-
|
257
|
-
### System Management
|
258
|
-
|
259
|
-
**Singleton Managers:**
|
260
|
-
|
261
|
-
```csharp
|
262
|
-
// GameManager.cs - A singleton to manage the overall game state.
|
263
|
-
using UnityEngine;
|
264
|
-
|
265
|
-
public class GameManager : MonoBehaviour
|
266
|
-
{
|
267
|
-
public static GameManager Instance { get; private set; }
|
268
|
-
|
269
|
-
public int Score { get; private set; }
|
270
|
-
|
271
|
-
private void Awake()
|
272
|
-
{
|
273
|
-
if (Instance != null && Instance != this)
|
274
|
-
{
|
275
|
-
Destroy(gameObject);
|
276
|
-
return;
|
277
|
-
}
|
278
|
-
Instance = this;
|
279
|
-
DontDestroyOnLoad(gameObject); // Persist across scenes
|
280
|
-
}
|
281
|
-
|
282
|
-
public void AddScore(int amount)
|
283
|
-
{
|
284
|
-
Score += amount;
|
285
|
-
}
|
286
|
-
}
|
287
|
-
```
|
288
|
-
|
289
|
-
## Performance Optimization
|
290
|
-
|
291
|
-
### Object Pooling
|
292
|
-
|
293
|
-
**Required for High-Frequency Objects (e.g., bullets, effects):**
|
294
|
-
|
295
|
-
```csharp
|
296
|
-
// ObjectPool.cs - A generic object pooling system.
|
297
|
-
using UnityEngine;
|
298
|
-
using System.Collections.Generic;
|
299
|
-
|
300
|
-
public class ObjectPool : MonoBehaviour
|
301
|
-
{
|
302
|
-
[SerializeField] private GameObject _prefabToPool;
|
303
|
-
[SerializeField] private int _initialPoolSize = 20;
|
304
|
-
|
305
|
-
private Queue<GameObject> _pool = new Queue<GameObject>();
|
306
|
-
|
307
|
-
private void Start()
|
308
|
-
{
|
309
|
-
for (int i = 0; i < _initialPoolSize; i++)
|
310
|
-
{
|
311
|
-
GameObject obj = Instantiate(_prefabToPool);
|
312
|
-
obj.SetActive(false);
|
313
|
-
_pool.Enqueue(obj);
|
314
|
-
}
|
315
|
-
}
|
316
|
-
|
317
|
-
public GameObject GetObjectFromPool()
|
318
|
-
{
|
319
|
-
if (_pool.Count > 0)
|
320
|
-
{
|
321
|
-
GameObject obj = _pool.Dequeue();
|
322
|
-
obj.SetActive(true);
|
323
|
-
return obj;
|
324
|
-
}
|
325
|
-
// Optionally, expand the pool if it's empty.
|
326
|
-
return Instantiate(_prefabToPool);
|
327
|
-
}
|
328
|
-
|
329
|
-
public void ReturnObjectToPool(GameObject obj)
|
330
|
-
{
|
331
|
-
obj.SetActive(false);
|
332
|
-
_pool.Enqueue(obj);
|
333
|
-
}
|
334
|
-
}
|
335
|
-
```
|
336
|
-
|
337
|
-
### Frame Rate Optimization
|
338
|
-
|
339
|
-
**Update Loop Optimization:**
|
340
|
-
|
341
|
-
- Avoid expensive calls like `GetComponent`, `FindObjectOfType`, or `Instantiate` inside `Update()` or `FixedUpdate()`. Cache references in `Awake()` or `Start()`.
|
342
|
-
- Use Coroutines or simple timers for logic that doesn't need to run every single frame.
|
343
|
-
|
344
|
-
**Physics Optimization:**
|
345
|
-
|
346
|
-
- Adjust the "Physics 2D Settings" in Project Settings, especially the "Layer Collision Matrix", to prevent unnecessary collision checks.
|
347
|
-
- Use `Rigidbody2D.Sleep()` for objects that are not moving to save CPU cycles.
|
348
|
-
|
349
|
-
## Input Handling
|
350
|
-
|
351
|
-
### Cross-Platform Input (New Input System)
|
352
|
-
|
353
|
-
**Input Action Asset:** Create an Input Action Asset (`.inputactions`) to define controls.
|
354
|
-
|
355
|
-
**PlayerInput Component:**
|
356
|
-
|
357
|
-
- Add the `PlayerInput` component to the player GameObject.
|
358
|
-
- Set its "Actions" to the created Input Action Asset.
|
359
|
-
- Set "Behavior" to "Invoke Unity Events" to easily hook up methods in the Inspector, or "Send Messages" to use methods like `OnMove`, `OnFire`.
|
360
|
-
|
361
|
-
```csharp
|
362
|
-
// PlayerInputHandler.cs - Example of handling input via messages.
|
363
|
-
using UnityEngine;
|
364
|
-
using UnityEngine.InputSystem;
|
365
|
-
|
366
|
-
public class PlayerInputHandler : MonoBehaviour
|
367
|
-
{
|
368
|
-
private Vector2 _moveInput;
|
369
|
-
|
370
|
-
// This method is called by the PlayerInput component via "Send Messages".
|
371
|
-
// The action must be named "Move" in the Input Action Asset.
|
372
|
-
public void OnMove(InputValue value)
|
373
|
-
{
|
374
|
-
_moveInput = value.Get<Vector2>();
|
375
|
-
}
|
376
|
-
|
377
|
-
private void Update()
|
378
|
-
{
|
379
|
-
// Use _moveInput to control the player
|
380
|
-
transform.Translate(new Vector3(_moveInput.x, _moveInput.y, 0) * Time.deltaTime * 5f);
|
381
|
-
}
|
382
|
-
}
|
383
|
-
```
|
384
|
-
|
385
|
-
## Error Handling
|
386
|
-
|
387
|
-
### Graceful Degradation
|
388
|
-
|
389
|
-
**Asset Loading Error Handling:**
|
390
|
-
|
391
|
-
- When using Addressables or `Resources.Load`, always check if the loaded asset is null before using it.
|
392
|
-
|
393
|
-
```csharp
|
394
|
-
// Load a sprite and use a fallback if it fails
|
395
|
-
Sprite playerSprite = Resources.Load<Sprite>("Sprites/Player");
|
396
|
-
if (playerSprite == null)
|
397
|
-
{
|
398
|
-
Debug.LogError("Player sprite not found! Using default.");
|
399
|
-
playerSprite = Resources.Load<Sprite>("Sprites/Default");
|
400
|
-
}
|
401
|
-
```
|
402
|
-
|
403
|
-
### Runtime Error Recovery
|
404
|
-
|
405
|
-
**Assertions and Logging:**
|
406
|
-
|
407
|
-
- Use `Debug.Assert(condition, "Message")` to check for critical conditions that must be true.
|
408
|
-
- Use `Debug.LogError("Message")` for fatal errors and `Debug.LogWarning("Message")` for non-critical issues.
|
409
|
-
|
410
|
-
```csharp
|
411
|
-
// Example of using an assertion to ensure a component exists.
|
412
|
-
private Rigidbody2D _rb;
|
413
|
-
|
414
|
-
void Awake()
|
415
|
-
{
|
416
|
-
_rb = GetComponent<Rigidbody2D>();
|
417
|
-
Debug.Assert(_rb != null, "Rigidbody2D component not found on player!");
|
418
|
-
}
|
419
|
-
```
|
420
|
-
|
421
|
-
## Testing Standards
|
422
|
-
|
423
|
-
### Unit Testing (Edit Mode)
|
424
|
-
|
425
|
-
**Game Logic Testing:**
|
426
|
-
|
427
|
-
```csharp
|
428
|
-
// HealthSystemTests.cs - Example test for a simple health system.
|
429
|
-
using NUnit.Framework;
|
430
|
-
using UnityEngine;
|
431
|
-
|
432
|
-
public class HealthSystemTests
|
433
|
-
{
|
434
|
-
[Test]
|
435
|
-
public void TakeDamage_ReducesHealth()
|
436
|
-
{
|
437
|
-
// Arrange
|
438
|
-
var gameObject = new GameObject();
|
439
|
-
var healthSystem = gameObject.AddComponent<PlayerHealth>();
|
440
|
-
// Note: This is a simplified example. You might need to mock dependencies.
|
441
|
-
|
442
|
-
// Act
|
443
|
-
healthSystem.TakeDamage(20);
|
444
|
-
|
445
|
-
// Assert
|
446
|
-
// This requires making health accessible for testing, e.g., via a public property or method.
|
447
|
-
// Assert.AreEqual(80, healthSystem.CurrentHealth);
|
448
|
-
}
|
449
|
-
}
|
450
|
-
```
|
451
|
-
|
452
|
-
### Integration Testing (Play Mode)
|
453
|
-
|
454
|
-
**Scene Testing:**
|
455
|
-
|
456
|
-
- Play Mode tests run in a live scene, allowing you to test interactions between multiple components and systems.
|
457
|
-
- Use `yield return null;` to wait for the next frame.
|
458
|
-
|
459
|
-
```csharp
|
460
|
-
// PlayerJumpTest.cs
|
461
|
-
using System.Collections;
|
462
|
-
using NUnit.Framework;
|
463
|
-
using UnityEngine;
|
464
|
-
using UnityEngine.TestTools;
|
465
|
-
|
466
|
-
public class PlayerJumpTest
|
467
|
-
{
|
468
|
-
[UnityTest]
|
469
|
-
public IEnumerator PlayerJumps_WhenSpaceIsPressed()
|
470
|
-
{
|
471
|
-
// Arrange
|
472
|
-
var player = new GameObject().AddComponent<PlayerController>();
|
473
|
-
var initialY = player.transform.position.y;
|
474
|
-
|
475
|
-
// Act
|
476
|
-
// Simulate pressing the jump button (requires setting up the input system for tests)
|
477
|
-
// For simplicity, we'll call a public method here.
|
478
|
-
// player.Jump();
|
479
|
-
|
480
|
-
// Wait for a few physics frames
|
481
|
-
yield return new WaitForSeconds(0.5f);
|
482
|
-
|
483
|
-
// Assert
|
484
|
-
Assert.Greater(player.transform.position.y, initialY);
|
485
|
-
}
|
486
|
-
}
|
487
|
-
```
|
488
|
-
|
489
|
-
## File Organization
|
490
|
-
|
491
|
-
### Project Structure
|
492
|
-
|
493
|
-
```
|
494
|
-
Assets/
|
495
|
-
├── Scenes/
|
496
|
-
│ ├── MainMenu.unity
|
497
|
-
│ └── Level01.unity
|
498
|
-
├── Scripts/
|
499
|
-
│ ├── Core/
|
500
|
-
│ │ ├── GameManager.cs
|
501
|
-
│ │ └── AudioManager.cs
|
502
|
-
│ ├── Player/
|
503
|
-
│ │ ├── PlayerController.cs
|
504
|
-
│ │ └── PlayerHealth.cs
|
505
|
-
│ ├── Editor/
|
506
|
-
│ │ └── CustomInspectors.cs
|
507
|
-
│ └── Data/
|
508
|
-
│ └── EnemyData.cs
|
509
|
-
├── Prefabs/
|
510
|
-
│ ├── Player.prefab
|
511
|
-
│ └── Enemies/
|
512
|
-
│ └── Slime.prefab
|
513
|
-
├── Art/
|
514
|
-
│ ├── Sprites/
|
515
|
-
│ └── Animations/
|
516
|
-
├── Audio/
|
517
|
-
│ ├── Music/
|
518
|
-
│ └── SFX/
|
519
|
-
├── Data/
|
520
|
-
│ └── ScriptableObjects/
|
521
|
-
│ └── EnemyData/
|
522
|
-
└── Tests/
|
523
|
-
├── EditMode/
|
524
|
-
│ └── HealthSystemTests.cs
|
525
|
-
└── PlayMode/
|
526
|
-
└── PlayerJumpTest.cs
|
527
|
-
```
|
528
|
-
|
529
|
-
## Development Workflow
|
530
|
-
|
531
|
-
### Story Implementation Process
|
532
|
-
|
533
|
-
1. **Read Story Requirements:**
|
534
|
-
|
535
|
-
- Understand acceptance criteria
|
536
|
-
- Identify technical requirements
|
537
|
-
- Review performance constraints
|
538
|
-
|
539
|
-
2. **Plan Implementation:**
|
540
|
-
|
541
|
-
- Identify files to create/modify
|
542
|
-
- Consider Unity's component-based architecture
|
543
|
-
- Plan testing approach
|
544
|
-
|
545
|
-
3. **Implement Feature:**
|
546
|
-
|
547
|
-
- Write clean C# code following all guidelines
|
548
|
-
- Use established patterns
|
549
|
-
- Maintain stable FPS performance
|
550
|
-
|
551
|
-
4. **Test Implementation:**
|
552
|
-
|
553
|
-
- Write edit mode tests for game logic
|
554
|
-
- Write play mode tests for integration testing
|
555
|
-
- Test cross-platform functionality
|
556
|
-
- Validate performance targets
|
557
|
-
|
558
|
-
5. **Update Documentation:**
|
559
|
-
- Mark story checkboxes complete
|
560
|
-
- Document any deviations
|
561
|
-
- Update architecture if needed
|
562
|
-
|
563
|
-
### Code Review Checklist
|
564
|
-
|
565
|
-
- [ ] C# code compiles without errors or warnings.
|
566
|
-
- [ ] All automated tests pass.
|
567
|
-
- [ ] Code follows naming conventions and architectural patterns.
|
568
|
-
- [ ] No expensive operations in `Update()` loops.
|
569
|
-
- [ ] Public fields/methods are documented with comments.
|
570
|
-
- [ ] New assets are organized into the correct folders.
|
571
|
-
|
572
|
-
## Performance Targets
|
573
|
-
|
574
|
-
### Frame Rate Requirements
|
575
|
-
|
576
|
-
- **PC/Console**: Maintain a stable 60+ FPS.
|
577
|
-
- **Mobile**: Maintain 60 FPS on mid-range devices, minimum 30 FPS on low-end.
|
578
|
-
- **Optimization**: Use the Unity Profiler to identify and fix performance drops.
|
579
|
-
|
580
|
-
### Memory Management
|
581
|
-
|
582
|
-
- **Total Memory**: Keep builds under platform-specific limits (e.g., 200MB for a simple mobile game).
|
583
|
-
- **Garbage Collection**: Minimize GC spikes by avoiding string concatenation, `new` keyword usage in loops, and by pooling objects.
|
584
|
-
|
585
|
-
### Loading Performance
|
586
|
-
|
587
|
-
- **Initial Load**: Under 5 seconds for game start.
|
588
|
-
- **Scene Transitions**: Under 2 seconds between scenes. Use asynchronous scene loading.
|
589
|
-
|
590
|
-
These guidelines ensure consistent, high-quality game development that meets performance targets and maintains code quality across all implementation stories.
|
@@ -1,111 +0,0 @@
|
|
1
|
-
# Advanced Game Design Elicitation Task
|
2
|
-
|
3
|
-
## Purpose
|
4
|
-
|
5
|
-
- Provide optional reflective and brainstorming actions to enhance game design content quality
|
6
|
-
- Enable deeper exploration of game mechanics and player experience through structured elicitation techniques
|
7
|
-
- Support iterative refinement through multiple game development perspectives
|
8
|
-
- Apply game-specific critical thinking to design decisions
|
9
|
-
|
10
|
-
## Task Instructions
|
11
|
-
|
12
|
-
### 1. Game Design Context and Review
|
13
|
-
|
14
|
-
[[LLM: When invoked after outputting a game design section:
|
15
|
-
|
16
|
-
1. First, provide a brief 1-2 sentence summary of what the user should look for in the section just presented, with game-specific focus (e.g., "Please review the core mechanics for player engagement and implementation feasibility. Pay special attention to how these mechanics create the intended player experience and whether they're technically achievable with Unity.")
|
17
|
-
|
18
|
-
2. If the section contains game flow diagrams, level layouts, or system diagrams, explain each diagram briefly with game development context before offering elicitation options (e.g., "The gameplay loop diagram shows how player actions lead to rewards and progression. Notice how each step maintains player engagement and creates opportunities for skill development.")
|
19
|
-
|
20
|
-
3. If the section contains multiple game elements (like multiple mechanics, multiple levels, multiple systems, etc.), inform the user they can apply elicitation actions to:
|
21
|
-
|
22
|
-
- The entire section as a whole
|
23
|
-
- Individual game elements within the section (specify which element when selecting an action)
|
24
|
-
|
25
|
-
4. Then present the action list as specified below.]]
|
26
|
-
|
27
|
-
### 2. Ask for Review and Present Game Design Action List
|
28
|
-
|
29
|
-
[[LLM: Ask the user to review the drafted game design section. In the SAME message, inform them that they can suggest additions, removals, or modifications, OR they can select an action by number from the 'Advanced Game Design Elicitation & Brainstorming Actions'. If there are multiple game elements in the section, mention they can specify which element(s) to apply the action to. Then, present ONLY the numbered list (0-9) of these actions. Conclude by stating that selecting 9 will proceed to the next section. Await user selection. If an elicitation action (0-8) is chosen, execute it and then re-offer this combined review/elicitation choice. If option 9 is chosen, or if the user provides direct feedback, proceed accordingly.]]
|
30
|
-
|
31
|
-
**Present the numbered list (0-9) with this exact format:**
|
32
|
-
|
33
|
-
```text
|
34
|
-
**Advanced Game Design Elicitation & Brainstorming Actions**
|
35
|
-
Choose an action (0-9 - 9 to bypass - HELP for explanation of these options):
|
36
|
-
|
37
|
-
0. Expand or Contract for Target Audience
|
38
|
-
1. Explain Game Design Reasoning (Step-by-Step)
|
39
|
-
2. Critique and Refine from Player Perspective
|
40
|
-
3. Analyze Game Flow and Mechanic Dependencies
|
41
|
-
4. Assess Alignment with Player Experience Goals
|
42
|
-
5. Identify Potential Player Confusion and Design Risks
|
43
|
-
6. Challenge from Critical Game Design Perspective
|
44
|
-
7. Explore Alternative Game Design Approaches
|
45
|
-
8. Hindsight Postmortem: The 'If Only...' Game Design Reflection
|
46
|
-
9. Proceed / No Further Actions
|
47
|
-
```
|
48
|
-
|
49
|
-
### 2. Processing Guidelines
|
50
|
-
|
51
|
-
**Do NOT show:**
|
52
|
-
|
53
|
-
- The full protocol text with `[[LLM: ...]]` instructions
|
54
|
-
- Detailed explanations of each option unless executing or the user asks, when giving the definition you can modify to tie its game development relevance
|
55
|
-
- Any internal template markup
|
56
|
-
|
57
|
-
**After user selection from the list:**
|
58
|
-
|
59
|
-
- Execute the chosen action according to the game design protocol instructions below
|
60
|
-
- Ask if they want to select another action or proceed with option 9 once complete
|
61
|
-
- Continue until user selects option 9 or indicates completion
|
62
|
-
|
63
|
-
## Game Design Action Definitions
|
64
|
-
|
65
|
-
0. Expand or Contract for Target Audience
|
66
|
-
[[LLM: Ask the user whether they want to 'expand' on the game design content (add more detail, elaborate on mechanics, include more examples) or 'contract' it (simplify mechanics, focus on core features, reduce complexity). Also, ask if there's a specific player demographic or experience level they have in mind (casual players, hardcore gamers, children, etc.). Once clarified, perform the expansion or contraction from your current game design role's perspective, tailored to the specified player audience if provided.]]
|
67
|
-
|
68
|
-
1. Explain Game Design Reasoning (Step-by-Step)
|
69
|
-
[[LLM: Explain the step-by-step game design thinking process that you used to arrive at the current proposal for this game content. Focus on player psychology, engagement mechanics, technical feasibility, and how design decisions support the overall player experience goals.]]
|
70
|
-
|
71
|
-
2. Critique and Refine from Player Perspective
|
72
|
-
[[LLM: From your current game design role's perspective, review your last output or the current section for potential player confusion, engagement issues, balance problems, or areas for improvement. Consider how players will actually interact with and experience these systems, then suggest a refined version that better serves player enjoyment and understanding.]]
|
73
|
-
|
74
|
-
3. Analyze Game Flow and Mechanic Dependencies
|
75
|
-
[[LLM: From your game design role's standpoint, examine the content's structure for logical gameplay progression, mechanic interdependencies, and player learning curve. Confirm if game elements are introduced in an effective order that teaches players naturally and maintains engagement throughout the experience.]]
|
76
|
-
|
77
|
-
4. Assess Alignment with Player Experience Goals
|
78
|
-
[[LLM: Evaluate how well the current game design content contributes to the stated player experience goals and core game pillars. Consider whether the mechanics actually create the intended emotions and engagement patterns. Identify any misalignments between design intentions and likely player reactions.]]
|
79
|
-
|
80
|
-
5. Identify Potential Player Confusion and Design Risks
|
81
|
-
[[LLM: Based on your game design expertise, brainstorm potential sources of player confusion, overlooked edge cases in gameplay, balance issues, technical implementation risks, or unintended player behaviors that could emerge from the current design. Consider both new and experienced players' perspectives.]]
|
82
|
-
|
83
|
-
6. Challenge from Critical Game Design Perspective
|
84
|
-
[[LLM: Adopt a critical game design perspective on the current content. If the user specifies another viewpoint (e.g., 'as a casual player', 'as a speedrunner', 'as a mobile player', 'as a technical implementer'), critique the content from that specified perspective. If no other role is specified, play devil's advocate from your game design expertise, arguing against the current design proposal and highlighting potential weaknesses, player experience issues, or implementation challenges. This can include questioning scope creep, unnecessary complexity, or features that don't serve the core player experience.]]
|
85
|
-
|
86
|
-
7. Explore Alternative Game Design Approaches
|
87
|
-
[[LLM: From your game design role's perspective, first broadly brainstorm a range of diverse approaches to achieving the same player experience goals or solving the same design challenge. Consider different genres, mechanics, interaction models, or technical approaches. Then, from this wider exploration, select and present 2-3 distinct alternative design approaches, detailing the pros, cons, player experience implications, and technical feasibility you foresee for each.]]
|
88
|
-
|
89
|
-
8. Hindsight Postmortem: The 'If Only...' Game Design Reflection
|
90
|
-
[[LLM: In your current game design persona, imagine this is a postmortem for a shipped game based on the current design content. What's the one 'if only we had designed/considered/tested X...' that your role would highlight from a game design perspective? Include the imagined player reactions, review scores, or development consequences. This should be both insightful and somewhat humorous, focusing on common game design pitfalls.]]
|
91
|
-
|
92
|
-
9. Proceed / No Further Actions
|
93
|
-
[[LLM: Acknowledge the user's choice to finalize the current game design work, accept the AI's last output as is, or move on to the next step without selecting another action from this list. Prepare to proceed accordingly.]]
|
94
|
-
|
95
|
-
## Game Development Context Integration
|
96
|
-
|
97
|
-
This elicitation task is specifically designed for game development and should be used in contexts where:
|
98
|
-
|
99
|
-
- **Game Mechanics Design**: When defining core gameplay systems and player interactions
|
100
|
-
- **Player Experience Planning**: When designing for specific emotional responses and engagement patterns
|
101
|
-
- **Technical Game Architecture**: When balancing design ambitions with implementation realities
|
102
|
-
- **Game Balance and Progression**: When designing difficulty curves and player advancement systems
|
103
|
-
- **Platform Considerations**: When adapting designs for different devices and input methods
|
104
|
-
|
105
|
-
The questions and perspectives offered should always consider:
|
106
|
-
|
107
|
-
- Player psychology and motivation
|
108
|
-
- Technical feasibility with Unity and C#
|
109
|
-
- Performance implications for stable frame rate targets
|
110
|
-
- Cross-platform compatibility (PC, console, mobile)
|
111
|
-
- Game development best practices and common pitfalls
|