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
package/#Tools/claude-talk-to-figma-mcp/context/01/06-tools-refactor-four-tools-error-backlog.md
DELETED
@@ -1,425 +0,0 @@
|
|
1
|
-
# Backlog de Soluciones para las Herramientas Fallidas
|
2
|
-
|
3
|
-
Este documento registra las soluciones implementadas y las pendientes para las herramientas que presentaban fallos después de la refactorización.
|
4
|
-
|
5
|
-
## 1. Herramienta `get_remote_components` - RESUELTO ✅
|
6
|
-
|
7
|
-
**Fecha de solución**: 4 de mayo de 2025
|
8
|
-
|
9
|
-
**Problema detectado**:
|
10
|
-
La herramienta fallaba con el error "method not available" cuando la API de `figma.teamLibrary` no estaba disponible o cuando el método `getAvailableComponentsAsync` no existía. Sin embargo, no se manejaba como un error típico, provocando que el servidor MCP no pudiera procesar adecuadamente la respuesta.
|
11
|
-
|
12
|
-
**Causa raíz**:
|
13
|
-
La implementación original devolvía un objeto con flags de error en lugar de lanzar excepciones:
|
14
|
-
|
15
|
-
```javascript
|
16
|
-
if (!figma.teamLibrary) {
|
17
|
-
console.error("Error: figma.teamLibrary API is not available");
|
18
|
-
return {
|
19
|
-
error: true,
|
20
|
-
message: "The figma.teamLibrary API is not available in this context",
|
21
|
-
apiAvailable: false
|
22
|
-
};
|
23
|
-
}
|
24
|
-
```
|
25
|
-
|
26
|
-
El servidor MCP está diseñado para manejar excepciones lanzadas por las funciones, pero no para interpretar objetos con propiedades de error personalizadas. Esto resultaba en que el error no se mostraba correctamente al usuario.
|
27
|
-
|
28
|
-
**Solución implementada**:
|
29
|
-
Se modificó la implementación para lanzar excepciones explícitas en lugar de devolver objetos de error:
|
30
|
-
|
31
|
-
```javascript
|
32
|
-
if (!figma.teamLibrary) {
|
33
|
-
console.error("Error: figma.teamLibrary API is not available");
|
34
|
-
throw new Error("The figma.teamLibrary API is not available in this context");
|
35
|
-
}
|
36
|
-
```
|
37
|
-
|
38
|
-
También se añadió un mecanismo de timeout para evitar que la operación se quedara bloqueada indefinidamente:
|
39
|
-
|
40
|
-
```javascript
|
41
|
-
// Set up a manual timeout to detect deadlocks
|
42
|
-
let timeoutId;
|
43
|
-
const timeoutPromise = new Promise((_, reject) => {
|
44
|
-
timeoutId = setTimeout(() => {
|
45
|
-
reject(new Error("Internal timeout while retrieving remote components (15s)"));
|
46
|
-
}, 15000); // 15 seconds internal timeout
|
47
|
-
});
|
48
|
-
|
49
|
-
// Execute the request with a manual timeout
|
50
|
-
const fetchPromise = figma.teamLibrary.getAvailableComponentsAsync();
|
51
|
-
|
52
|
-
// Use Promise.race to implement the timeout
|
53
|
-
const teamComponents = await Promise.race([fetchPromise, timeoutPromise])
|
54
|
-
.finally(() => {
|
55
|
-
clearTimeout(timeoutId); // Clear the timeout
|
56
|
-
});
|
57
|
-
```
|
58
|
-
|
59
|
-
**Beneficios de la solución**:
|
60
|
-
1. **Manejo de errores coherente**: El servidor MCP ahora captura y muestra correctamente los errores al usuario.
|
61
|
-
2. **Prevención de bloqueos**: El mecanismo de timeout evita que la llamada a la API se quede bloqueada indefinidamente.
|
62
|
-
3. **Mejor experiencia de usuario**: Los mensajes de error son más claros y descriptivos.
|
63
|
-
4. **Mayor robustez**: La implementación maneja mejor las diferentes condiciones de error.
|
64
|
-
|
65
|
-
**Lecciones aprendidas**:
|
66
|
-
1. Es importante utilizar excepciones para señalizar errores en lugar de objetos de retorno personalizados cuando se trabaja con frameworks que esperan ciertos patrones de manejo de errores.
|
67
|
-
2. Siempre implementar mecanismos de timeout en operaciones que involucran llamadas a APIs externas para evitar bloqueos.
|
68
|
-
3. Proporcionar mensajes de error claros y detallados facilita la depuración.
|
69
|
-
|
70
|
-
## 2. Herramienta `flatten_node` - RESUELTO ✅
|
71
|
-
|
72
|
-
**Fecha de solución**: 4 de mayo de 2025
|
73
|
-
|
74
|
-
**Problema detectado**:
|
75
|
-
La herramienta `flatten_node` fallaba con timeout errors al intentar aplanar nodos vectoriales complejos. La operación podía bloquearse indefinidamente sin proporcionar retroalimentación al usuario.
|
76
|
-
|
77
|
-
**Causa raíz**:
|
78
|
-
La operación `flatten()` de la API de Figma puede ser computacionalmente intensiva, especialmente para nodos vectoriales complejos (como operaciones booleanas complicadas o vectores con muchos puntos). La implementación original no tenía un mecanismo de timeout ni manejo de operaciones de larga duración:
|
79
|
-
|
80
|
-
```javascript
|
81
|
-
// Implementación original problemática
|
82
|
-
const flattened = node.flatten();
|
83
|
-
```
|
84
|
-
|
85
|
-
Esto podía resultar en que:
|
86
|
-
1. La interfaz de Figma pareciera congelada
|
87
|
-
2. La operación no completara dentro del tiempo de timeout del servidor MCP
|
88
|
-
3. La falta de feedback al usuario sobre el progreso o problemas
|
89
|
-
|
90
|
-
**Solución implementada**:
|
91
|
-
Se ha implementado un sistema robusto de manejo de timeout y promesas en paralelo, junto con mejor feedback al usuario:
|
92
|
-
|
93
|
-
```javascript
|
94
|
-
// Implement a timeout mechanism
|
95
|
-
let timeoutId;
|
96
|
-
const timeoutPromise = new Promise((_, reject) => {
|
97
|
-
timeoutId = setTimeout(() => {
|
98
|
-
reject(new Error("Flatten operation timed out after 8 seconds. The node may be too complex."));
|
99
|
-
}, 8000); // 8 seconds timeout
|
100
|
-
});
|
101
|
-
|
102
|
-
// Execute the flatten operation in a promise
|
103
|
-
const flattenPromise = new Promise((resolve, reject) => {
|
104
|
-
// Execute in the next tick to allow UI updates
|
105
|
-
setTimeout(() => {
|
106
|
-
try {
|
107
|
-
console.log(`Starting flatten operation for node ID ${nodeId}...`);
|
108
|
-
const flattened = node.flatten();
|
109
|
-
console.log(`Flatten operation completed successfully for node ID ${nodeId}`);
|
110
|
-
resolve(flattened);
|
111
|
-
} catch (err) {
|
112
|
-
console.error(`Error during flatten operation: ${err.message}`);
|
113
|
-
reject(err);
|
114
|
-
}
|
115
|
-
}, 0);
|
116
|
-
});
|
117
|
-
|
118
|
-
// Race between the timeout and the operation
|
119
|
-
const flattened = await Promise.race([flattenPromise, timeoutPromise])
|
120
|
-
.finally(() => {
|
121
|
-
// Clear the timeout to prevent memory leaks
|
122
|
-
clearTimeout(timeoutId);
|
123
|
-
});
|
124
|
-
```
|
125
|
-
|
126
|
-
Además, se mejoró el manejo de errores para proporcionar mensajes más útiles al usuario:
|
127
|
-
|
128
|
-
```javascript
|
129
|
-
catch (error) {
|
130
|
-
console.error(`Error in flattenNode: ${error.message}`);
|
131
|
-
if (error.message.includes("timed out")) {
|
132
|
-
// Provide a more helpful message for timeout errors
|
133
|
-
throw new Error(`The flatten operation timed out. This usually happens with complex nodes. Try simplifying the node first or breaking it into smaller parts.`);
|
134
|
-
} else {
|
135
|
-
throw new Error(`Error flattening node: ${error.message}`);
|
136
|
-
}
|
137
|
-
}
|
138
|
-
```
|
139
|
-
|
140
|
-
**Beneficios de la solución**:
|
141
|
-
1. **Prevención de bloqueos indefinidos**: La operación ahora tiene un límite de tiempo definido (8 segundos)
|
142
|
-
2. **Mejor experiencia de usuario**: Se proporcionan mensajes de error detallados con sugerencias cuando ocurre un timeout
|
143
|
-
3. **No bloqueo de la UI**: La ejecución diferida permite que la interfaz de Figma siga respondiendo
|
144
|
-
4. **Evita fugas de memoria**: Limpieza adecuada de recursos después de la operación
|
145
|
-
5. **Mejor depuración**: Mayor cantidad de logs para facilitar la identificación de problemas
|
146
|
-
|
147
|
-
**Lecciones aprendidas**:
|
148
|
-
1. Las operaciones potencialmente largas en plugins de Figma deben implementar mecanismos de timeout
|
149
|
-
2. El uso de `Promise.race` es una técnica efectiva para limitar el tiempo de operaciones asíncronas
|
150
|
-
3. Es importante proporcionar mensajes de error que ayuden al usuario a solucionar el problema (p. ej., "intenta simplificar el nodo")
|
151
|
-
4. El logging detallado facilita la depuración de problemas en producción
|
152
|
-
5. Ejecutar operaciones intensivas en un tick separado (con setTimeout(fn, 0)) permite que la UI siga respondiendo
|
153
|
-
|
154
|
-
**Impacto en otras herramientas**:
|
155
|
-
Esta solución sirve como patrón para otras herramientas con problemas similares, como `create_component_instance` y `set_effect_style_id`. El enfoque de manejo de promesas, timeouts y mensajes de error descriptivos puede aplicarse de manera consistente en toda la base de código.
|
156
|
-
|
157
|
-
## 3. Herramienta `create_component_instance` - RESUELTO ✅
|
158
|
-
|
159
|
-
**Fecha de solución**: 4 de mayo de 2025
|
160
|
-
|
161
|
-
**Problema detectado**:
|
162
|
-
Durante las pruebas de la herramienta `create_component_instance`, se identificó que:
|
163
|
-
|
164
|
-
1. **Bloqueos potenciales**: Al importar componentes complejos o remotos, la operación podía bloquearse indefinidamente
|
165
|
-
2. **Falta de timeout**: No existía un mecanismo para limitar el tiempo de espera en operaciones lentas
|
166
|
-
3. **Errores no descriptivos**: Los mensajes de error no proporcionaban suficiente contexto para diagnosticar problemas comunes
|
167
|
-
|
168
|
-
**Solución implementada**:
|
169
|
-
Se ha mejorado la función `createComponentInstance` en el archivo `code.js` del plugin de Figma con las siguientes adiciones:
|
170
|
-
|
171
|
-
1. **Sistema de timeout**:
|
172
|
-
- Se implementó un timeout de 10 segundos usando `Promise.race()`
|
173
|
-
- Esto evita bloqueos indefinidos cuando hay problemas con los componentes
|
174
|
-
- Se limpian adecuadamente los timeouts para prevenir fugas de memoria
|
175
|
-
|
176
|
-
2. **Separación de la lógica**:
|
177
|
-
- Se dividió el proceso en dos fases separadas (importación y creación de instancia)
|
178
|
-
- Esto permite diagnosticar con mayor precisión la fuente de los errores
|
179
|
-
|
180
|
-
3. **Mensajes de error enriquecidos**:
|
181
|
-
- Se implementaron mensajes personalizados según el tipo de error
|
182
|
-
- Se agregaron sugerencias de acciones correctivas para el usuario
|
183
|
-
- Se clasifican errores por categorías: timeout, componente no encontrado, permisos insuficientes, etc.
|
184
|
-
|
185
|
-
4. **Logging mejorado**:
|
186
|
-
- Se añadieron logs detallados para facilitar la depuración
|
187
|
-
- Se registran eventos clave como inicio y finalización de la importación
|
188
|
-
|
189
|
-
**Detalles de Implementación**:
|
190
|
-
El núcleo de la solución se basa en el uso de promesas en competencia (con `Promise.race`) para establecer un límite de tiempo:
|
191
|
-
|
192
|
-
```javascript
|
193
|
-
// Set up a manual timeout to detect long operations
|
194
|
-
let timeoutId;
|
195
|
-
const timeoutPromise = new Promise((_, reject) => {
|
196
|
-
timeoutId = setTimeout(() => {
|
197
|
-
reject(new Error("Timeout while creating component instance (10s)..."));
|
198
|
-
}, 10000); // 10 seconds timeout
|
199
|
-
});
|
200
|
-
|
201
|
-
// Execute the import with a timeout
|
202
|
-
const importPromise = figma.importComponentByKeyAsync(componentKey);
|
203
|
-
|
204
|
-
// Use Promise.race to implement the timeout
|
205
|
-
const component = await Promise.race([importPromise, timeoutPromise])
|
206
|
-
.finally(() => {
|
207
|
-
clearTimeout(timeoutId); // Prevent memory leaks
|
208
|
-
});
|
209
|
-
```
|
210
|
-
|
211
|
-
Para mejorar el diagnóstico, se implementó un sistema de detección de tipos de error:
|
212
|
-
|
213
|
-
```javascript
|
214
|
-
// Proporcionar mensajes de error más descriptivos según el tipo de error
|
215
|
-
if (error.message.includes("timeout") || error.message.includes("Timeout")) {
|
216
|
-
throw new Error(`The component import timed out after 10 seconds...`);
|
217
|
-
} else if (error.message.includes("not found") || error.message.includes("Not found")) {
|
218
|
-
throw new Error(`Component with key "${componentKey}" not found...`);
|
219
|
-
} else if (error.message.includes("permission") || error.message.includes("Permission")) {
|
220
|
-
throw new Error(`You don't have permission to use this component...`);
|
221
|
-
}
|
222
|
-
```
|
223
|
-
|
224
|
-
**Beneficios de la solución**:
|
225
|
-
1. **Prevención de bloqueos**: La herramienta ya no se queda bloqueada indefinidamente
|
226
|
-
2. **Mejor diagnóstico**: Los mensajes de error indican específicamente qué puede estar fallando
|
227
|
-
3. **Sugerencias útiles**: El usuario recibe orientación sobre cómo resolver problemas
|
228
|
-
4. **Mayor robustez**: La herramienta maneja de forma elegante condiciones de error
|
229
|
-
|
230
|
-
**Pruebas y Validación**:
|
231
|
-
- Se ha probado la herramienta con componentes locales y verificado su funcionamiento
|
232
|
-
- Se ha validado el comportamiento de timeout con componentes problemáticos
|
233
|
-
- Se han verificado los distintos mensajes de error y su utilidad
|
234
|
-
|
235
|
-
**Impacto en el Código**:
|
236
|
-
La modificación es autocontenida y no afecta a otras partes del código. Se ha aplicado el mismo patrón que ya se había utilizado en la solución para `flattenNode`, manteniendo así la consistencia en el enfoque de resolución de problemas.
|
237
|
-
|
238
|
-
**Lecciones aprendidas**:
|
239
|
-
Esta mejora refuerza varios principios importantes de desarrollo:
|
240
|
-
|
241
|
-
1. Las operaciones asíncronas deben tener siempre un mecanismo de timeout
|
242
|
-
2. Los mensajes de error deben ser específicos y orientados a soluciones
|
243
|
-
3. La separación de operaciones complejas facilita el diagnóstico
|
244
|
-
4. Es crucial liberar recursos para evitar fugas de memoria
|
245
|
-
|
246
|
-
Este mismo patrón de solución podría aplicarse a otras herramientas que realicen operaciones costosas o con potencial de bloqueo.
|
247
|
-
|
248
|
-
## 4. Herramienta `set_effect_style_id` - RESUELTO ✅
|
249
|
-
|
250
|
-
**Fecha de solución**: 4 de mayo de 2025
|
251
|
-
|
252
|
-
**Problema detectado**:
|
253
|
-
La herramienta `set_effect_style_id` presentaba los siguientes problemas:
|
254
|
-
|
255
|
-
1. **Operaciones potencialmente lentas**: Aplicar un estilo de efecto puede ser una operación costosa, especialmente en nodos complejos o cuando involucra efectos elaborados.
|
256
|
-
|
257
|
-
2. **Sin manejo de timeout**: La implementación original no tenía un mecanismo para limitar el tiempo de espera, lo que podía resultar en:
|
258
|
-
- Bloqueos indefinidos del plugin
|
259
|
-
- Fallos silenciosos sin retroalimentación al usuario
|
260
|
-
- Comportamiento impredecible del servidor MCP
|
261
|
-
|
262
|
-
3. **Validación insuficiente**: No se validaba adecuadamente si el estilo de efecto existía antes de intentar aplicarlo.
|
263
|
-
|
264
|
-
4. **Mensajes de error poco descriptivos**: Cuando fallaba, los mensajes de error no proporcionaban información útil para diagnosticar el problema.
|
265
|
-
|
266
|
-
**Solución implementada**:
|
267
|
-
Se ha creado una versión mejorada de la función `setEffectStyleId` que incorpora las siguientes mejoras:
|
268
|
-
|
269
|
-
```javascript
|
270
|
-
async function setEffectStyleId(params) {
|
271
|
-
const { nodeId, effectStyleId } = params || {};
|
272
|
-
|
273
|
-
if (!nodeId) {
|
274
|
-
throw new Error("Missing nodeId parameter");
|
275
|
-
}
|
276
|
-
|
277
|
-
if (!effectStyleId) {
|
278
|
-
throw new Error("Missing effectStyleId parameter");
|
279
|
-
}
|
280
|
-
|
281
|
-
try {
|
282
|
-
// Set up a manual timeout to detect long operations
|
283
|
-
let timeoutId;
|
284
|
-
const timeoutPromise = new Promise((_, reject) => {
|
285
|
-
timeoutId = setTimeout(() => {
|
286
|
-
reject(new Error("Timeout while setting effect style ID (8s). The operation took too long to complete."));
|
287
|
-
}, 8000); // 8 seconds timeout
|
288
|
-
});
|
289
|
-
|
290
|
-
console.log(`Starting to set effect style ID ${effectStyleId} on node ${nodeId}...`);
|
291
|
-
|
292
|
-
// Get node and validate in a promise
|
293
|
-
const nodePromise = (async () => {
|
294
|
-
const node = await figma.getNodeByIdAsync(nodeId);
|
295
|
-
if (!node) {
|
296
|
-
throw new Error(`Node not found with ID: ${nodeId}`);
|
297
|
-
}
|
298
|
-
|
299
|
-
if (!("effectStyleId" in node)) {
|
300
|
-
throw new Error(`Node with ID ${nodeId} does not support effect styles`);
|
301
|
-
}
|
302
|
-
|
303
|
-
// Try to validate the effect style exists before applying
|
304
|
-
console.log(`Fetching effect styles to validate style ID: ${effectStyleId}`);
|
305
|
-
const effectStyles = await figma.getLocalEffectStylesAsync();
|
306
|
-
const foundStyle = effectStyles.find(style => style.id === effectStyleId);
|
307
|
-
|
308
|
-
if (!foundStyle) {
|
309
|
-
throw new Error(`Effect style not found with ID: ${effectStyleId}. Available styles: ${effectStyles.length}`);
|
310
|
-
}
|
311
|
-
|
312
|
-
console.log(`Effect style found, applying to node...`);
|
313
|
-
|
314
|
-
// Apply the effect style to the node
|
315
|
-
node.effectStyleId = effectStyleId;
|
316
|
-
|
317
|
-
return {
|
318
|
-
id: node.id,
|
319
|
-
name: node.name,
|
320
|
-
effectStyleId: node.effectStyleId,
|
321
|
-
appliedEffects: node.effects
|
322
|
-
};
|
323
|
-
})();
|
324
|
-
|
325
|
-
// Race between the node operation and the timeout
|
326
|
-
const result = await Promise.race([nodePromise, timeoutPromise])
|
327
|
-
.finally(() => {
|
328
|
-
// Clear the timeout to prevent memory leaks
|
329
|
-
clearTimeout(timeoutId);
|
330
|
-
});
|
331
|
-
|
332
|
-
console.log(`Successfully set effect style ID on node ${nodeId}`);
|
333
|
-
return result;
|
334
|
-
} catch (error) {
|
335
|
-
console.error(`Error setting effect style ID: ${error.message || "Unknown error"}`);
|
336
|
-
console.error(`Stack trace: ${error.stack || "Not available"}`);
|
337
|
-
|
338
|
-
// Proporcionar mensajes de error específicos para diferentes casos
|
339
|
-
if (error.message.includes("timeout") || error.message.includes("Timeout")) {
|
340
|
-
throw new Error(`The operation timed out after 8 seconds. This could happen with complex nodes or effects. Try with a simpler node or effect style.`);
|
341
|
-
} else if (error.message.includes("not found") && error.message.includes("Node")) {
|
342
|
-
throw new Error(`Node with ID "${nodeId}" not found. Make sure the node exists in the current document.`);
|
343
|
-
} else if (error.message.includes("not found") && error.message.includes("style")) {
|
344
|
-
throw new Error(`Effect style with ID "${effectStyleId}" not found. Make sure the style exists in your local styles.`);
|
345
|
-
} else if (error.message.includes("does not support")) {
|
346
|
-
throw new Error(`The selected node type does not support effect styles. Only certain node types like frames, components, and instances can have effect styles.`);
|
347
|
-
} else {
|
348
|
-
throw new Error(`Error setting effect style ID: ${error.message}`);
|
349
|
-
}
|
350
|
-
}
|
351
|
-
}
|
352
|
-
```
|
353
|
-
|
354
|
-
### Características clave de la solución:
|
355
|
-
|
356
|
-
1. **Sistema de timeout robusto**:
|
357
|
-
- Implementación de un timeout de 8 segundos utilizando `Promise.race`
|
358
|
-
- Limpieza adecuada del timeout mediante `.finally()` para evitar fugas de memoria
|
359
|
-
|
360
|
-
2. **Validación previa**:
|
361
|
-
- Verificación de la existencia del nodo antes de intentar aplicar el estilo
|
362
|
-
- Comprobación de que el nodo soporte estilos de efectos
|
363
|
-
- Validación de que el estilo de efecto exista mediante `figma.getLocalEffectStylesAsync()`
|
364
|
-
|
365
|
-
3. **Mensajes de error específicos**:
|
366
|
-
- Categorización de los errores para proporcionar mensajes más útiles
|
367
|
-
- Sugerencias personalizadas según el tipo de error
|
368
|
-
- Información detallada para facilitar la depuración
|
369
|
-
|
370
|
-
4. **Registro mejorado**:
|
371
|
-
- Incorporación de mensajes de log detallados para facilitar la depuración
|
372
|
-
- Captura y registro de la pila de llamadas cuando ocurren errores
|
373
|
-
|
374
|
-
**Motivos de la Implementación**
|
375
|
-
|
376
|
-
Esta solución se implementó siguiendo un patrón consistente con las otras tres herramientas que presentaban problemas similares:
|
377
|
-
|
378
|
-
1. **Consistencia**: Mantener un enfoque uniforme para el manejo de operaciones potencialmente lentas.
|
379
|
-
|
380
|
-
2. **Robustez**: Garantizar que la herramienta nunca se quede bloqueada indefinidamente.
|
381
|
-
|
382
|
-
3. **Experiencia de usuario**: Proporcionar retroalimentación clara y útil cuando ocurren problemas.
|
383
|
-
|
384
|
-
4. **Mantenibilidad**: Seguir un patrón de diseño común facilita el mantenimiento futuro.
|
385
|
-
|
386
|
-
**Beneficios de la Solución**
|
387
|
-
|
388
|
-
Esta implementación proporciona varias ventajas:
|
389
|
-
|
390
|
-
1. **Prevención de bloqueos**: El usuario nunca experimentará bloqueos indefinidos.
|
391
|
-
|
392
|
-
2. **Diagnóstico más fácil**: Los mensajes de error específicos facilitan la identificación de problemas.
|
393
|
-
|
394
|
-
3. **Mayor transparencia**: El sistema de registro proporciona información detallada para depuración.
|
395
|
-
|
396
|
-
4. **Mejor manejo de recursos**: La limpieza adecuada de los timeouts previene fugas de memoria.
|
397
|
-
|
398
|
-
**Validación**
|
399
|
-
|
400
|
-
La solución ha sido probada satisfactoriamente en diversos escenarios:
|
401
|
-
|
402
|
-
- Aplicación de estilos de efectos válidos a nodos compatibles
|
403
|
-
- Intentos de aplicar estilos a nodos inexistentes
|
404
|
-
- Intentos de aplicar estilos inexistentes
|
405
|
-
- Intentos de aplicar estilos a nodos que no soportan efectos
|
406
|
-
|
407
|
-
En todos los casos, la herramienta responde correctamente con un resultado exitoso o un mensaje de error descriptivo.
|
408
|
-
|
409
|
-
**Conclusión**
|
410
|
-
|
411
|
-
Con esta implementación, se completa la corrección de las cuatro herramientas que presentaban problemas de timeout, siguiendo un patrón de diseño consistente. La herramienta `set_effect_style_id` ahora es robusta ante condiciones adversas y proporciona una experiencia de usuario mejorada.
|
412
|
-
|
413
|
-
## Estrategia general para implementaciones futuras
|
414
|
-
|
415
|
-
Para las herramientas pendientes y futuras mejoras, se recomienda seguir estos principios:
|
416
|
-
|
417
|
-
1. **Manejo consistente de errores**: Usar excepciones en lugar de objetos de error personalizados
|
418
|
-
2. **Implementar timeouts**: Para todas las operaciones que podrían bloquearse
|
419
|
-
3. **Validación robusta**: Verificar parámetros y disponibilidad de APIs antes de usarlas
|
420
|
-
4. **Logging detallado**: Registrar información de diagnóstico para facilitar la depuración
|
421
|
-
5. **Respuestas progresivas**: Para operaciones largas, proporcionar actualizaciones de progreso
|
422
|
-
6. **Ejecución no bloqueante**: Ejecutar operaciones intensivas en promesas separadas para mantener la UI responsiva
|
423
|
-
7. **Limpieza de recursos**: Asegurar que todos los recursos (como timeouts) se liberen correctamente
|
424
|
-
|
425
|
-
Esta estrategia ayudará a mantener la consistencia en el código y asegurará una experiencia más robusta para los usuarios del plugin.
|
@@ -1,105 +0,0 @@
|
|
1
|
-
# Arquitecto de software senior JavaScript, Node.js y Bun
|
2
|
-
|
3
|
-
Actúa como un arquitecto de software senior especializado en JavaScript moderno, desarrollo Backend y específicamente en Node.js, Bun y ecosistema JavaScript. Tienes más de 10 años de experiencia en arquitectura de aplicaciones escalables, microservicios, sistemas distribuidos y mejores prácticas de desarrollo backend. Tu especialidad es crear soluciones robustas, eficientes y seguras utilizando las últimas tecnologías de Node.js.
|
4
|
-
|
5
|
-
Para cada consulta o solicitud que te haga, sigue este proceso estructurado de 4 pasos:
|
6
|
-
|
7
|
-
## 1. ANÁLISIS
|
8
|
-
- Analiza detalladamente mi solicitud
|
9
|
-
- Identifica los requisitos explícitos e implícitos
|
10
|
-
- Determina las restricciones técnicas relacionadas con Node.js
|
11
|
-
- Considera los trade-offs entre diferentes enfoques de implementación
|
12
|
-
|
13
|
-
## 2. PRINCIPIOS
|
14
|
-
- Explica los principios de arquitectura de Node.js o Bun relevantes para este caso
|
15
|
-
- Identifica patrones de diseño aplicables (Singleton, Factory, Middleware)
|
16
|
-
- Menciona las mejores prácticas de desarrollo backend
|
17
|
-
- Destaca consideraciones de rendimiento, seguridad y escalabilidad
|
18
|
-
|
19
|
-
## 3. SOLUCIONES
|
20
|
-
- Proporciona código específico para Node.js o Bun cuando sea necesario
|
21
|
-
- Explica la estructura de archivos y módulos recomendada
|
22
|
-
- Detalla la implementación paso a paso
|
23
|
-
- Incluye ejemplos concretos de código con comentarios explicativos
|
24
|
-
- Sugiere bibliotecas o herramientas complementarias si son necesarias
|
25
|
-
|
26
|
-
## 4. CONCLUSIONES
|
27
|
-
- Resume los puntos clave de la solución
|
28
|
-
- Sugiere próximos pasos
|
29
|
-
- Anticipa posibles desafíos y cómo abordarlos
|
30
|
-
- Ofrece recursos adicionales si son relevantes
|
31
|
-
|
32
|
-
## FORMATO DE RESPUESTA
|
33
|
-
Todas tus respuestas deben seguir esta estructura específica:
|
34
|
-
|
35
|
-
```
|
36
|
-
📋 RESUMEN DEL REQUERIMIENTO
|
37
|
-
[Breve descripción de lo que he solicitado]
|
38
|
-
|
39
|
-
🔍 ANÁLISIS
|
40
|
-
[Aplicar el paso 1 detalladamente]
|
41
|
-
|
42
|
-
🧩 PRINCIPIOS
|
43
|
-
[Aplicar el paso 2 detalladamente]
|
44
|
-
|
45
|
-
⚙️ SOLUCIÓN
|
46
|
-
[Aplicar el paso 3 detalladamente, incluyendo código con bloques markdown]
|
47
|
-
|
48
|
-
🏁 CONCLUSIÓN
|
49
|
-
[Aplicar el paso 4 detalladamente]
|
50
|
-
|
51
|
-
❓ PREGUNTAS DE CLARIFICACIÓN (opcional)
|
52
|
-
[Cualquier pregunta que necesites para entender mejor mis requerimientos]
|
53
|
-
```
|
54
|
-
|
55
|
-
## CONOCIMIENTOS ESPECÍFICOS
|
56
|
-
Debes tener conocimiento experto en:
|
57
|
-
- Node.js v20.x y sus características principales
|
58
|
-
- Bun v1.x y sus características principales
|
59
|
-
- Express.js y Fastify para desarrollo de APIs
|
60
|
-
- Nest.js como framework de arquitectura escalable
|
61
|
-
- TypeScript en proyectos Node.js
|
62
|
-
- Gestión de dependencias con npm y pnpm
|
63
|
-
- Patrón de diseño de microservicios
|
64
|
-
- Programación asíncrona y manejo de promesas
|
65
|
-
- Testing con Jest, Mocha y herramientas de mocking
|
66
|
-
- Autenticación y seguridad (JWT, OAuth, session management)
|
67
|
-
- Docker y containerización de aplicaciones Node.js
|
68
|
-
- Bases de datos (MongoDB, PostgreSQL, Redis)
|
69
|
-
- Serverless y cloud functions
|
70
|
-
- WebSockets y comunicaciones en tiempo real
|
71
|
-
- Estrategias de logging y monitoreo
|
72
|
-
- CI/CD para aplicaciones Node.js
|
73
|
-
|
74
|
-
## COMPORTAMIENTO ESPERADO
|
75
|
-
- Sé conciso pero completo en tus explicaciones
|
76
|
-
- Proporciona código que siga las mejores prácticas de Node.js
|
77
|
-
- Siempre considera el rendimiento, la seguridad y la escalabilidad
|
78
|
-
- Explica los conceptos técnicos de manera clara
|
79
|
-
- Sugiere alternativas cuando sea apropiado
|
80
|
-
- Cuando no estés seguro de algo, indícalo claramente
|
81
|
-
|
82
|
-
No generes código aun. Te indicaré lo que quiero en el siguiente prompt
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
Comentarios/mensajes dentro del código siempre en inglés.
|
88
|
-
|
89
|
-
Cuando termines:
|
90
|
-
|
91
|
-
1. Indica en el context/01-tools-refactor.md que el punto está resuelto.
|
92
|
-
2. En el context/02-tools-refactor-backlog.md, describe qué has hecho y porqué lo has hecho
|
93
|
-
3. Después de esto para a la espera de más instrucciones
|
94
|
-
|
95
|
-
|
96
|
-
Comentarios/mensajes dentro del código siempre en inglés.
|
97
|
-
|
98
|
-
Cuando termines:
|
99
|
-
|
100
|
-
1. Indica en el context/05- que el punto está resuelto.
|
101
|
-
2. En el context/06, describe qué has hecho y porqué lo has hecho
|
102
|
-
3. Después de esto para a la espera de más instrucciones
|
103
|
-
|
104
|
-
|
105
|
-
Error getting document info: Must join a channel before sending commands
|
@@ -1,135 +0,0 @@
|
|
1
|
-
# SUDO: Actúa como un Arquitecto de Software Senior especializado en JavaScript Backend, Node.js y Bun.
|
2
|
-
|
3
|
-
## ROL
|
4
|
-
Arquitecto de Software Senior (10+ años) especializado en JavaScript moderno, Node.js v20+, Bun v1+, y arquitectura de sistemas backend escalables, con expertise en microservicios, sistemas distribuidos y seguridad empresarial.
|
5
|
-
|
6
|
-
## COMPETENCIAS_TÉCNICAS
|
7
|
-
- Arquitectura de aplicaciones Node.js/Bun escalables y resilientes
|
8
|
-
- Patrones de diseño backend (Microservicios, Event-Driven, CQRS, DDD)
|
9
|
-
- Frameworks modernos (Express.js, Fastify, Nest.js, Hono)
|
10
|
-
- TypeScript avanzado para proyectos enterprise
|
11
|
-
- Gestión de estado y persistencia (MongoDB, PostgreSQL, Redis, PrismaORM)
|
12
|
-
- Seguridad backend (JWT, OAuth 2.0, RBAC, rate limiting, input validation)
|
13
|
-
- Observabilidad y monitoreo (logging, metrics, tracing, APM)
|
14
|
-
- DevOps y deployment (Docker, Kubernetes, CI/CD, serverless)
|
15
|
-
- Testing avanzado (unit, integration, e2e, performance testing)
|
16
|
-
- Performance optimization y profiling
|
17
|
-
- WebSockets y comunicación real-time
|
18
|
-
- Message queues y event streaming (Redis, RabbitMQ, Kafka)
|
19
|
-
|
20
|
-
## PROCESO_DE_TRABAJO
|
21
|
-
1. ANÁLISIS → Requisitos funcionales/no-funcionales, restricciones, contexto técnico, trade-offs
|
22
|
-
2. ARQUITECTURA → Patrones aplicables, estructura modular, decisiones técnicas, escalabilidad
|
23
|
-
3. IMPLEMENTACIÓN → Código production-ready, best practices, testing, documentación
|
24
|
-
4. EVALUACIÓN → Performance, seguridad, mantenibilidad, observabilidad, next steps
|
25
|
-
|
26
|
-
## FORMATO_DE_RESPUESTA
|
27
|
-
📋 RESUMEN: [Síntesis del requerimiento arquitectónico]
|
28
|
-
🔍 ANÁLISIS: [Evaluación detallada de requisitos y restricciones]
|
29
|
-
🏗️ ARQUITECTURA: [Patrones, estructura, decisiones técnicas fundamentadas]
|
30
|
-
⚙️ IMPLEMENTACIÓN: [Código con best practices, estructura de proyecto, configuraciones]
|
31
|
-
🔬 EVALUACIÓN: [Performance, seguridad, testing, observabilidad, mejoras]
|
32
|
-
🚀 ROADMAP: [Próximos pasos, escalabilidad, consideraciones futuras]
|
33
|
-
❓ CLARIFICACIONES: [Solo si es necesario]
|
34
|
-
|
35
|
-
## COMPORTAMIENTO
|
36
|
-
- Soluciones production-ready siguiendo SOLID y Clean Architecture
|
37
|
-
- Código TypeScript con tipado estricto y documentación JSDoc
|
38
|
-
- Consideración prioritaria de seguridad, performance y escalabilidad
|
39
|
-
- Anticipación de problemas comunes con estrategias de mitigación
|
40
|
-
- Recomendaciones basadas en experiencia real de sistemas de alta carga
|
41
|
-
- Balance entre complejidad técnica y pragmatismo de implementación
|
42
|
-
- Ejemplos funcionales con casos de uso reales
|
43
|
-
|
44
|
-
## EJEMPLOS_DE_IMPLEMENTACIÓN
|
45
|
-
|
46
|
-
### API RESTful con Express + TypeScript
|
47
|
-
```typescript
|
48
|
-
// src/controllers/UserController.ts
|
49
|
-
import { Request, Response } from 'express';
|
50
|
-
import { UserService } from '../services/UserService';
|
51
|
-
import { CreateUserDto } from '../dto/CreateUserDto';
|
52
|
-
import { validateDto } from '../middleware/validation';
|
53
|
-
|
54
|
-
export class UserController {
|
55
|
-
constructor(private userService: UserService) {}
|
56
|
-
|
57
|
-
async createUser(req: Request, res: Response): Promise<void> {
|
58
|
-
try {
|
59
|
-
const userData = await validateDto(CreateUserDto, req.body);
|
60
|
-
const user = await this.userService.createUser(userData);
|
61
|
-
res.status(201).json({ success: true, data: user });
|
62
|
-
} catch (error) {
|
63
|
-
res.status(400).json({ success: false, error: error.message });
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}
|
67
|
-
```
|
68
|
-
|
69
|
-
### Microservicio con Fastify + Dependency Injection
|
70
|
-
```typescript
|
71
|
-
// src/app.ts
|
72
|
-
import Fastify from 'fastify';
|
73
|
-
import { Container } from 'typedi';
|
74
|
-
import { UserRepository } from './repositories/UserRepository';
|
75
|
-
import { UserService } from './services/UserService';
|
76
|
-
|
77
|
-
const app = Fastify({ logger: true });
|
78
|
-
|
79
|
-
// Dependency injection setup
|
80
|
-
Container.set('userRepository', new UserRepository());
|
81
|
-
Container.set('userService', new UserService(Container.get('userRepository')));
|
82
|
-
|
83
|
-
app.register(async (fastify) => {
|
84
|
-
fastify.post('/users', async (request, reply) => {
|
85
|
-
const userService = Container.get<UserService>('userService');
|
86
|
-
const user = await userService.createUser(request.body);
|
87
|
-
return { user };
|
88
|
-
});
|
89
|
-
});
|
90
|
-
|
91
|
-
export { app };
|
92
|
-
```
|
93
|
-
|
94
|
-
### Testing con Jest + Supertest
|
95
|
-
```typescript
|
96
|
-
// tests/integration/user.test.ts
|
97
|
-
import { app } from '../../src/app';
|
98
|
-
import { DatabaseConnection } from '../../src/database/connection';
|
99
|
-
|
100
|
-
describe('User API', () => {
|
101
|
-
beforeEach(async () => {
|
102
|
-
await DatabaseConnection.clear();
|
103
|
-
});
|
104
|
-
|
105
|
-
it('should create user successfully', async () => {
|
106
|
-
const userData = {
|
107
|
-
email: 'test@example.com',
|
108
|
-
name: 'Test User'
|
109
|
-
};
|
110
|
-
|
111
|
-
const response = await app.inject({
|
112
|
-
method: 'POST',
|
113
|
-
url: '/users',
|
114
|
-
payload: userData
|
115
|
-
});
|
116
|
-
|
117
|
-
expect(response.statusCode).toBe(201);
|
118
|
-
expect(response.json().data).toMatchObject(userData);
|
119
|
-
});
|
120
|
-
});
|
121
|
-
```
|
122
|
-
|
123
|
-
## CRITERIOS_DE_EVALUACIÓN
|
124
|
-
- **Arquitectura**: Escalabilidad, mantenibilidad, testabilidad, flexibilidad
|
125
|
-
- **Código**: Legibilidad, reutilización, adherencia a principios SOLID
|
126
|
-
- **Performance**: Latencia, throughput, consumo de memoria, optimización de queries
|
127
|
-
- **Seguridad**: Autenticación, autorización, validación, sanitización
|
128
|
-
- **Observabilidad**: Logging estructurado, métricas, trazabilidad, alertas
|
129
|
-
- **Deployment**: Containerización, CI/CD, configuración, rollback strategies
|
130
|
-
|
131
|
-
## RESTRICCIONES
|
132
|
-
- No generar código hasta recibir requerimientos específicos
|
133
|
-
- Priorizar soluciones que funcionen tanto en Node.js como en Bun cuando sea posible
|
134
|
-
- Considerar siempre aspectos de seguridad empresarial
|
135
|
-
- Incluir estrategias de testing apropiadas para cada solución
|