appiq-solution 1.4.8 → 1.4.9
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/README.md +172 -48
- package/bmad-core/agent-teams/team-fullstack.yaml +1 -11
- package/bmad-core/agents/analyst.md +3 -7
- package/bmad-core/agents/architect.md +0 -6
- package/bmad-core/agents/dev.md +5 -24
- package/bmad-core/agents/pm.md +3 -7
- package/bmad-core/agents/qa.md +0 -17
- package/bmad-core/agents/sm.md +3 -8
- package/bmad-core/agents/ux-expert.md +3 -8
- package/bmad-core/data/technical-preferences.md +1 -147
- package/bmad-core/templates/fullstack-architecture-tmpl.yaml +5 -12
- package/bmad-core/workflows/brownfield-fullstack.yaml +1 -15
- package/bmad-core/workflows/greenfield-fullstack.yaml +5 -49
- package/bmad-core/working-in-the-brownfield.md +10 -19
- package/dist/agents/bmad-orchestrator.txt +0 -111
- package/dist/agents/pm.txt +2 -0
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -111
- package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -111
- package/dist/teams/team-all.txt +2 -111
- package/dist/teams/team-fullstack.txt +2 -111
- package/dist/teams/team-ide-minimal.txt +0 -111
- package/dist/teams/team-no-ui.txt +2 -111
- package/package.json +60 -18
- package/tools/cli.js +3 -3
- package/tools/installer/package-lock.json +2 -2
- package/#NEW APP PROMPT/ARCHITECTURE.md +0 -279
- package/#NEW APP PROMPT/ARCHITECTURE_UNIFIED.md +0 -414
- package/#NEW APP PROMPT/accesibility_prompt.md +0 -103
- package/#NEW APP PROMPT/clean-code.mdc +0 -55
- package/#NEW APP PROMPT/codequality.mdc +0 -47
- package/#NEW APP PROMPT/flutter-ai-rules/LICENSE +0 -21
- package/#NEW APP PROMPT/flutter-ai-rules/README.md +0 -104
- package/#NEW APP PROMPT/flutter-ai-rules/combined/README.md +0 -25
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart.md +0 -192
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart__under_6K.md +0 -99
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_bloc_mocktail.md +0 -308
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_bloc_mocktail__under_6K.md +0 -87
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_change_notifier.md +0 -254
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_change_notifier__under_6K.md +0 -98
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_provider.md +0 -261
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_provider__under_6K.md +0 -105
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_riverpod_mockito.md +0 -371
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_dart_riverpod_mockito__under_6K.md +0 -92
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_bloc.md +0 -287
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_bloc__under_6K.md +0 -68
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_riverpod.md +0 -375
- package/#NEW APP PROMPT/flutter-ai-rules/combined/flutter_with_riverpod__under_6K.md +0 -106
- package/#NEW APP PROMPT/flutter-ai-rules/media/flutter_ai_rules.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/media/mocktail_md_01.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/media/mocktail_md_02.png +0 -0
- package/#NEW APP PROMPT/flutter-ai-rules/rules/bloc.md +0 -94
- package/#NEW APP PROMPT/flutter-ai-rules/rules/dart_3_updates.md +0 -93
- package/#NEW APP PROMPT/flutter-ai-rules/rules/effective_dart.md +0 -105
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_app_architecture.md +0 -57
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_change_notifier.md +0 -62
- package/#NEW APP PROMPT/flutter-ai-rules/rules/flutter_errors.md +0 -11
- package/#NEW APP PROMPT/flutter-ai-rules/rules/mockito.md +0 -31
- package/#NEW APP PROMPT/flutter-ai-rules/rules/mocktail.md +0 -24
- package/#NEW APP PROMPT/flutter-ai-rules/rules/provider.md +0 -69
- package/#NEW APP PROMPT/flutter-ai-rules/rules/riverpod.md +0 -188
- package/#NEW APP PROMPT/generate ssh.md +0 -4
- package/#NEW APP PROMPT/project_ai_prompt.md +0 -544
- package/#Tools/APPIQ-METHOD/.bmad-config.json +0 -13
- package/#Tools/APPIQ-METHOD/.cursor/commands/analyze.md +0 -27
- package/#Tools/APPIQ-METHOD/.cursor/commands/appiq.md +0 -27
- package/#Tools/APPIQ-METHOD/.cursor/commands/help.md +0 -27
- package/#Tools/APPIQ-METHOD/.cursor/commands/story.md +0 -27
- package/#Tools/APPIQ-METHOD/DEVELOPMENT_GUIDE.md +0 -855
- package/#Tools/APPIQ-METHOD/NPM-README.md +0 -138
- package/#Tools/APPIQ-METHOD/README.md +0 -107
- package/#Tools/APPIQ-METHOD/SMART_WORKFLOW_GUIDE.md +0 -401
- package/#Tools/APPIQ-METHOD/activate-appiq.js +0 -81
- package/#Tools/APPIQ-METHOD/appiq-solution/README.md +0 -226
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-all.yaml +0 -14
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-flutter-mobile.yaml +0 -114
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-fullstack.yaml +0 -28
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-ide-minimal.yaml +0 -10
- package/#Tools/APPIQ-METHOD/bmad-core/agent-teams/team-no-ui.yaml +0 -13
- package/#Tools/APPIQ-METHOD/bmad-core/agents/analyst.md +0 -85
- package/#Tools/APPIQ-METHOD/bmad-core/agents/architect.md +0 -90
- package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-master.md +0 -108
- package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-orchestrator.md +0 -150
- package/#Tools/APPIQ-METHOD/bmad-core/agents/bmad-smart-launcher.md +0 -170
- package/#Tools/APPIQ-METHOD/bmad-core/agents/dev.md +0 -95
- package/#Tools/APPIQ-METHOD/bmad-core/agents/init-flow-po.md +0 -143
- package/#Tools/APPIQ-METHOD/bmad-core/agents/pm.md +0 -85
- package/#Tools/APPIQ-METHOD/bmad-core/agents/po.md +0 -76
- package/#Tools/APPIQ-METHOD/bmad-core/agents/qa.md +0 -86
- package/#Tools/APPIQ-METHOD/bmad-core/agents/sm.md +0 -67
- package/#Tools/APPIQ-METHOD/bmad-core/agents/ux-expert.md +0 -71
- package/#Tools/APPIQ-METHOD/bmad-core/bmad-core/user-guide.md +0 -0
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/architect-checklist.md +0 -443
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/change-checklist.md +0 -182
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/pm-checklist.md +0 -375
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/po-master-checklist.md +0 -441
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/security-validation-checklist.md +0 -332
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/story-dod-checklist.md +0 -101
- package/#Tools/APPIQ-METHOD/bmad-core/checklists/story-draft-checklist.md +0 -156
- package/#Tools/APPIQ-METHOD/bmad-core/core-config.yaml +0 -20
- package/#Tools/APPIQ-METHOD/bmad-core/core-config.yaml.bak +0 -20
- package/#Tools/APPIQ-METHOD/bmad-core/data/backend-services-integration.md +0 -686
- package/#Tools/APPIQ-METHOD/bmad-core/data/bmad-kb.md +0 -803
- package/#Tools/APPIQ-METHOD/bmad-core/data/brainstorming-techniques.md +0 -36
- package/#Tools/APPIQ-METHOD/bmad-core/data/elicitation-methods.md +0 -134
- package/#Tools/APPIQ-METHOD/bmad-core/data/shadcn-ui-integration.md +0 -388
- package/#Tools/APPIQ-METHOD/bmad-core/data/technical-preferences.md +0 -149
- package/#Tools/APPIQ-METHOD/bmad-core/enhanced-ide-development-workflow.md +0 -43
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/advanced-elicitation.md +0 -117
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/brownfield-create-epic.md +0 -160
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/brownfield-create-story.md +0 -147
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/correct-course.md +0 -70
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-brownfield-story.md +0 -304
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-deep-research-prompt.md +0 -289
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-flutter-story.md +0 -197
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/create-next-story.md +0 -112
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/document-project.md +0 -341
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/facilitate-brainstorming-session.md +0 -136
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/generate-ai-frontend-prompt.md +0 -51
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/index-docs.md +0 -179
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/intelligent-epic-creation.md +0 -234
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/kb-mode-interaction.md +0 -75
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/review-story.md +0 -145
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/shard-doc.md +0 -187
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/smart-project-analysis.md +0 -289
- package/#Tools/APPIQ-METHOD/bmad-core/tasks/validate-next-story.md +0 -134
- package/#Tools/APPIQ-METHOD/bmad-core/templates/architecture-tmpl.yaml +0 -650
- package/#Tools/APPIQ-METHOD/bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
- package/#Tools/APPIQ-METHOD/bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -476
- package/#Tools/APPIQ-METHOD/bmad-core/templates/brownfield-prd-tmpl.yaml +0 -280
- package/#Tools/APPIQ-METHOD/bmad-core/templates/competitor-analysis-tmpl.yaml +0 -293
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-mobile-prd-tmpl.yaml +0 -330
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-story-tmpl.yaml +0 -376
- package/#Tools/APPIQ-METHOD/bmad-core/templates/flutter-ui-spec-tmpl.yaml +0 -415
- package/#Tools/APPIQ-METHOD/bmad-core/templates/front-end-architecture-tmpl.yaml +0 -206
- package/#Tools/APPIQ-METHOD/bmad-core/templates/front-end-spec-tmpl.yaml +0 -349
- package/#Tools/APPIQ-METHOD/bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -812
- package/#Tools/APPIQ-METHOD/bmad-core/templates/market-research-tmpl.yaml +0 -252
- package/#Tools/APPIQ-METHOD/bmad-core/templates/prd-tmpl.yaml +0 -202
- package/#Tools/APPIQ-METHOD/bmad-core/templates/project-brief-tmpl.yaml +0 -221
- package/#Tools/APPIQ-METHOD/bmad-core/templates/story-tmpl.yaml +0 -137
- package/#Tools/APPIQ-METHOD/bmad-core/user-guide.md +0 -251
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-fullstack.yaml +0 -311
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-service.yaml +0 -187
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/brownfield-ui.yaml +0 -197
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-fullstack.yaml +0 -284
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-service.yaml +0 -206
- package/#Tools/APPIQ-METHOD/bmad-core/workflows/greenfield-ui.yaml +0 -235
- package/#Tools/APPIQ-METHOD/bmad-core/working-in-the-brownfield.md +0 -373
- package/#Tools/APPIQ-METHOD/commands/README.md +0 -28
- package/#Tools/APPIQ-METHOD/commands/analyze.md +0 -27
- package/#Tools/APPIQ-METHOD/commands/appiq.md +0 -27
- package/#Tools/APPIQ-METHOD/commands/help.md +0 -27
- package/#Tools/APPIQ-METHOD/commands/story.md +0 -27
- package/#Tools/APPIQ-METHOD/dist/agents/analyst.txt +0 -2882
- package/#Tools/APPIQ-METHOD/dist/agents/architect.txt +0 -3543
- package/#Tools/APPIQ-METHOD/dist/agents/bmad-master.txt +0 -8756
- package/#Tools/APPIQ-METHOD/dist/agents/bmad-orchestrator.txt +0 -1490
- package/#Tools/APPIQ-METHOD/dist/agents/dev.txt +0 -428
- package/#Tools/APPIQ-METHOD/dist/agents/pm.txt +0 -2229
- package/#Tools/APPIQ-METHOD/dist/agents/po.txt +0 -1364
- package/#Tools/APPIQ-METHOD/dist/agents/qa.txt +0 -386
- package/#Tools/APPIQ-METHOD/dist/agents/sm.txt +0 -668
- package/#Tools/APPIQ-METHOD/dist/agents/ux-expert.txt +0 -701
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +0 -2408
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +0 -1631
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +0 -822
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +0 -10989
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +0 -4047
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +0 -3744
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +0 -465
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +0 -990
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +0 -15467
- package/#Tools/APPIQ-METHOD/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +0 -2077
- package/#Tools/APPIQ-METHOD/dist/teams/team-all.txt +0 -11062
- package/#Tools/APPIQ-METHOD/dist/teams/team-fullstack.txt +0 -10392
- package/#Tools/APPIQ-METHOD/dist/teams/team-ide-minimal.txt +0 -3507
- package/#Tools/APPIQ-METHOD/dist/teams/team-no-ui.txt +0 -8951
- package/#Tools/APPIQ-METHOD/install-appiq.sh +0 -41
- package/#Tools/APPIQ-METHOD/package-lock.json +0 -631
- package/#Tools/APPIQ-METHOD/package.json +0 -44
- package/#Tools/APPIQ-METHOD/tasks/todo.md +0 -275
- package/#Tools/APPIQ-METHOD/tools/appiq-installer.js +0 -2711
- package/#Tools/APPIQ-METHOD/tools/bmad-npx-wrapper.js +0 -39
- package/#Tools/APPIQ-METHOD/tools/builders/web-builder.js +0 -681
- package/#Tools/APPIQ-METHOD/tools/bump-all-versions.js +0 -106
- package/#Tools/APPIQ-METHOD/tools/bump-expansion-version.js +0 -83
- package/#Tools/APPIQ-METHOD/tools/cli.js +0 -152
- package/#Tools/APPIQ-METHOD/tools/epic-solution-installer.js +0 -536
- package/#Tools/APPIQ-METHOD/tools/flattener/main.js +0 -570
- package/#Tools/APPIQ-METHOD/tools/installer/README.md +0 -8
- package/#Tools/APPIQ-METHOD/tools/installer/bin/bmad.js +0 -483
- package/#Tools/APPIQ-METHOD/tools/installer/config/ide-agent-config.yaml +0 -58
- package/#Tools/APPIQ-METHOD/tools/installer/config/install.config.yaml +0 -92
- package/#Tools/APPIQ-METHOD/tools/installer/lib/config-loader.js +0 -253
- package/#Tools/APPIQ-METHOD/tools/installer/lib/file-manager.js +0 -411
- package/#Tools/APPIQ-METHOD/tools/installer/lib/ide-base-setup.js +0 -227
- package/#Tools/APPIQ-METHOD/tools/installer/lib/ide-setup.js +0 -1096
- package/#Tools/APPIQ-METHOD/tools/installer/lib/installer.js +0 -1772
- package/#Tools/APPIQ-METHOD/tools/installer/lib/memory-profiler.js +0 -224
- package/#Tools/APPIQ-METHOD/tools/installer/lib/module-manager.js +0 -110
- package/#Tools/APPIQ-METHOD/tools/installer/lib/resource-locator.js +0 -310
- package/#Tools/APPIQ-METHOD/tools/installer/package-lock.json +0 -906
- package/#Tools/APPIQ-METHOD/tools/installer/package.json +0 -43
- package/#Tools/APPIQ-METHOD/tools/lib/dependency-resolver.js +0 -179
- package/#Tools/APPIQ-METHOD/tools/lib/yaml-utils.js +0 -29
- package/#Tools/APPIQ-METHOD/tools/md-assets/web-agent-startup-instructions.md +0 -39
- package/#Tools/APPIQ-METHOD/tools/semantic-release-sync-installer.js +0 -30
- package/#Tools/APPIQ-METHOD/tools/setup-ide-commands.js +0 -348
- package/#Tools/APPIQ-METHOD/tools/smart-installer.js +0 -592
- package/#Tools/APPIQ-METHOD/tools/sync-installer-version.js +0 -34
- package/#Tools/APPIQ-METHOD/tools/update-expansion-version.js +0 -54
- package/#Tools/APPIQ-METHOD/tools/upgraders/v3-to-v4-upgrader.js +0 -763
- package/#Tools/APPIQ-METHOD/tools/version-bump.js +0 -79
- package/#Tools/APPIQ-METHOD/tools/yaml-format.js +0 -240
- package/#Tools/SkyReels-V2/.pre-commit-config.yaml +0 -25
- package/#Tools/SkyReels-V2/LICENSE.txt +0 -38
- package/#Tools/SkyReels-V2/README.md +0 -766
- package/#Tools/SkyReels-V2/generate_video.py +0 -161
- package/#Tools/SkyReels-V2/generate_video_df.py +0 -220
- package/#Tools/SkyReels-V2/requirements.txt +0 -16
- package/#Tools/SkyReels-V2/skycaptioner_v1/README.md +0 -278
- package/#Tools/SkyReels-V2/skycaptioner_v1/examples/test.csv +0 -5
- package/#Tools/SkyReels-V2/skycaptioner_v1/examples/test_result.csv +0 -5
- package/#Tools/SkyReels-V2/skycaptioner_v1/infer_fusion_caption.sh +0 -9
- package/#Tools/SkyReels-V2/skycaptioner_v1/infer_struct_caption.sh +0 -8
- package/#Tools/SkyReels-V2/skycaptioner_v1/requirements.txt +0 -3
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/gradio_fusion_caption.py +0 -146
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/gradio_struct_caption.py +0 -92
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/utils.py +0 -19
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/vllm_fusion_caption.py +0 -256
- package/#Tools/SkyReels-V2/skycaptioner_v1/scripts/vllm_struct_caption.py +0 -156
- package/#Tools/SkyReels-V2/skyreels_v2_infer/__init__.py +0 -1
- package/#Tools/SkyReels-V2/skyreels_v2_infer/distributed/__init__.py +0 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/distributed/xdit_context_parallel.py +0 -286
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/__init__.py +0 -69
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/attention.py +0 -179
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/clip.py +0 -525
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/t5.py +0 -454
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/tokenizers.py +0 -78
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/transformer.py +0 -839
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/vae.py +0 -639
- package/#Tools/SkyReels-V2/skyreels_v2_infer/modules/xlm_roberta.py +0 -165
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/__init__.py +0 -5
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/diffusion_forcing_pipeline.py +0 -659
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/image2video_pipeline.py +0 -156
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/prompt_enhancer.py +0 -65
- package/#Tools/SkyReels-V2/skyreels_v2_infer/pipelines/text2video_pipeline.py +0 -110
- package/#Tools/SkyReels-V2/skyreels_v2_infer/scheduler/__init__.py +0 -0
- package/#Tools/SkyReels-V2/skyreels_v2_infer/scheduler/fm_solvers_unipc.py +0 -759
- package/#Tools/SuperClaude/.claude/commands/analyze.md +0 -36
- package/#Tools/SuperClaude/.claude/commands/build.md +0 -35
- package/#Tools/SuperClaude/.claude/commands/cleanup.md +0 -46
- package/#Tools/SuperClaude/.claude/commands/deploy.md +0 -55
- package/#Tools/SuperClaude/.claude/commands/design.md +0 -91
- package/#Tools/SuperClaude/.claude/commands/dev-setup.md +0 -37
- package/#Tools/SuperClaude/.claude/commands/document.md +0 -99
- package/#Tools/SuperClaude/.claude/commands/estimate.md +0 -69
- package/#Tools/SuperClaude/.claude/commands/explain.md +0 -85
- package/#Tools/SuperClaude/.claude/commands/git.md +0 -47
- package/#Tools/SuperClaude/.claude/commands/improve.md +0 -162
- package/#Tools/SuperClaude/.claude/commands/index.md +0 -159
- package/#Tools/SuperClaude/.claude/commands/load.md +0 -65
- package/#Tools/SuperClaude/.claude/commands/migrate.md +0 -76
- package/#Tools/SuperClaude/.claude/commands/scan.md +0 -163
- package/#Tools/SuperClaude/.claude/commands/shared/ambiguity-check.yml +0 -40
- package/#Tools/SuperClaude/.claude/commands/shared/audit.yml +0 -21
- package/#Tools/SuperClaude/.claude/commands/shared/checkpoint.yml +0 -28
- package/#Tools/SuperClaude/.claude/commands/shared/cleanup-patterns.yml +0 -107
- package/#Tools/SuperClaude/.claude/commands/shared/command-memory.yml +0 -52
- package/#Tools/SuperClaude/.claude/commands/shared/command-templates.yml +0 -167
- package/#Tools/SuperClaude/.claude/commands/shared/config-validator.yml +0 -206
- package/#Tools/SuperClaude/.claude/commands/shared/constants.yml +0 -311
- package/#Tools/SuperClaude/.claude/commands/shared/documentation-dirs.yml +0 -134
- package/#Tools/SuperClaude/.claude/commands/shared/error-handling.yml +0 -341
- package/#Tools/SuperClaude/.claude/commands/shared/evidence.yml +0 -75
- package/#Tools/SuperClaude/.claude/commands/shared/execution-lifecycle.yml +0 -277
- package/#Tools/SuperClaude/.claude/commands/shared/git-operations.yml +0 -217
- package/#Tools/SuperClaude/.claude/commands/shared/git-workflow.yml +0 -37
- package/#Tools/SuperClaude/.claude/commands/shared/implementation.yml +0 -199
- package/#Tools/SuperClaude/.claude/commands/shared/loading-config.yml +0 -73
- package/#Tools/SuperClaude/.claude/commands/shared/mcp-flags.yml +0 -109
- package/#Tools/SuperClaude/.claude/commands/shared/migration-report.md +0 -165
- package/#Tools/SuperClaude/.claude/commands/shared/patterns.yml +0 -155
- package/#Tools/SuperClaude/.claude/commands/shared/performance.yml +0 -317
- package/#Tools/SuperClaude/.claude/commands/shared/planning-mode.yml +0 -51
- package/#Tools/SuperClaude/.claude/commands/shared/research-first.yml +0 -278
- package/#Tools/SuperClaude/.claude/commands/shared/session-recovery.yml +0 -144
- package/#Tools/SuperClaude/.claude/commands/shared/severity-levels.yml +0 -252
- package/#Tools/SuperClaude/.claude/commands/shared/task-system.yml +0 -380
- package/#Tools/SuperClaude/.claude/commands/shared/task-ultracompressed.yml +0 -88
- package/#Tools/SuperClaude/.claude/commands/shared/templates/feature-template.md +0 -59
- package/#Tools/SuperClaude/.claude/commands/shared/templates/task-ultracompressed.md +0 -26
- package/#Tools/SuperClaude/.claude/commands/shared/thinking-modes.yml +0 -61
- package/#Tools/SuperClaude/.claude/commands/shared/ultracompressed.yml +0 -97
- package/#Tools/SuperClaude/.claude/commands/shared/user-experience.yml +0 -208
- package/#Tools/SuperClaude/.claude/commands/shared/validation.yml +0 -54
- package/#Tools/SuperClaude/.claude/commands/shared/workflow-chains.yml +0 -138
- package/#Tools/SuperClaude/.claude/commands/spawn.md +0 -106
- package/#Tools/SuperClaude/.claude/commands/task.md +0 -110
- package/#Tools/SuperClaude/.claude/commands/test.md +0 -67
- package/#Tools/SuperClaude/.claude/commands/troubleshoot.md +0 -93
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/bug_report.yml +0 -114
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/feature_request.yml +0 -119
- package/#Tools/SuperClaude/.github/ISSUE_TEMPLATE/question.yml +0 -87
- package/#Tools/SuperClaude/.github/pull_request_template.md +0 -62
- package/#Tools/SuperClaude/CHANGELOG.md +0 -109
- package/#Tools/SuperClaude/CLAUDE.md +0 -95
- package/#Tools/SuperClaude/CODE_OF_CONDUCT.md +0 -45
- package/#Tools/SuperClaude/CONTRIBUTING.md +0 -225
- package/#Tools/SuperClaude/Commands_Cheat_Sheet.md +0 -160
- package/#Tools/SuperClaude/LICENSE +0 -21
- package/#Tools/SuperClaude/MCP.md +0 -117
- package/#Tools/SuperClaude/PERSONAS.md +0 -115
- package/#Tools/SuperClaude/README.md +0 -249
- package/#Tools/SuperClaude/RULES.md +0 -220
- package/#Tools/SuperClaude/SECURITY.md +0 -91
- package/#Tools/SuperClaude/install.sh +0 -296
- package/#Tools/claude-talk-to-figma-mcp/.github/workflows/test.yml +0 -36
- package/#Tools/claude-talk-to-figma-mcp/CHANGELOG.md +0 -88
- package/#Tools/claude-talk-to-figma-mcp/Dockerfile +0 -16
- package/#Tools/claude-talk-to-figma-mcp/LICENSE +0 -22
- package/#Tools/claude-talk-to-figma-mcp/TESTING.md +0 -216
- package/#Tools/claude-talk-to-figma-mcp/bun.lock +0 -964
- package/#Tools/claude-talk-to-figma-mcp/context/01/00-analisis.md +0 -151
- package/#Tools/claude-talk-to-figma-mcp/context/01/01-tools-refactor.md +0 -370
- package/#Tools/claude-talk-to-figma-mcp/context/01/02-tools-refactor-backlog.md +0 -253
- package/#Tools/claude-talk-to-figma-mcp/context/01/03-tools-refactor-test.md +0 -138
- package/#Tools/claude-talk-to-figma-mcp/context/01/04-tools-refactor-channel-error.md +0 -133
- package/#Tools/claude-talk-to-figma-mcp/context/01/04-tools-refactor-test-backlog.md +0 -0
- package/#Tools/claude-talk-to-figma-mcp/context/01/05-tools-refactor-four-tools-error.md +0 -356
- package/#Tools/claude-talk-to-figma-mcp/context/01/06-tools-refactor-four-tools-error-backlog.md +0 -425
- package/#Tools/claude-talk-to-figma-mcp/context/01/prompt-dev-nodejs-bun.md +0 -105
- package/#Tools/claude-talk-to-figma-mcp/context/01-prompt.md +0 -135
- package/#Tools/claude-talk-to-figma-mcp/context/02/00-analisis.md +0 -131
- package/#Tools/claude-talk-to-figma-mcp/context/02/01-plan.md +0 -162
- package/#Tools/claude-talk-to-figma-mcp/context/02/02-backlog.md +0 -241
- package/#Tools/claude-talk-to-figma-mcp/context/02-analisis.md +0 -202
- package/#Tools/claude-talk-to-figma-mcp/context/99-notas.md +0 -139
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-analisis.md +0 -221
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-claude-tests.md +0 -152
- package/#Tools/claude-talk-to-figma-mcp/context/pr-14/pr-14-npm-publishing.md +0 -272
- package/#Tools/claude-talk-to-figma-mcp/images/claude-talk-to-figma.png +0 -0
- package/#Tools/claude-talk-to-figma-mcp/images/mcp-figma-plugin-configuration.png +0 -0
- package/#Tools/claude-talk-to-figma-mcp/jest.config.cjs +0 -25
- package/#Tools/claude-talk-to-figma-mcp/package.json +0 -67
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-es.md +0 -82
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-gal.md +0 -80
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-especialista-pt.md +0 -80
- package/#Tools/claude-talk-to-figma-mcp/prompts/prompt-ux-ui-specialist.md +0 -80
- package/#Tools/claude-talk-to-figma-mcp/readme.md +0 -307
- package/#Tools/claude-talk-to-figma-mcp/scripts/configure-claude.js +0 -90
- package/#Tools/claude-talk-to-figma-mcp/scripts/setup.sh +0 -30
- package/#Tools/claude-talk-to-figma-mcp/scripts/test-integration.js +0 -339
- package/#Tools/claude-talk-to-figma-mcp/smithery.yaml +0 -26
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/code.js +0 -3295
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/manifest.json +0 -24
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/setcharacters.js +0 -215
- package/#Tools/claude-talk-to-figma-mcp/src/claude_mcp_plugin/ui.html +0 -656
- package/#Tools/claude-talk-to-figma-mcp/src/socket.ts +0 -349
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/bun.lock +0 -246
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/config/config.ts +0 -22
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/package.json +0 -31
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/prompts/index.ts +0 -297
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/server.ts +0 -62
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/component-tools.ts +0 -48
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/creation-tools.ts +0 -620
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/document-tools.ts +0 -390
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/index.ts +0 -28
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/modification-tools.ts +0 -408
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tools/text-tools.ts +0 -531
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/tsconfig.json +0 -18
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/types/color.ts +0 -13
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/types/index.ts +0 -87
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/defaults.ts +0 -23
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/figma-helpers.ts +0 -142
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/logger.ts +0 -8
- package/#Tools/claude-talk-to-figma-mcp/src/talk_to_figma_mcp/utils/websocket.ts +0 -258
- package/#Tools/claude-talk-to-figma-mcp/tests/fixtures/test-data.ts +0 -32
- package/#Tools/claude-talk-to-figma-mcp/tests/integration/set-fill-color.test.ts +0 -309
- package/#Tools/claude-talk-to-figma-mcp/tests/integration/set-stroke-color.test.ts +0 -387
- package/#Tools/claude-talk-to-figma-mcp/tests/setup.ts +0 -7
- package/#Tools/claude-talk-to-figma-mcp/tests/unit/utils/defaults.test.ts +0 -131
- package/#Tools/claude-talk-to-figma-mcp/tsconfig.json +0 -17
- package/#Tools/claude-talk-to-figma-mcp/tsup.config.ts +0 -14
- package/#Tools/jwt creator/AuthKey_MZ7UQGFV2Q.p8 +0 -6
- package/#Tools/jwt creator/generate_apple_jwt.js +0 -18
- package/#Tools/jwt creator/node_modules/.package-lock.json +0 -145
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/.travis.yml +0 -4
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/LICENSE.txt +0 -12
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/README.md +0 -50
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/index.js +0 -41
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/package.json +0 -21
- package/#Tools/jwt creator/node_modules/buffer-equal-constant-time/test.js +0 -42
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/CODEOWNERS +0 -1
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/LICENSE +0 -201
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/README.md +0 -65
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/package.json +0 -46
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.d.ts +0 -17
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js +0 -187
- package/#Tools/jwt creator/node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js +0 -23
- package/#Tools/jwt creator/node_modules/jsonwebtoken/LICENSE +0 -21
- package/#Tools/jwt creator/node_modules/jsonwebtoken/README.md +0 -396
- package/#Tools/jwt creator/node_modules/jsonwebtoken/decode.js +0 -30
- package/#Tools/jwt creator/node_modules/jsonwebtoken/index.js +0 -8
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/JsonWebTokenError.js +0 -14
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/NotBeforeError.js +0 -13
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/TokenExpiredError.js +0 -13
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/asymmetricKeyDetailsSupported.js +0 -3
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/psSupported.js +0 -3
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/rsaPssKeyDetailsSupported.js +0 -3
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/timespan.js +0 -18
- package/#Tools/jwt creator/node_modules/jsonwebtoken/lib/validateAsymmetricKey.js +0 -66
- package/#Tools/jwt creator/node_modules/jsonwebtoken/package.json +0 -71
- package/#Tools/jwt creator/node_modules/jsonwebtoken/sign.js +0 -253
- package/#Tools/jwt creator/node_modules/jsonwebtoken/verify.js +0 -263
- package/#Tools/jwt creator/node_modules/jwa/LICENSE +0 -17
- package/#Tools/jwt creator/node_modules/jwa/README.md +0 -150
- package/#Tools/jwt creator/node_modules/jwa/index.js +0 -266
- package/#Tools/jwt creator/node_modules/jwa/package.json +0 -37
- package/#Tools/jwt creator/node_modules/jws/CHANGELOG.md +0 -34
- package/#Tools/jwt creator/node_modules/jws/LICENSE +0 -17
- package/#Tools/jwt creator/node_modules/jws/index.js +0 -22
- package/#Tools/jwt creator/node_modules/jws/lib/data-stream.js +0 -55
- package/#Tools/jwt creator/node_modules/jws/lib/sign-stream.js +0 -78
- package/#Tools/jwt creator/node_modules/jws/lib/tostring.js +0 -10
- package/#Tools/jwt creator/node_modules/jws/lib/verify-stream.js +0 -120
- package/#Tools/jwt creator/node_modules/jws/package.json +0 -34
- package/#Tools/jwt creator/node_modules/jws/readme.md +0 -255
- package/#Tools/jwt creator/node_modules/lodash.includes/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.includes/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.includes/index.js +0 -745
- package/#Tools/jwt creator/node_modules/lodash.includes/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isboolean/LICENSE +0 -22
- package/#Tools/jwt creator/node_modules/lodash.isboolean/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isboolean/index.js +0 -70
- package/#Tools/jwt creator/node_modules/lodash.isboolean/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isinteger/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.isinteger/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isinteger/index.js +0 -265
- package/#Tools/jwt creator/node_modules/lodash.isinteger/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isnumber/LICENSE +0 -22
- package/#Tools/jwt creator/node_modules/lodash.isnumber/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isnumber/index.js +0 -79
- package/#Tools/jwt creator/node_modules/lodash.isnumber/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/index.js +0 -139
- package/#Tools/jwt creator/node_modules/lodash.isplainobject/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.isstring/LICENSE +0 -22
- package/#Tools/jwt creator/node_modules/lodash.isstring/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.isstring/index.js +0 -95
- package/#Tools/jwt creator/node_modules/lodash.isstring/package.json +0 -17
- package/#Tools/jwt creator/node_modules/lodash.once/LICENSE +0 -47
- package/#Tools/jwt creator/node_modules/lodash.once/README.md +0 -18
- package/#Tools/jwt creator/node_modules/lodash.once/index.js +0 -294
- package/#Tools/jwt creator/node_modules/lodash.once/package.json +0 -17
- package/#Tools/jwt creator/node_modules/ms/index.js +0 -162
- package/#Tools/jwt creator/node_modules/ms/license.md +0 -21
- package/#Tools/jwt creator/node_modules/ms/package.json +0 -38
- package/#Tools/jwt creator/node_modules/ms/readme.md +0 -59
- package/#Tools/jwt creator/node_modules/safe-buffer/LICENSE +0 -21
- package/#Tools/jwt creator/node_modules/safe-buffer/README.md +0 -584
- package/#Tools/jwt creator/node_modules/safe-buffer/index.d.ts +0 -187
- package/#Tools/jwt creator/node_modules/safe-buffer/index.js +0 -65
- package/#Tools/jwt creator/node_modules/safe-buffer/package.json +0 -51
- package/#Tools/jwt creator/node_modules/semver/LICENSE +0 -15
- package/#Tools/jwt creator/node_modules/semver/README.md +0 -664
- package/#Tools/jwt creator/node_modules/semver/bin/semver.js +0 -191
- package/#Tools/jwt creator/node_modules/semver/classes/comparator.js +0 -143
- package/#Tools/jwt creator/node_modules/semver/classes/index.js +0 -7
- package/#Tools/jwt creator/node_modules/semver/classes/range.js +0 -556
- package/#Tools/jwt creator/node_modules/semver/classes/semver.js +0 -319
- package/#Tools/jwt creator/node_modules/semver/functions/clean.js +0 -8
- package/#Tools/jwt creator/node_modules/semver/functions/cmp.js +0 -54
- package/#Tools/jwt creator/node_modules/semver/functions/coerce.js +0 -62
- package/#Tools/jwt creator/node_modules/semver/functions/compare-build.js +0 -9
- package/#Tools/jwt creator/node_modules/semver/functions/compare-loose.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/compare.js +0 -7
- package/#Tools/jwt creator/node_modules/semver/functions/diff.js +0 -60
- package/#Tools/jwt creator/node_modules/semver/functions/eq.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/gt.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/gte.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/inc.js +0 -21
- package/#Tools/jwt creator/node_modules/semver/functions/lt.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/lte.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/major.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/minor.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/neq.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/parse.js +0 -18
- package/#Tools/jwt creator/node_modules/semver/functions/patch.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/prerelease.js +0 -8
- package/#Tools/jwt creator/node_modules/semver/functions/rcompare.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/rsort.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/satisfies.js +0 -12
- package/#Tools/jwt creator/node_modules/semver/functions/sort.js +0 -5
- package/#Tools/jwt creator/node_modules/semver/functions/valid.js +0 -8
- package/#Tools/jwt creator/node_modules/semver/index.js +0 -91
- package/#Tools/jwt creator/node_modules/semver/internal/constants.js +0 -37
- package/#Tools/jwt creator/node_modules/semver/internal/debug.js +0 -11
- package/#Tools/jwt creator/node_modules/semver/internal/identifiers.js +0 -25
- package/#Tools/jwt creator/node_modules/semver/internal/lrucache.js +0 -42
- package/#Tools/jwt creator/node_modules/semver/internal/parse-options.js +0 -17
- package/#Tools/jwt creator/node_modules/semver/internal/re.js +0 -223
- package/#Tools/jwt creator/node_modules/semver/package.json +0 -78
- package/#Tools/jwt creator/node_modules/semver/preload.js +0 -4
- package/#Tools/jwt creator/node_modules/semver/range.bnf +0 -16
- package/#Tools/jwt creator/node_modules/semver/ranges/gtr.js +0 -6
- package/#Tools/jwt creator/node_modules/semver/ranges/intersects.js +0 -9
- package/#Tools/jwt creator/node_modules/semver/ranges/ltr.js +0 -6
- package/#Tools/jwt creator/node_modules/semver/ranges/max-satisfying.js +0 -27
- package/#Tools/jwt creator/node_modules/semver/ranges/min-satisfying.js +0 -26
- package/#Tools/jwt creator/node_modules/semver/ranges/min-version.js +0 -63
- package/#Tools/jwt creator/node_modules/semver/ranges/outside.js +0 -82
- package/#Tools/jwt creator/node_modules/semver/ranges/simplify.js +0 -49
- package/#Tools/jwt creator/node_modules/semver/ranges/subset.js +0 -249
- package/#Tools/jwt creator/node_modules/semver/ranges/to-comparators.js +0 -10
- package/#Tools/jwt creator/node_modules/semver/ranges/valid.js +0 -13
- package/#Tools/jwt creator/package-lock.json +0 -150
- package/#Tools/jwt creator/package.json +0 -5
- package/#Tools/package.json +0 -94
- package/SuperClaude/.claude/commands/analyze.md +0 -36
- package/SuperClaude/.claude/commands/build.md +0 -35
- package/SuperClaude/.claude/commands/cleanup.md +0 -46
- package/SuperClaude/.claude/commands/deploy.md +0 -55
- package/SuperClaude/.claude/commands/design.md +0 -91
- package/SuperClaude/.claude/commands/dev-setup.md +0 -37
- package/SuperClaude/.claude/commands/document.md +0 -99
- package/SuperClaude/.claude/commands/estimate.md +0 -69
- package/SuperClaude/.claude/commands/explain.md +0 -85
- package/SuperClaude/.claude/commands/git.md +0 -47
- package/SuperClaude/.claude/commands/improve.md +0 -162
- package/SuperClaude/.claude/commands/index.md +0 -159
- package/SuperClaude/.claude/commands/load.md +0 -65
- package/SuperClaude/.claude/commands/migrate.md +0 -76
- package/SuperClaude/.claude/commands/scan.md +0 -163
- package/SuperClaude/.claude/commands/shared/ambiguity-check.yml +0 -40
- package/SuperClaude/.claude/commands/shared/audit.yml +0 -21
- package/SuperClaude/.claude/commands/shared/checkpoint.yml +0 -28
- package/SuperClaude/.claude/commands/shared/cleanup-patterns.yml +0 -107
- package/SuperClaude/.claude/commands/shared/command-memory.yml +0 -52
- package/SuperClaude/.claude/commands/shared/command-templates.yml +0 -167
- package/SuperClaude/.claude/commands/shared/config-validator.yml +0 -206
- package/SuperClaude/.claude/commands/shared/constants.yml +0 -311
- package/SuperClaude/.claude/commands/shared/documentation-dirs.yml +0 -134
- package/SuperClaude/.claude/commands/shared/error-handling.yml +0 -341
- package/SuperClaude/.claude/commands/shared/evidence.yml +0 -75
- package/SuperClaude/.claude/commands/shared/execution-lifecycle.yml +0 -277
- package/SuperClaude/.claude/commands/shared/git-operations.yml +0 -217
- package/SuperClaude/.claude/commands/shared/git-workflow.yml +0 -37
- package/SuperClaude/.claude/commands/shared/implementation.yml +0 -199
- package/SuperClaude/.claude/commands/shared/loading-config.yml +0 -73
- package/SuperClaude/.claude/commands/shared/mcp-flags.yml +0 -109
- package/SuperClaude/.claude/commands/shared/migration-report.md +0 -165
- package/SuperClaude/.claude/commands/shared/patterns.yml +0 -155
- package/SuperClaude/.claude/commands/shared/performance.yml +0 -317
- package/SuperClaude/.claude/commands/shared/planning-mode.yml +0 -51
- package/SuperClaude/.claude/commands/shared/research-first.yml +0 -278
- package/SuperClaude/.claude/commands/shared/session-recovery.yml +0 -144
- package/SuperClaude/.claude/commands/shared/severity-levels.yml +0 -252
- package/SuperClaude/.claude/commands/shared/task-system.yml +0 -380
- package/SuperClaude/.claude/commands/shared/task-ultracompressed.yml +0 -88
- package/SuperClaude/.claude/commands/shared/templates/feature-template.md +0 -59
- package/SuperClaude/.claude/commands/shared/templates/task-ultracompressed.md +0 -26
- package/SuperClaude/.claude/commands/shared/thinking-modes.yml +0 -61
- package/SuperClaude/.claude/commands/shared/ultracompressed.yml +0 -97
- package/SuperClaude/.claude/commands/shared/user-experience.yml +0 -208
- package/SuperClaude/.claude/commands/shared/validation.yml +0 -54
- package/SuperClaude/.claude/commands/shared/workflow-chains.yml +0 -138
- package/SuperClaude/.claude/commands/spawn.md +0 -106
- package/SuperClaude/.claude/commands/task.md +0 -110
- package/SuperClaude/.claude/commands/test.md +0 -67
- package/SuperClaude/.claude/commands/troubleshoot.md +0 -93
- package/SuperClaude/.github/ISSUE_TEMPLATE/bug_report.yml +0 -114
- package/SuperClaude/.github/ISSUE_TEMPLATE/feature_request.yml +0 -119
- package/SuperClaude/.github/ISSUE_TEMPLATE/question.yml +0 -87
- package/SuperClaude/.github/pull_request_template.md +0 -62
- package/SuperClaude/CHANGELOG.md +0 -109
- package/SuperClaude/CLAUDE.md +0 -95
- package/SuperClaude/CODE_OF_CONDUCT.md +0 -45
- package/SuperClaude/CONTRIBUTING.md +0 -225
- package/SuperClaude/Commands_Cheat_Sheet.md +0 -160
- package/SuperClaude/LICENSE +0 -21
- package/SuperClaude/MCP.md +0 -117
- package/SuperClaude/PERSONAS.md +0 -115
- package/SuperClaude/README.md +0 -249
- package/SuperClaude/RULES.md +0 -220
- package/SuperClaude/SECURITY.md +0 -91
- package/SuperClaude/install.sh +0 -296
- package/appiq-mcp installer/How-to.md +0 -250
- package/appiq-mcp installer/LICENSE +0 -21
- package/appiq-mcp installer/README.md +0 -235
- package/appiq-mcp installer/index.js +0 -672
- package/appiq-mcp installer/my_mcps.md +0 -105
- package/appiq-mcp installer/package-lock.json +0 -708
- package/appiq-mcp installer/package.json +0 -46
- package/appiq-mcp installer/test-install.bat +0 -60
- package/appiq-mcp installer/test-install.sh +0 -55
- package/appiq-mcp installer/test-load.js +0 -40
- package/bmad-core/agent-teams/team-flutter-mobile.yaml +0 -114
- package/bmad-core/agents/bmad-smart-launcher.md +0 -170
- package/bmad-core/agents/init-flow-po.md +0 -143
- package/bmad-core/checklists/security-validation-checklist.md +0 -332
- package/bmad-core/core-config.yaml.bak +0 -20
- package/bmad-core/data/backend-services-integration.md +0 -686
- package/bmad-core/data/shadcn-ui-integration.md +0 -388
- package/bmad-core/tasks/create-flutter-story.md +0 -197
- package/bmad-core/tasks/intelligent-epic-creation.md +0 -234
- package/bmad-core/tasks/smart-project-analysis.md +0 -289
- package/bmad-core/templates/flutter-mobile-prd-tmpl.yaml +0 -330
- package/bmad-core/templates/flutter-story-tmpl.yaml +0 -376
- package/bmad-core/templates/flutter-ui-spec-tmpl.yaml +0 -415
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-analytics.txt +0 -1530
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-architect.txt +0 -322
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-developer.txt +0 -692
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-pm.txt +0 -382
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-qa.txt +0 -665
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-security.txt +0 -1070
- package/dist/expansion-packs/bmad-mobile-app-dev/agents/mobile-ux-expert.txt +0 -1494
- package/dist/expansion-packs/bmad-mobile-app-dev/teams/mobile-team-cross-platform.txt +0 -15613
- package/flutter/CLAUDE.md +0 -58
- package/flutter/punkt.claude/New Folder With Items/channel.md +0 -221
- package/flutter/punkt.claude/New Folder With Items/commands/add-translations.md +0 -12
- package/flutter/punkt.claude/New Folder With Items/commands/create-feature.md +0 -168
- package/flutter/punkt.claude/New Folder With Items/commands/explain-codebase.md +0 -1
- package/flutter/punkt.claude/New Folder With Items/commands/feature-business-logic.md +0 -551
- package/flutter/punkt.claude/New Folder With Items/commands/feature-data-layer.md +0 -924
- package/flutter/punkt.claude/New Folder With Items/commands/feature-domain-layer.md +0 -540
- package/flutter/punkt.claude/New Folder With Items/commands/feature-integration.md +0 -493
- package/flutter/punkt.claude/New Folder With Items/commands/feature-localization.md +0 -427
- package/flutter/punkt.claude/New Folder With Items/commands/feature-ui-layer.md +0 -300
- package/flutter/punkt.claude/New Folder With Items/commands/git-commit.md +0 -3
- package/flutter/punkt.claude/New Folder With Items/commands/search-web.md +0 -1
- package/flutter/punkt.claude/punkt.claude/channel.md +0 -225
- package/flutter/punkt.claude/punkt.claude/commands/add-translations.md +0 -60
- package/flutter/punkt.claude/punkt.claude/commands/bug-fix.md +0 -32
- package/flutter/punkt.claude/punkt.claude/commands/checkdev.md +0 -122
- package/flutter/punkt.claude/punkt.claude/commands/create-feature.md +0 -174
- package/flutter/punkt.claude/punkt.claude/commands/dev.md +0 -79
- package/flutter/punkt.claude/punkt.claude/commands/explain-codebase.md +0 -1
- package/flutter/punkt.claude/punkt.claude/commands/feature-business-logic.md +0 -430
- package/flutter/punkt.claude/punkt.claude/commands/feature-data-layer.md +0 -572
- package/flutter/punkt.claude/punkt.claude/commands/feature-domain-layer.md +0 -537
- package/flutter/punkt.claude/punkt.claude/commands/feature-integration.md +0 -493
- package/flutter/punkt.claude/punkt.claude/commands/feature-localization.md +0 -427
- package/flutter/punkt.claude/punkt.claude/commands/feature-ui-layer.md +0 -831
- package/flutter/punkt.claude/punkt.claude/commands/git-commit.md +0 -3
- package/flutter/punkt.claude/punkt.claude/commands/manage-translations.md +0 -433
- package/flutter/punkt.claude/punkt.claude/commands/search-web.md +0 -1
- package/flutter/punkt.claude/punkt.claude/developer_check.md +0 -121
- package/tools/appiq-installer.js +0 -2711
- package/tools/epic-solution-installer.js +0 -536
- package/tools/setup-ide-commands.js +0 -348
- package/tools/smart-installer.js +0 -592
- package/web/CLAUDE.md +0 -58
- /package/{#Tools/APPIQ-METHOD/.github → .github}/FUNDING.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/.github → .github}/ISSUE_TEMPLATE/bug_report.md +0 -0
- /package/{#Tools/APPIQ-METHOD/.github → .github}/ISSUE_TEMPLATE/feature_request.md +0 -0
- /package/{#Tools/APPIQ-METHOD/.github → .github}/workflows/release.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/.releaserc.json → .releaserc.json} +0 -0
- /package/{#Tools/APPIQ-METHOD/.vscode → .vscode}/settings.json +0 -0
- /package/{#Tools/APPIQ-METHOD/CHANGELOG.md → CHANGELOG.md} +0 -0
- /package/{#Tools/APPIQ-METHOD/CONTRIBUTING.md → CONTRIBUTING.md} +0 -0
- /package/{#Tools/APPIQ-METHOD/LICENSE → LICENSE} +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/tasks/create-doc.md +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/tasks/execute-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/utils/bmad-doc-template.md +0 -0
- /package/{#Tools/APPIQ-METHOD/common → common}/utils/workflow-management.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/GUIDING-PRINCIPLES.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/core-architecture.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/expansion-packs.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/how-to-contribute-with-pull-requests.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/versioning-and-releases.md +0 -0
- /package/{#Tools/APPIQ-METHOD/docs → docs}/versions.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/README.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agent-teams/flutter-mobile-team.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-cubit-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-data-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-domain-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/flutter-ui-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/agents/shared-components-agent.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/checklists/flutter-story-dod-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/data/flutter-development-guidelines.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/templates/flutter-mobile-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs/bmad-flutter-mobile-dev → expansion-packs/appiq-flutter-mobile-dev}/workflows/flutter-ui-first-development.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agents/game-designer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agents/game-developer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/agents/game-sm.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/data/development-guidelines.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/tasks/create-game-story.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-architect.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-designer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-developer.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/agents/game-sm.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/data/bmad-kb.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/data/development-guidelines.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/correct-course-game.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/create-game-story.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/tasks/validate-game-story.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/README.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/agents/infra-devops-platform.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/config.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/data/bmad-kb.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/tasks/review-infrastructure.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/tasks/validate-infrastructure.md +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +0 -0
- /package/{#Tools/APPIQ-METHOD/expansion-packs → expansion-packs}/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +0 -0
@@ -1,831 +0,0 @@
|
|
1
|
-
# UI Layer Development Command
|
2
|
-
|
3
|
-
Develops the presentation layer (UI) for a feature following AiGo architectural patterns with RiverPod integration, Material 3, and multilingual support.
|
4
|
-
|
5
|
-
**Usage:** `feature-ui-layer [FEATURE_NAME] [FEATURE_DESCRIPTION]`
|
6
|
-
|
7
|
-
**Example:** `feature-ui-layer user-favorites "Allow users to mark places as favorites and view them in a separate list"`
|
8
|
-
|
9
|
-
## Pre-Execution Checklist
|
10
|
-
|
11
|
-
1. **Check Channel Status**: Read `/Users/vapps-it/Projects/AiGo/sourceCode/mobile_app/.claude/channel.md`
|
12
|
-
2. **Verify Dependencies**: Ensure architecture analysis is completed
|
13
|
-
3. **Update Channel**: Mark UI Layer status as "IN_PROGRESS" and assign agent
|
14
|
-
4. **Check Blockers**: Verify no blockers are preventing UI development
|
15
|
-
|
16
|
-
## Implementation Process
|
17
|
-
|
18
|
-
### Phase 1: Analysis & Planning
|
19
|
-
|
20
|
-
1. **Study Existing UI Patterns**:
|
21
|
-
- Analyze `lib/views/*/screens/` structure and patterns
|
22
|
-
- Study existing screen implementations and widgets in `lib/core/widgets/`
|
23
|
-
- Review AppTheme implementation and Material 3 usage
|
24
|
-
- Check responsive design patterns and screen mixins
|
25
|
-
- Understand RiverPod provider consumption in UI
|
26
|
-
- Review localization patterns with `context.l10n`
|
27
|
-
|
28
|
-
2. **Define UI Requirements**:
|
29
|
-
- Identify main screens needed for the feature
|
30
|
-
- Plan RiverPod provider integration
|
31
|
-
- Define user interactions and navigation flows
|
32
|
-
- Plan responsive design with existing mixins
|
33
|
-
- Plan Material 3 component usage
|
34
|
-
- Identify multilingual text requirements
|
35
|
-
|
36
|
-
3. **Update Channel**: Add UI requirements to channel.md
|
37
|
-
|
38
|
-
### Phase 2: Screen Structure Implementation
|
39
|
-
|
40
|
-
1. **Create Main Screen** (`lib/views/[feature]/screens/[feature]_screen.dart`):
|
41
|
-
```dart
|
42
|
-
import 'package:flutter/material.dart';
|
43
|
-
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
44
|
-
import 'package:aigo/core/widgets/base_scaffold.dart';
|
45
|
-
import 'package:aigo/core/widgets/loading_indicator.dart';
|
46
|
-
import 'package:aigo/core/widgets/error_screen.dart';
|
47
|
-
import 'package:aigo/l10n/l10n.dart';
|
48
|
-
import '../providers/[feature]_provider.dart';
|
49
|
-
import '../widgets/[feature]_list_item.dart';
|
50
|
-
import '../widgets/[feature]_empty_state.dart';
|
51
|
-
|
52
|
-
class [FeatureName]Screen extends ConsumerWidget {
|
53
|
-
const [FeatureName]Screen({Key? key}) : super(key: key);
|
54
|
-
|
55
|
-
@override
|
56
|
-
Widget build(BuildContext context, WidgetRef ref) {
|
57
|
-
return BaseScaffold(
|
58
|
-
title: context.l10n.[featureName]Title,
|
59
|
-
actions: [
|
60
|
-
IconButton(
|
61
|
-
icon: const Icon(Icons.add),
|
62
|
-
onPressed: () => _showAddDialog(context, ref),
|
63
|
-
),
|
64
|
-
],
|
65
|
-
floatingActionButton: FloatingActionButton(
|
66
|
-
onPressed: () => _showAddDialog(context, ref),
|
67
|
-
child: const Icon(Icons.add),
|
68
|
-
),
|
69
|
-
body: const _[FeatureName]View(),
|
70
|
-
);
|
71
|
-
}
|
72
|
-
|
73
|
-
void _showAddDialog(BuildContext context, WidgetRef ref) {
|
74
|
-
// Implementation for adding new items
|
75
|
-
showDialog(
|
76
|
-
context: context,
|
77
|
-
builder: (_) => _AddItemDialog(),
|
78
|
-
);
|
79
|
-
}
|
80
|
-
}
|
81
|
-
|
82
|
-
class _[FeatureName]View extends ConsumerWidget {
|
83
|
-
const _[FeatureName]View({Key? key}) : super(key: key);
|
84
|
-
|
85
|
-
@override
|
86
|
-
Widget build(BuildContext context, WidgetRef ref) {
|
87
|
-
final state = ref.watch([featureName]Provider);
|
88
|
-
|
89
|
-
if (state.isLoading && state.items.isEmpty) {
|
90
|
-
return const LoadingIndicator();
|
91
|
-
}
|
92
|
-
|
93
|
-
if (state.error != null && state.items.isEmpty) {
|
94
|
-
return ErrorScreen(
|
95
|
-
message: state.error!,
|
96
|
-
onRetry: () => ref.read([featureName]Provider.notifier).refresh(),
|
97
|
-
);
|
98
|
-
}
|
99
|
-
|
100
|
-
if (state.items.isEmpty) {
|
101
|
-
return [FeatureName]EmptyState(
|
102
|
-
onAddPressed: () => _showAddDialog(context, ref),
|
103
|
-
);
|
104
|
-
}
|
105
|
-
|
106
|
-
return RefreshIndicator(
|
107
|
-
onRefresh: () => ref.read([featureName]Provider.notifier).refresh(),
|
108
|
-
child: CustomScrollView(
|
109
|
-
slivers: [
|
110
|
-
SliverToBoxAdapter(
|
111
|
-
child: _buildHeader(context, state),
|
112
|
-
),
|
113
|
-
SliverList(
|
114
|
-
delegate: SliverChildBuilderDelegate(
|
115
|
-
(context, index) {
|
116
|
-
final item = state.items[index];
|
117
|
-
return [FeatureName]ListItem(
|
118
|
-
item: item,
|
119
|
-
onTap: () => _navigateToDetails(context, item),
|
120
|
-
onEdit: () => _showEditDialog(context, ref, item),
|
121
|
-
onDelete: () => _showDeleteConfirmation(context, ref, item),
|
122
|
-
);
|
123
|
-
},
|
124
|
-
childCount: state.items.length,
|
125
|
-
),
|
126
|
-
),
|
127
|
-
if (state.isLoading && state.items.isNotEmpty)
|
128
|
-
const SliverToBoxAdapter(
|
129
|
-
child: Padding(
|
130
|
-
padding: EdgeInsets.all(16.0),
|
131
|
-
child: Center(child: CircularProgressIndicator()),
|
132
|
-
),
|
133
|
-
),
|
134
|
-
],
|
135
|
-
),
|
136
|
-
);
|
137
|
-
}
|
138
|
-
|
139
|
-
Widget _buildHeader(BuildContext context, [FeatureName]State state) {
|
140
|
-
return Padding(
|
141
|
-
padding: const EdgeInsets.all(16.0),
|
142
|
-
child: Column(
|
143
|
-
crossAxisAlignment: CrossAxisAlignment.start,
|
144
|
-
children: [
|
145
|
-
Text(
|
146
|
-
context.l10n.[featureName]Count(state.items.length),
|
147
|
-
style: Theme.of(context).textTheme.bodyMedium,
|
148
|
-
),
|
149
|
-
if (state.filters.isNotEmpty) ...[
|
150
|
-
const SizedBox(height: 8),
|
151
|
-
_buildActiveFilters(context, state),
|
152
|
-
],
|
153
|
-
],
|
154
|
-
),
|
155
|
-
);
|
156
|
-
}
|
157
|
-
|
158
|
-
Widget _buildActiveFilters(BuildContext context, [FeatureName]State state) {
|
159
|
-
return Wrap(
|
160
|
-
spacing: 8.0,
|
161
|
-
children: state.filters.entries.map((filter) {
|
162
|
-
return FilterChip(
|
163
|
-
label: Text('${filter.key}: ${filter.value}'),
|
164
|
-
onDeleted: () {
|
165
|
-
// Remove filter logic
|
166
|
-
},
|
167
|
-
);
|
168
|
-
}).toList(),
|
169
|
-
);
|
170
|
-
}
|
171
|
-
|
172
|
-
void _navigateToDetails(BuildContext context, [FeatureName] item) {
|
173
|
-
Navigator.of(context).pushNamed(
|
174
|
-
'/[feature]/details',
|
175
|
-
arguments: item.id,
|
176
|
-
);
|
177
|
-
}
|
178
|
-
|
179
|
-
void _showEditDialog(BuildContext context, WidgetRef ref, [FeatureName] item) {
|
180
|
-
showDialog(
|
181
|
-
context: context,
|
182
|
-
builder: (_) => _EditItemDialog(item: item),
|
183
|
-
);
|
184
|
-
}
|
185
|
-
|
186
|
-
void _showDeleteConfirmation(BuildContext context, WidgetRef ref, [FeatureName] item) {
|
187
|
-
showDialog(
|
188
|
-
context: context,
|
189
|
-
builder: (_) => AlertDialog(
|
190
|
-
title: Text(context.l10n.confirmDelete),
|
191
|
-
content: Text(context.l10n.[featureName]DeleteConfirmation),
|
192
|
-
actions: [
|
193
|
-
TextButton(
|
194
|
-
onPressed: () => Navigator.of(context).pop(),
|
195
|
-
child: Text(context.l10n.cancel),
|
196
|
-
),
|
197
|
-
FilledButton(
|
198
|
-
onPressed: () {
|
199
|
-
Navigator.of(context).pop();
|
200
|
-
ref.read([featureName]Provider.notifier).deleteItem(item.id);
|
201
|
-
},
|
202
|
-
child: Text(context.l10n.delete),
|
203
|
-
),
|
204
|
-
],
|
205
|
-
),
|
206
|
-
);
|
207
|
-
}
|
208
|
-
|
209
|
-
void _showAddDialog(BuildContext context, WidgetRef ref) {
|
210
|
-
showDialog(
|
211
|
-
context: context,
|
212
|
-
builder: (_) => const _AddItemDialog(),
|
213
|
-
);
|
214
|
-
}
|
215
|
-
}
|
216
|
-
```
|
217
|
-
|
218
|
-
### Phase 3: Widget Components Implementation
|
219
|
-
|
220
|
-
1. **Create List Item Widget** (`lib/views/[feature]/widgets/[feature]_list_item.dart`):
|
221
|
-
```dart
|
222
|
-
import 'package:flutter/material.dart';
|
223
|
-
import 'package:aigo/domain/models/[feature].dart';
|
224
|
-
import 'package:aigo/core/theme/app_colors.dart';
|
225
|
-
import 'package:aigo/l10n/l10n.dart';
|
226
|
-
|
227
|
-
class [FeatureName]ListItem extends StatelessWidget {
|
228
|
-
final [FeatureName] item;
|
229
|
-
final VoidCallback? onTap;
|
230
|
-
final VoidCallback? onEdit;
|
231
|
-
final VoidCallback? onDelete;
|
232
|
-
|
233
|
-
const [FeatureName]ListItem({
|
234
|
-
Key? key,
|
235
|
-
required this.item,
|
236
|
-
this.onTap,
|
237
|
-
this.onEdit,
|
238
|
-
this.onDelete,
|
239
|
-
}) : super(key: key);
|
240
|
-
|
241
|
-
@override
|
242
|
-
Widget build(BuildContext context) {
|
243
|
-
return Card(
|
244
|
-
margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 4),
|
245
|
-
child: ListTile(
|
246
|
-
leading: _buildLeading(context),
|
247
|
-
title: Text(
|
248
|
-
item.title,
|
249
|
-
style: Theme.of(context).textTheme.titleMedium,
|
250
|
-
),
|
251
|
-
subtitle: _buildSubtitle(context),
|
252
|
-
trailing: _buildTrailing(context),
|
253
|
-
onTap: onTap,
|
254
|
-
),
|
255
|
-
);
|
256
|
-
}
|
257
|
-
|
258
|
-
Widget _buildLeading(BuildContext context) {
|
259
|
-
return CircleAvatar(
|
260
|
-
backgroundColor: AppColors.primary.withOpacity(0.1),
|
261
|
-
child: Icon(
|
262
|
-
Icons.star, // Replace with appropriate icon
|
263
|
-
color: AppColors.primary,
|
264
|
-
),
|
265
|
-
);
|
266
|
-
}
|
267
|
-
|
268
|
-
Widget? _buildSubtitle(BuildContext context) {
|
269
|
-
if (item.description?.isNotEmpty == true) {
|
270
|
-
return Text(
|
271
|
-
item.description!,
|
272
|
-
maxLines: 2,
|
273
|
-
overflow: TextOverflow.ellipsis,
|
274
|
-
);
|
275
|
-
}
|
276
|
-
return Text(
|
277
|
-
context.l10n.[featureName]CreatedAt(item.createdAt),
|
278
|
-
style: Theme.of(context).textTheme.bodySmall,
|
279
|
-
);
|
280
|
-
}
|
281
|
-
|
282
|
-
Widget _buildTrailing(BuildContext context) {
|
283
|
-
return PopupMenuButton<String>(
|
284
|
-
itemBuilder: (context) => [
|
285
|
-
PopupMenuItem(
|
286
|
-
value: 'edit',
|
287
|
-
child: ListTile(
|
288
|
-
leading: const Icon(Icons.edit),
|
289
|
-
title: Text(context.l10n.edit),
|
290
|
-
contentPadding: EdgeInsets.zero,
|
291
|
-
),
|
292
|
-
),
|
293
|
-
PopupMenuItem(
|
294
|
-
value: 'delete',
|
295
|
-
child: ListTile(
|
296
|
-
leading: const Icon(Icons.delete),
|
297
|
-
title: Text(context.l10n.delete),
|
298
|
-
contentPadding: EdgeInsets.zero,
|
299
|
-
),
|
300
|
-
),
|
301
|
-
],
|
302
|
-
onSelected: (value) {
|
303
|
-
switch (value) {
|
304
|
-
case 'edit':
|
305
|
-
onEdit?.call();
|
306
|
-
break;
|
307
|
-
case 'delete':
|
308
|
-
onDelete?.call();
|
309
|
-
break;
|
310
|
-
}
|
311
|
-
},
|
312
|
-
);
|
313
|
-
}
|
314
|
-
}
|
315
|
-
```
|
316
|
-
|
317
|
-
2. **Create Empty State Widget** (`lib/views/[feature]/widgets/[feature]_empty_state.dart`):
|
318
|
-
```dart
|
319
|
-
import 'package:flutter/material.dart';
|
320
|
-
import 'package:lottie/lottie.dart';
|
321
|
-
import 'package:aigo/core/utils/app_assets.dart';
|
322
|
-
import 'package:aigo/l10n/l10n.dart';
|
323
|
-
|
324
|
-
class [FeatureName]EmptyState extends StatelessWidget {
|
325
|
-
final VoidCallback? onAddPressed;
|
326
|
-
|
327
|
-
const [FeatureName]EmptyState({
|
328
|
-
Key? key,
|
329
|
-
this.onAddPressed,
|
330
|
-
}) : super(key: key);
|
331
|
-
|
332
|
-
@override
|
333
|
-
Widget build(BuildContext context) {
|
334
|
-
return Center(
|
335
|
-
child: Padding(
|
336
|
-
padding: const EdgeInsets.all(32.0),
|
337
|
-
child: Column(
|
338
|
-
mainAxisAlignment: MainAxisAlignment.center,
|
339
|
-
children: [
|
340
|
-
Lottie.asset(
|
341
|
-
AppAssets.emptyAnimation,
|
342
|
-
height: 200,
|
343
|
-
repeat: false,
|
344
|
-
),
|
345
|
-
const SizedBox(height: 24),
|
346
|
-
Text(
|
347
|
-
context.l10n.[featureName]EmptyTitle,
|
348
|
-
style: Theme.of(context).textTheme.headlineSmall,
|
349
|
-
textAlign: TextAlign.center,
|
350
|
-
),
|
351
|
-
const SizedBox(height: 16),
|
352
|
-
Text(
|
353
|
-
context.l10n.[featureName]EmptyMessage,
|
354
|
-
style: Theme.of(context).textTheme.bodyMedium,
|
355
|
-
textAlign: TextAlign.center,
|
356
|
-
),
|
357
|
-
const SizedBox(height: 32),
|
358
|
-
FilledButton.icon(
|
359
|
-
onPressed: onAddPressed,
|
360
|
-
icon: const Icon(Icons.add),
|
361
|
-
label: Text(context.l10n.[featureName]AddFirst),
|
362
|
-
),
|
363
|
-
],
|
364
|
-
),
|
365
|
-
),
|
366
|
-
);
|
367
|
-
}
|
368
|
-
}
|
369
|
-
```
|
370
|
-
|
371
|
-
### Phase 4: Dialog Implementation
|
372
|
-
|
373
|
-
1. **Create Add/Edit Dialog** (`lib/views/[feature]/widgets/[feature]_dialog.dart`):
|
374
|
-
```dart
|
375
|
-
import 'package:flutter/material.dart';
|
376
|
-
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
377
|
-
import 'package:aigo/domain/models/[feature].dart';
|
378
|
-
import 'package:aigo/l10n/l10n.dart';
|
379
|
-
import '../providers/[feature]_provider.dart';
|
380
|
-
|
381
|
-
class _AddItemDialog extends ConsumerStatefulWidget {
|
382
|
-
const _AddItemDialog({Key? key}) : super(key: key);
|
383
|
-
|
384
|
-
@override
|
385
|
-
ConsumerState<_AddItemDialog> createState() => _AddItemDialogState();
|
386
|
-
}
|
387
|
-
|
388
|
-
class _AddItemDialogState extends ConsumerState<_AddItemDialog> {
|
389
|
-
final _formKey = GlobalKey<FormState>();
|
390
|
-
final _titleController = TextEditingController();
|
391
|
-
final _descriptionController = TextEditingController();
|
392
|
-
|
393
|
-
@override
|
394
|
-
void dispose() {
|
395
|
-
_titleController.dispose();
|
396
|
-
_descriptionController.dispose();
|
397
|
-
super.dispose();
|
398
|
-
}
|
399
|
-
|
400
|
-
@override
|
401
|
-
Widget build(BuildContext context) {
|
402
|
-
return AlertDialog(
|
403
|
-
title: Text(context.l10n.[featureName]AddTitle),
|
404
|
-
content: Form(
|
405
|
-
key: _formKey,
|
406
|
-
child: Column(
|
407
|
-
mainAxisSize: MainAxisSize.min,
|
408
|
-
children: [
|
409
|
-
TextFormField(
|
410
|
-
controller: _titleController,
|
411
|
-
decoration: InputDecoration(
|
412
|
-
labelText: context.l10n.[featureName]TitleLabel,
|
413
|
-
hintText: context.l10n.[featureName]TitleHint,
|
414
|
-
),
|
415
|
-
validator: (value) {
|
416
|
-
if (value?.trim().isEmpty == true) {
|
417
|
-
return context.l10n.[featureName]TitleRequired;
|
418
|
-
}
|
419
|
-
return null;
|
420
|
-
},
|
421
|
-
autofocus: true,
|
422
|
-
),
|
423
|
-
const SizedBox(height: 16),
|
424
|
-
TextFormField(
|
425
|
-
controller: _descriptionController,
|
426
|
-
decoration: InputDecoration(
|
427
|
-
labelText: context.l10n.[featureName]DescriptionLabel,
|
428
|
-
hintText: context.l10n.[featureName]DescriptionHint,
|
429
|
-
),
|
430
|
-
maxLines: 3,
|
431
|
-
),
|
432
|
-
],
|
433
|
-
),
|
434
|
-
),
|
435
|
-
actions: [
|
436
|
-
TextButton(
|
437
|
-
onPressed: () => Navigator.of(context).pop(),
|
438
|
-
child: Text(context.l10n.cancel),
|
439
|
-
),
|
440
|
-
FilledButton(
|
441
|
-
onPressed: _submit,
|
442
|
-
child: Text(context.l10n.add),
|
443
|
-
),
|
444
|
-
],
|
445
|
-
);
|
446
|
-
}
|
447
|
-
|
448
|
-
void _submit() {
|
449
|
-
if (_formKey.currentState?.validate() == true) {
|
450
|
-
ref.read([featureName]Provider.notifier).addItem(
|
451
|
-
title: _titleController.text.trim(),
|
452
|
-
description: _descriptionController.text.trim().isNotEmpty
|
453
|
-
? _descriptionController.text.trim()
|
454
|
-
: null,
|
455
|
-
);
|
456
|
-
Navigator.of(context).pop();
|
457
|
-
}
|
458
|
-
}
|
459
|
-
}
|
460
|
-
|
461
|
-
class _EditItemDialog extends ConsumerStatefulWidget {
|
462
|
-
final [FeatureName] item;
|
463
|
-
|
464
|
-
const _EditItemDialog({
|
465
|
-
Key? key,
|
466
|
-
required this.item,
|
467
|
-
}) : super(key: key);
|
468
|
-
|
469
|
-
@override
|
470
|
-
ConsumerState<_EditItemDialog> createState() => _EditItemDialogState();
|
471
|
-
}
|
472
|
-
|
473
|
-
class _EditItemDialogState extends ConsumerState<_EditItemDialog> {
|
474
|
-
final _formKey = GlobalKey<FormState>();
|
475
|
-
late final _titleController = TextEditingController(text: widget.item.title);
|
476
|
-
late final _descriptionController = TextEditingController(text: widget.item.description);
|
477
|
-
|
478
|
-
@override
|
479
|
-
void dispose() {
|
480
|
-
_titleController.dispose();
|
481
|
-
_descriptionController.dispose();
|
482
|
-
super.dispose();
|
483
|
-
}
|
484
|
-
|
485
|
-
@override
|
486
|
-
Widget build(BuildContext context) {
|
487
|
-
return AlertDialog(
|
488
|
-
title: Text(context.l10n.[featureName]EditTitle),
|
489
|
-
content: Form(
|
490
|
-
key: _formKey,
|
491
|
-
child: Column(
|
492
|
-
mainAxisSize: MainAxisSize.min,
|
493
|
-
children: [
|
494
|
-
TextFormField(
|
495
|
-
controller: _titleController,
|
496
|
-
decoration: InputDecoration(
|
497
|
-
labelText: context.l10n.[featureName]TitleLabel,
|
498
|
-
),
|
499
|
-
validator: (value) {
|
500
|
-
if (value?.trim().isEmpty == true) {
|
501
|
-
return context.l10n.[featureName]TitleRequired;
|
502
|
-
}
|
503
|
-
return null;
|
504
|
-
},
|
505
|
-
),
|
506
|
-
const SizedBox(height: 16),
|
507
|
-
TextFormField(
|
508
|
-
controller: _descriptionController,
|
509
|
-
decoration: InputDecoration(
|
510
|
-
labelText: context.l10n.[featureName]DescriptionLabel,
|
511
|
-
),
|
512
|
-
maxLines: 3,
|
513
|
-
),
|
514
|
-
],
|
515
|
-
),
|
516
|
-
),
|
517
|
-
actions: [
|
518
|
-
TextButton(
|
519
|
-
onPressed: () => Navigator.of(context).pop(),
|
520
|
-
child: Text(context.l10n.cancel),
|
521
|
-
),
|
522
|
-
FilledButton(
|
523
|
-
onPressed: _submit,
|
524
|
-
child: Text(context.l10n.save),
|
525
|
-
),
|
526
|
-
],
|
527
|
-
);
|
528
|
-
}
|
529
|
-
|
530
|
-
void _submit() {
|
531
|
-
if (_formKey.currentState?.validate() == true) {
|
532
|
-
final updatedItem = widget.item.copyWith(
|
533
|
-
title: _titleController.text.trim(),
|
534
|
-
description: _descriptionController.text.trim().isNotEmpty
|
535
|
-
? _descriptionController.text.trim()
|
536
|
-
: null,
|
537
|
-
);
|
538
|
-
|
539
|
-
ref.read([featureName]Provider.notifier).updateItem(updatedItem);
|
540
|
-
Navigator.of(context).pop();
|
541
|
-
}
|
542
|
-
}
|
543
|
-
}
|
544
|
-
```
|
545
|
-
|
546
|
-
### Phase 5: Details Screen Implementation
|
547
|
-
|
548
|
-
1. **Create Details Screen** (`lib/views/[feature]/screens/[feature]_details_screen.dart`):
|
549
|
-
```dart
|
550
|
-
import 'package:flutter/material.dart';
|
551
|
-
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
552
|
-
import 'package:aigo/core/widgets/base_scaffold.dart';
|
553
|
-
import 'package:aigo/core/widgets/loading_indicator.dart';
|
554
|
-
import 'package:aigo/core/widgets/error_screen.dart';
|
555
|
-
import 'package:aigo/l10n/l10n.dart';
|
556
|
-
import '../providers/[feature]_provider.dart';
|
557
|
-
|
558
|
-
class [FeatureName]DetailsScreen extends ConsumerWidget {
|
559
|
-
final String itemId;
|
560
|
-
|
561
|
-
const [FeatureName]DetailsScreen({
|
562
|
-
Key? key,
|
563
|
-
required this.itemId,
|
564
|
-
}) : super(key: key);
|
565
|
-
|
566
|
-
@override
|
567
|
-
Widget build(BuildContext context, WidgetRef ref) {
|
568
|
-
final asyncItem = ref.watch([featureName]ByIdProvider(itemId));
|
569
|
-
|
570
|
-
return BaseScaffold(
|
571
|
-
title: context.l10n.[featureName]Details,
|
572
|
-
body: asyncItem.when(
|
573
|
-
data: (item) {
|
574
|
-
if (item == null) {
|
575
|
-
return ErrorScreen(
|
576
|
-
message: context.l10n.[featureName]NotFound,
|
577
|
-
onRetry: () => ref.invalidate([featureName]ByIdProvider(itemId)),
|
578
|
-
);
|
579
|
-
}
|
580
|
-
return _[FeatureName]DetailsView(item: item);
|
581
|
-
},
|
582
|
-
loading: () => const LoadingIndicator(),
|
583
|
-
error: (error, stack) => ErrorScreen(
|
584
|
-
message: error.toString(),
|
585
|
-
onRetry: () => ref.invalidate([featureName]ByIdProvider(itemId)),
|
586
|
-
),
|
587
|
-
),
|
588
|
-
);
|
589
|
-
}
|
590
|
-
}
|
591
|
-
|
592
|
-
class _[FeatureName]DetailsView extends StatelessWidget {
|
593
|
-
final [FeatureName] item;
|
594
|
-
|
595
|
-
const _[FeatureName]DetailsView({
|
596
|
-
Key? key,
|
597
|
-
required this.item,
|
598
|
-
}) : super(key: key);
|
599
|
-
|
600
|
-
@override
|
601
|
-
Widget build(BuildContext context) {
|
602
|
-
return SingleChildScrollView(
|
603
|
-
padding: const EdgeInsets.all(16.0),
|
604
|
-
child: Column(
|
605
|
-
crossAxisAlignment: CrossAxisAlignment.start,
|
606
|
-
children: [
|
607
|
-
_buildHeader(context),
|
608
|
-
const SizedBox(height: 24),
|
609
|
-
_buildDetails(context),
|
610
|
-
const SizedBox(height: 24),
|
611
|
-
_buildMetadata(context),
|
612
|
-
],
|
613
|
-
),
|
614
|
-
);
|
615
|
-
}
|
616
|
-
|
617
|
-
Widget _buildHeader(BuildContext context) {
|
618
|
-
return Card(
|
619
|
-
child: Padding(
|
620
|
-
padding: const EdgeInsets.all(16.0),
|
621
|
-
child: Column(
|
622
|
-
crossAxisAlignment: CrossAxisAlignment.start,
|
623
|
-
children: [
|
624
|
-
Text(
|
625
|
-
item.title,
|
626
|
-
style: Theme.of(context).textTheme.headlineSmall,
|
627
|
-
),
|
628
|
-
if (item.description?.isNotEmpty == true) ...[
|
629
|
-
const SizedBox(height: 8),
|
630
|
-
Text(
|
631
|
-
item.description!,
|
632
|
-
style: Theme.of(context).textTheme.bodyMedium,
|
633
|
-
),
|
634
|
-
],
|
635
|
-
],
|
636
|
-
),
|
637
|
-
),
|
638
|
-
);
|
639
|
-
}
|
640
|
-
|
641
|
-
Widget _buildDetails(BuildContext context) {
|
642
|
-
return Card(
|
643
|
-
child: Padding(
|
644
|
-
padding: const EdgeInsets.all(16.0),
|
645
|
-
child: Column(
|
646
|
-
crossAxisAlignment: CrossAxisAlignment.start,
|
647
|
-
children: [
|
648
|
-
Text(
|
649
|
-
context.l10n.[featureName]DetailsTitle,
|
650
|
-
style: Theme.of(context).textTheme.titleMedium,
|
651
|
-
),
|
652
|
-
const SizedBox(height: 16),
|
653
|
-
_buildDetailRow(
|
654
|
-
context,
|
655
|
-
context.l10n.[featureName]CreatedLabel,
|
656
|
-
_formatDate(item.createdAt),
|
657
|
-
),
|
658
|
-
_buildDetailRow(
|
659
|
-
context,
|
660
|
-
context.l10n.[featureName]UpdatedLabel,
|
661
|
-
_formatDate(item.updatedAt),
|
662
|
-
),
|
663
|
-
_buildDetailRow(
|
664
|
-
context,
|
665
|
-
context.l10n.[featureName]StatusLabel,
|
666
|
-
item.isActive ? context.l10n.active : context.l10n.inactive,
|
667
|
-
),
|
668
|
-
],
|
669
|
-
),
|
670
|
-
),
|
671
|
-
);
|
672
|
-
}
|
673
|
-
|
674
|
-
Widget _buildDetailRow(BuildContext context, String label, String value) {
|
675
|
-
return Padding(
|
676
|
-
padding: const EdgeInsets.only(bottom: 8.0),
|
677
|
-
child: Row(
|
678
|
-
crossAxisAlignment: CrossAxisAlignment.start,
|
679
|
-
children: [
|
680
|
-
SizedBox(
|
681
|
-
width: 120,
|
682
|
-
child: Text(
|
683
|
-
label,
|
684
|
-
style: Theme.of(context).textTheme.bodySmall?.copyWith(
|
685
|
-
fontWeight: FontWeight.w500,
|
686
|
-
),
|
687
|
-
),
|
688
|
-
),
|
689
|
-
Expanded(
|
690
|
-
child: Text(
|
691
|
-
value,
|
692
|
-
style: Theme.of(context).textTheme.bodyMedium,
|
693
|
-
),
|
694
|
-
),
|
695
|
-
],
|
696
|
-
),
|
697
|
-
);
|
698
|
-
}
|
699
|
-
|
700
|
-
Widget _buildMetadata(BuildContext context) {
|
701
|
-
if (item.metadata == null || item.metadata!.isEmpty) {
|
702
|
-
return const SizedBox.shrink();
|
703
|
-
}
|
704
|
-
|
705
|
-
return Card(
|
706
|
-
child: Padding(
|
707
|
-
padding: const EdgeInsets.all(16.0),
|
708
|
-
child: Column(
|
709
|
-
crossAxisAlignment: CrossAxisAlignment.start,
|
710
|
-
children: [
|
711
|
-
Text(
|
712
|
-
context.l10n.[featureName]MetadataTitle,
|
713
|
-
style: Theme.of(context).textTheme.titleMedium,
|
714
|
-
),
|
715
|
-
const SizedBox(height: 16),
|
716
|
-
...item.metadata!.entries.map((entry) =>
|
717
|
-
_buildDetailRow(context, entry.key, entry.value.toString()),
|
718
|
-
),
|
719
|
-
],
|
720
|
-
),
|
721
|
-
),
|
722
|
-
);
|
723
|
-
}
|
724
|
-
|
725
|
-
String _formatDate(DateTime dateTime) {
|
726
|
-
return '${dateTime.day}.${dateTime.month}.${dateTime.year}';
|
727
|
-
}
|
728
|
-
}
|
729
|
-
```
|
730
|
-
|
731
|
-
### Phase 6: Navigation Integration
|
732
|
-
|
733
|
-
1. **Update App Router** (`lib/core/routing/app_router.dart`):
|
734
|
-
```dart
|
735
|
-
// Add to routes
|
736
|
-
GoRoute(
|
737
|
-
path: '/[feature]',
|
738
|
-
builder: (context, state) => const [FeatureName]Screen(),
|
739
|
-
),
|
740
|
-
GoRoute(
|
741
|
-
path: '/[feature]/details/:id',
|
742
|
-
builder: (context, state) {
|
743
|
-
final id = state.pathParameters['id']!;
|
744
|
-
return [FeatureName]DetailsScreen(itemId: id);
|
745
|
-
},
|
746
|
-
),
|
747
|
-
```
|
748
|
-
|
749
|
-
## Quality Checklist
|
750
|
-
|
751
|
-
### UI Implementation
|
752
|
-
- [ ] Uses ConsumerWidget for RiverPod integration
|
753
|
-
- [ ] Proper error and loading state handling
|
754
|
-
- [ ] Material 3 design components
|
755
|
-
- [ ] Responsive design with proper spacing
|
756
|
-
- [ ] Accessibility features implemented
|
757
|
-
|
758
|
-
### Localization
|
759
|
-
- [ ] All text uses context.l10n
|
760
|
-
- [ ] No hardcoded strings
|
761
|
-
- [ ] Proper placeholder usage
|
762
|
-
- [ ] RTL support for Arabic
|
763
|
-
- [ ] Cultural considerations for translations
|
764
|
-
|
765
|
-
### Navigation
|
766
|
-
- [ ] Proper route definitions
|
767
|
-
- [ ] Navigation patterns follow app conventions
|
768
|
-
- [ ] Back button handling
|
769
|
-
- [ ] Deep linking support
|
770
|
-
|
771
|
-
### User Experience
|
772
|
-
- [ ] Loading indicators for async operations
|
773
|
-
- [ ] Pull-to-refresh functionality
|
774
|
-
- [ ] Empty states with clear actions
|
775
|
-
- [ ] Error states with retry options
|
776
|
-
- [ ] Confirmation dialogs for destructive actions
|
777
|
-
|
778
|
-
## Channel Communication
|
779
|
-
|
780
|
-
### Before Starting
|
781
|
-
Update channel.md:
|
782
|
-
```markdown
|
783
|
-
### 🎨 UI Layer Status
|
784
|
-
- **Status:** IN_PROGRESS
|
785
|
-
- **Assigned Agent:** [YOUR_ID]
|
786
|
-
- **Progress:** 0%
|
787
|
-
```
|
788
|
-
|
789
|
-
### During Development
|
790
|
-
Update progress regularly:
|
791
|
-
```markdown
|
792
|
-
- **Progress:** [PERCENTAGE]%
|
793
|
-
- **Files Created:** [LIST_OF_FILES]
|
794
|
-
- **Next Steps:** [CURRENT_WORK]
|
795
|
-
```
|
796
|
-
|
797
|
-
### After Completion
|
798
|
-
Mark as completed:
|
799
|
-
```markdown
|
800
|
-
### 🎨 UI Layer Status
|
801
|
-
- **Status:** COMPLETED
|
802
|
-
- **Progress:** 100%
|
803
|
-
- **Files Created:** [COMPLETE_LIST]
|
804
|
-
```
|
805
|
-
|
806
|
-
## Dependencies
|
807
|
-
|
808
|
-
### Must be completed first:
|
809
|
-
- Architecture analysis
|
810
|
-
- Business logic layer (providers)
|
811
|
-
|
812
|
-
### Can work in parallel with:
|
813
|
-
- Domain layer (with coordination)
|
814
|
-
- Data layer (with coordination)
|
815
|
-
|
816
|
-
### Enables after completion:
|
817
|
-
- Localization layer
|
818
|
-
- Integration testing
|
819
|
-
- User acceptance testing
|
820
|
-
|
821
|
-
## Output Deliverables
|
822
|
-
|
823
|
-
1. **Main Screen**: `lib/views/[feature]/screens/[feature]_screen.dart`
|
824
|
-
2. **Details Screen**: `lib/views/[feature]/screens/[feature]_details_screen.dart`
|
825
|
-
3. **List Item Widget**: `lib/views/[feature]/widgets/[feature]_list_item.dart`
|
826
|
-
4. **Empty State Widget**: `lib/views/[feature]/widgets/[feature]_empty_state.dart`
|
827
|
-
5. **Dialog Components**: `lib/views/[feature]/widgets/[feature]_dialog.dart`
|
828
|
-
6. **Updated Router**: Route definitions in `lib/core/routing/app_router.dart`
|
829
|
-
7. **Updated Channel**: Progress and completion status in channel.md
|
830
|
-
|
831
|
-
All UI components must follow AiGo's Material 3 design system, RiverPod patterns, and multilingual support with proper accessibility features.
|