@nguyenphp/antigravity-marketing 1.0.16 → 1.0.19
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 +187 -74
- package/bin/index.js +4 -4
- package/package.json +4 -3
- package/templates/.agent/agents/backend-specialist.md +263 -0
- package/templates/.agent/agents/database-architect.md +226 -0
- package/templates/.agent/agents/debugger.md +225 -0
- package/templates/.agent/agents/devops-engineer.md +242 -0
- package/templates/.agent/agents/documentation-writer.md +104 -0
- package/templates/.agent/agents/explorer-agent.md +73 -0
- package/templates/.agent/agents/frontend-specialist.md +527 -0
- package/templates/.agent/agents/game-developer.md +162 -0
- package/templates/.agent/agents/mobile-developer.md +377 -0
- package/templates/.agent/agents/orchestrator.md +400 -0
- package/templates/.agent/agents/penetration-tester.md +188 -0
- package/templates/.agent/agents/performance-optimizer.md +187 -0
- package/templates/.agent/agents/project-planner.md +403 -0
- package/templates/.agent/agents/security-auditor.md +170 -0
- package/templates/.agent/agents/seo-specialist.md +111 -0
- package/templates/.agent/agents/test-engineer.md +158 -0
- package/templates/.agent/rules/GEMINI.md +248 -0
- package/templates/.agent/skills/analytics-marketing/SKILL.md +172 -324
- package/templates/.agent/skills/api-patterns/SKILL.md +81 -0
- package/templates/.agent/skills/api-patterns/api-style.md +42 -0
- package/templates/.agent/skills/api-patterns/auth.md +24 -0
- package/templates/.agent/skills/api-patterns/documentation.md +26 -0
- package/templates/.agent/skills/api-patterns/graphql.md +41 -0
- package/templates/.agent/skills/api-patterns/rate-limiting.md +31 -0
- package/templates/.agent/skills/api-patterns/response.md +37 -0
- package/templates/.agent/skills/api-patterns/rest.md +40 -0
- package/templates/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/templates/.agent/skills/api-patterns/security-testing.md +122 -0
- package/templates/.agent/skills/api-patterns/trpc.md +41 -0
- package/templates/.agent/skills/api-patterns/versioning.md +22 -0
- package/templates/.agent/skills/app-builder/SKILL.md +75 -0
- package/templates/.agent/skills/app-builder/agent-coordination.md +71 -0
- package/templates/.agent/skills/app-builder/feature-building.md +53 -0
- package/templates/.agent/skills/app-builder/project-detection.md +34 -0
- package/templates/.agent/skills/app-builder/scaffolding.md +118 -0
- package/templates/.agent/skills/app-builder/tech-stack.md +40 -0
- package/templates/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/templates/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/templates/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/templates/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/templates/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/templates/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/templates/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/templates/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/templates/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/templates/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/templates/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/templates/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/templates/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/templates/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/templates/.agent/skills/architecture/SKILL.md +55 -0
- package/templates/.agent/skills/architecture/context-discovery.md +43 -0
- package/templates/.agent/skills/architecture/examples.md +94 -0
- package/templates/.agent/skills/architecture/pattern-selection.md +68 -0
- package/templates/.agent/skills/architecture/patterns-reference.md +50 -0
- package/templates/.agent/skills/architecture/trade-off-analysis.md +77 -0
- package/templates/.agent/skills/banner-design/SKILL.md +192 -0
- package/templates/.agent/skills/banner-design/references/banner-sizes-and-styles.md +118 -0
- package/templates/.agent/skills/bash-linux/SKILL.md +199 -0
- package/templates/.agent/skills/behavioral-modes/SKILL.md +242 -0
- package/templates/.agent/skills/brainstorming/SKILL.md +163 -0
- package/templates/.agent/skills/brainstorming/dynamic-questioning.md +350 -0
- package/templates/.agent/skills/brand/SKILL.md +97 -0
- package/templates/.agent/skills/brand/references/approval-checklist.md +169 -0
- package/templates/.agent/skills/brand/references/asset-organization.md +157 -0
- package/templates/.agent/skills/brand/references/brand-guideline-template.md +140 -0
- package/templates/.agent/skills/brand/references/color-palette-management.md +186 -0
- package/templates/.agent/skills/brand/references/consistency-checklist.md +94 -0
- package/templates/.agent/skills/brand/references/logo-usage-rules.md +185 -0
- package/templates/.agent/skills/brand/references/messaging-framework.md +85 -0
- package/templates/.agent/skills/brand/references/typography-specifications.md +214 -0
- package/templates/.agent/skills/brand/references/update.md +118 -0
- package/templates/.agent/skills/brand/references/visual-identity.md +96 -0
- package/templates/.agent/skills/brand/references/voice-framework.md +88 -0
- package/templates/.agent/skills/brand/scripts/extract-colors.cjs +341 -0
- package/templates/.agent/skills/brand/scripts/inject-brand-context.cjs +349 -0
- package/templates/.agent/skills/brand/scripts/sync-brand-to-tokens.cjs +266 -0
- package/templates/.agent/skills/brand/scripts/validate-asset.cjs +387 -0
- package/templates/.agent/skills/brand/templates/brand-guidelines-starter.md +275 -0
- package/templates/.agent/skills/clean-code/SKILL.md +201 -0
- package/templates/.agent/skills/code-review-checklist/SKILL.md +109 -0
- package/templates/.agent/skills/copywriting/SKILL.md +250 -0
- package/templates/.agent/skills/database-design/SKILL.md +52 -0
- package/templates/.agent/skills/database-design/database-selection.md +43 -0
- package/templates/.agent/skills/database-design/indexing.md +39 -0
- package/templates/.agent/skills/database-design/migrations.md +48 -0
- package/templates/.agent/skills/database-design/optimization.md +36 -0
- package/templates/.agent/skills/database-design/orm-selection.md +30 -0
- package/templates/.agent/skills/database-design/schema-design.md +56 -0
- package/templates/.agent/skills/database-design/scripts/schema_validator.py +172 -0
- package/templates/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/templates/.agent/skills/docker-expert/SKILL.md +409 -0
- package/templates/.agent/skills/frontend-design/animation-guide.md +331 -0
- package/templates/.agent/skills/frontend-design/color-system.md +311 -0
- package/templates/.agent/skills/frontend-design/decision-trees.md +418 -0
- package/templates/.agent/skills/frontend-design/motion-graphics.md +306 -0
- package/templates/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/templates/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/templates/.agent/skills/frontend-design/typography-system.md +345 -0
- package/templates/.agent/skills/frontend-design/ux-psychology.md +541 -0
- package/templates/.agent/skills/frontend-design/visual-effects.md +383 -0
- package/templates/.agent/skills/frontend-slides/SKILL.md +92 -0
- package/templates/.agent/skills/frontend-slides/STYLE_PRESETS.md +347 -0
- package/templates/.agent/skills/frontend-slides/animation-patterns.md +110 -0
- package/templates/.agent/skills/frontend-slides/examples/n8n-jupviec-automation.html +789 -0
- package/templates/.agent/skills/frontend-slides/examples/n8n-jupviec-automation.pptx +0 -0
- package/templates/.agent/skills/frontend-slides/html-template.md +347 -0
- package/templates/.agent/skills/frontend-slides/scripts/export-pptx.py +58 -0
- package/templates/.agent/skills/frontend-slides/scripts/extract-pptx.py +96 -0
- package/templates/.agent/skills/frontend-slides/viewport-base.css +153 -0
- package/templates/.agent/skills/game-development/2d-games/SKILL.md +119 -0
- package/templates/.agent/skills/game-development/3d-games/SKILL.md +135 -0
- package/templates/.agent/skills/game-development/SKILL.md +167 -0
- package/templates/.agent/skills/game-development/game-art/SKILL.md +185 -0
- package/templates/.agent/skills/game-development/game-audio/SKILL.md +190 -0
- package/templates/.agent/skills/game-development/game-design/SKILL.md +129 -0
- package/templates/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
- package/templates/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
- package/templates/.agent/skills/game-development/pc-games/SKILL.md +144 -0
- package/templates/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
- package/templates/.agent/skills/game-development/web-games/SKILL.md +150 -0
- package/templates/.agent/skills/geo-fundamentals/SKILL.md +156 -0
- package/templates/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/templates/.agent/skills/growth-engine/SKILL.md +244 -0
- package/templates/.agent/skills/i18n-localization/SKILL.md +154 -0
- package/templates/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/templates/.agent/skills/lint-and-validate/SKILL.md +45 -0
- package/templates/.agent/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/templates/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/templates/.agent/skills/marketing-report-expert/SKILL.md +70 -0
- package/templates/.agent/skills/mcp-builder/SKILL.md +176 -0
- package/templates/.agent/skills/minimax-docx/LICENSE +21 -0
- package/templates/.agent/skills/minimax-docx/SKILL.md +274 -0
- package/templates/.agent/skills/minimax-docx/assets/styles/academic_styles.xml +250 -0
- package/templates/.agent/skills/minimax-docx/assets/styles/corporate_styles.xml +284 -0
- package/templates/.agent/skills/minimax-docx/assets/styles/default_styles.xml +449 -0
- package/templates/.agent/skills/minimax-docx/assets/xsd/aesthetic-rules.xsd +470 -0
- package/templates/.agent/skills/minimax-docx/assets/xsd/business-rules.xsd +130 -0
- package/templates/.agent/skills/minimax-docx/assets/xsd/common-types.xsd +159 -0
- package/templates/.agent/skills/minimax-docx/assets/xsd/wml-subset.xsd +589 -0
- package/templates/.agent/skills/minimax-docx/references/cjk_typography.md +357 -0
- package/templates/.agent/skills/minimax-docx/references/cjk_university_template_guide.md +184 -0
- package/templates/.agent/skills/minimax-docx/references/comments_guide.md +191 -0
- package/templates/.agent/skills/minimax-docx/references/design_good_bad_examples.md +829 -0
- package/templates/.agent/skills/minimax-docx/references/design_principles.md +819 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_element_order.md +308 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part1.md +4061 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part2.md +2820 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part3.md +3381 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_namespaces.md +82 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_units.md +72 -0
- package/templates/.agent/skills/minimax-docx/references/scenario_a_create.md +284 -0
- package/templates/.agent/skills/minimax-docx/references/scenario_b_edit_content.md +295 -0
- package/templates/.agent/skills/minimax-docx/references/scenario_c_apply_template.md +456 -0
- package/templates/.agent/skills/minimax-docx/references/track_changes_guide.md +200 -0
- package/templates/.agent/skills/minimax-docx/references/troubleshooting.md +506 -0
- package/templates/.agent/skills/minimax-docx/references/typography_guide.md +294 -0
- package/templates/.agent/skills/minimax-docx/references/xsd_validation_guide.md +158 -0
- package/templates/.agent/skills/minimax-docx/scripts/doc_to_docx.sh +40 -0
- package/templates/.agent/skills/minimax-docx/scripts/docx_preview.sh +37 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj +19 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/MiniMaxAIDocx.Core.csproj +15 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
- package/templates/.agent/skills/minimax-docx/scripts/env_check.sh +196 -0
- package/templates/.agent/skills/minimax-docx/scripts/setup.ps1 +274 -0
- package/templates/.agent/skills/minimax-docx/scripts/setup.sh +504 -0
- package/templates/.agent/skills/minimax-multimodal-toolkit/SKILL.md +359 -0
- package/templates/.agent/skills/minimax-pdf/README.md +222 -0
- package/templates/.agent/skills/minimax-pdf/SKILL.md +201 -0
- package/templates/.agent/skills/minimax-pdf/design/design.md +381 -0
- package/templates/.agent/skills/minimax-pdf/scripts/cover.py +1579 -0
- package/templates/.agent/skills/minimax-pdf/scripts/fill_inspect.py +200 -0
- package/templates/.agent/skills/minimax-pdf/scripts/fill_write.py +242 -0
- package/templates/.agent/skills/minimax-pdf/scripts/make.sh +491 -0
- package/templates/.agent/skills/minimax-pdf/scripts/merge.py +112 -0
- package/templates/.agent/skills/minimax-pdf/scripts/palette.py +559 -0
- package/templates/.agent/skills/minimax-pdf/scripts/reformat_parse.py +374 -0
- package/templates/.agent/skills/minimax-pdf/scripts/render_body.py +1055 -0
- package/templates/.agent/skills/minimax-pdf/scripts/render_cover.cjs +111 -0
- package/templates/.agent/skills/minimax-xlsx/SKILL.md +138 -0
- package/templates/.agent/skills/minimax-xlsx/references/create.md +691 -0
- package/templates/.agent/skills/minimax-xlsx/references/edit.md +684 -0
- package/templates/.agent/skills/minimax-xlsx/references/fix.md +37 -0
- package/templates/.agent/skills/minimax-xlsx/references/format.md +768 -0
- package/templates/.agent/skills/minimax-xlsx/references/ooxml-cheatsheet.md +231 -0
- package/templates/.agent/skills/minimax-xlsx/references/read-analyze.md +97 -0
- package/templates/.agent/skills/minimax-xlsx/references/validate.md +772 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/formula_check.py +422 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/libreoffice_recalc.py +248 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/shared_strings_builder.py +163 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/style_audit.py +575 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_add_column.py +395 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_insert_row.py +274 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_pack.py +87 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_reader.py +362 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_shift_rows.py +396 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_unpack.py +130 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/[Content_Types].xml +9 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/_rels/.rels +6 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +19 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/sharedStrings.xml +33 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/styles.xml +160 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/workbook.xml +30 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/worksheets/sheet1.xml +70 -0
- package/templates/.agent/skills/mobile-design/SKILL.md +394 -0
- package/templates/.agent/skills/mobile-design/decision-trees.md +516 -0
- package/templates/.agent/skills/mobile-design/mobile-backend.md +491 -0
- package/templates/.agent/skills/mobile-design/mobile-color-system.md +420 -0
- package/templates/.agent/skills/mobile-design/mobile-debugging.md +122 -0
- package/templates/.agent/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/templates/.agent/skills/mobile-design/mobile-navigation.md +458 -0
- package/templates/.agent/skills/mobile-design/mobile-performance.md +767 -0
- package/templates/.agent/skills/mobile-design/mobile-testing.md +356 -0
- package/templates/.agent/skills/mobile-design/mobile-typography.md +433 -0
- package/templates/.agent/skills/mobile-design/platform-android.md +666 -0
- package/templates/.agent/skills/mobile-design/platform-ios.md +561 -0
- package/templates/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/templates/.agent/skills/mobile-design/touch-psychology.md +537 -0
- package/templates/.agent/skills/nestjs-expert/SKILL.md +552 -0
- package/templates/.agent/skills/nextjs-best-practices/SKILL.md +203 -0
- package/templates/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
- package/templates/.agent/skills/parallel-agents/SKILL.md +175 -0
- package/templates/.agent/skills/performance-profiling/SKILL.md +143 -0
- package/templates/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/templates/.agent/skills/plan-writing/SKILL.md +152 -0
- package/templates/.agent/skills/powershell-windows/SKILL.md +167 -0
- package/templates/.agent/skills/ppc-advertising/SKILL.md +183 -475
- package/templates/.agent/skills/pptx-generator/SKILL.md +249 -0
- package/templates/.agent/skills/pptx-generator/references/design-system.md +392 -0
- package/templates/.agent/skills/pptx-generator/references/editing.md +162 -0
- package/templates/.agent/skills/pptx-generator/references/pitfalls.md +112 -0
- package/templates/.agent/skills/pptx-generator/references/pptxgenjs.md +420 -0
- package/templates/.agent/skills/pptx-generator/references/slide-types.md +413 -0
- package/templates/.agent/skills/prisma-expert/SKILL.md +355 -0
- package/templates/.agent/skills/python-patterns/SKILL.md +441 -0
- package/templates/.agent/skills/react-patterns/SKILL.md +198 -0
- package/templates/.agent/skills/red-team-tactics/SKILL.md +199 -0
- package/templates/.agent/skills/remotion-best-practices/SKILL.md +45 -111
- package/templates/.agent/skills/remotion-best-practices/rules/3d.md +4 -4
- package/templates/.agent/skills/remotion-best-practices/rules/animations.md +5 -7
- package/templates/.agent/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/templates/.agent/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/templates/.agent/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
- package/templates/.agent/skills/remotion-best-practices/rules/assets.md +78 -0
- package/templates/.agent/skills/remotion-best-practices/rules/audio-visualization.md +198 -0
- package/templates/.agent/skills/remotion-best-practices/rules/audio.md +1 -4
- package/templates/.agent/skills/remotion-best-practices/rules/calculate-metadata.md +47 -17
- package/templates/.agent/skills/remotion-best-practices/rules/can-decode.md +75 -0
- package/templates/.agent/skills/remotion-best-practices/rules/charts.md +80 -48
- package/templates/.agent/skills/remotion-best-practices/rules/compositions.md +22 -14
- package/templates/.agent/skills/remotion-best-practices/rules/display-captions.md +79 -21
- package/templates/.agent/skills/remotion-best-practices/rules/extract-frames.md +229 -0
- package/templates/.agent/skills/remotion-best-practices/rules/ffmpeg.md +38 -0
- package/templates/.agent/skills/remotion-best-practices/rules/fonts.md +96 -54
- package/templates/.agent/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/templates/.agent/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/templates/.agent/skills/remotion-best-practices/rules/get-video-duration.md +60 -0
- package/templates/.agent/skills/remotion-best-practices/rules/gifs.md +21 -18
- package/templates/.agent/skills/remotion-best-practices/rules/images.md +6 -2
- package/templates/.agent/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
- package/templates/.agent/skills/remotion-best-practices/rules/light-leaks.md +73 -0
- package/templates/.agent/skills/remotion-best-practices/rules/lottie.md +10 -7
- package/templates/.agent/skills/remotion-best-practices/rules/maps.md +412 -0
- package/templates/.agent/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
- package/templates/.agent/skills/remotion-best-practices/rules/measuring-text.md +140 -0
- package/templates/.agent/skills/remotion-best-practices/rules/parameters.md +109 -0
- package/templates/.agent/skills/remotion-best-practices/rules/sequencing.md +13 -1
- package/templates/.agent/skills/remotion-best-practices/rules/sfx.md +26 -0
- package/templates/.agent/skills/remotion-best-practices/rules/subtitles.md +36 -0
- package/templates/.agent/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/templates/.agent/skills/remotion-best-practices/rules/text-animations.md +4 -115
- package/templates/.agent/skills/remotion-best-practices/rules/timing.md +19 -19
- package/templates/.agent/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
- package/templates/.agent/skills/remotion-best-practices/rules/transitions.md +117 -42
- package/templates/.agent/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
- package/templates/.agent/skills/remotion-best-practices/rules/trimming.md +51 -0
- package/templates/.agent/skills/remotion-best-practices/rules/voiceover.md +99 -0
- package/templates/.agent/skills/seo-fundamentals/SKILL.md +83 -441
- package/templates/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/templates/.agent/skills/server-management/SKILL.md +161 -0
- package/templates/.agent/skills/systematic-debugging/SKILL.md +109 -0
- package/templates/.agent/skills/tdd-workflow/SKILL.md +149 -0
- package/templates/.agent/skills/testing-patterns/SKILL.md +178 -0
- package/templates/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/templates/.agent/skills/tutorial-video-expert/SKILL.md +88 -0
- package/templates/.agent/skills/typescript-expert/SKILL.md +429 -0
- package/templates/.agent/skills/ui-ux-pro-max/SKILL.md +1 -1
- package/templates/.agent/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/prompts.csv +24 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/styles.csv +59 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/templates/.agent/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/templates/.agent/skills/ui-ux-pro-max/scripts/core.py +257 -0
- package/templates/.agent/skills/ui-ux-pro-max/scripts/design_system.py +487 -0
- package/templates/.agent/skills/ui-ux-pro-max/scripts/search.py +76 -0
- package/templates/.agent/skills/vision-analysis/SKILL.md +174 -0
- package/templates/.agent/skills/vue-expert/SKILL.md +374 -0
- package/templates/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
- package/templates/.agent/skills/vulnerability-scanner/checklists.md +121 -0
- package/templates/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/templates/.agent/skills/webapp-testing/SKILL.md +187 -0
- package/templates/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/templates/.agent/workflows/analyze.md +3 -0
- package/templates/.agent/workflows/brainstorm.md +113 -0
- package/templates/.agent/workflows/brand-report.md +44 -0
- package/templates/.agent/workflows/create.md +59 -0
- package/templates/.agent/workflows/debug.md +103 -0
- package/templates/.agent/workflows/deploy.md +176 -0
- package/templates/.agent/workflows/enhance.md +63 -0
- package/templates/.agent/workflows/orchestrate.md +237 -0
- package/templates/.agent/workflows/plan.md +89 -0
- package/templates/.agent/workflows/preview.md +80 -0
- package/templates/.agent/workflows/report.md +49 -0
- package/templates/.agent/workflows/status.md +86 -0
- package/templates/.agent/workflows/test.md +144 -0
- package/templates/.agent/workflows/ui-ux-pro-max.md +231 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vision-analysis
|
|
3
|
+
description: >
|
|
4
|
+
Analyze, describe, and extract information from images using the MiniMax vision MCP tool.
|
|
5
|
+
Use when: user shares an image file path or URL (any message containing .jpg, .jpeg, .png,
|
|
6
|
+
.gif, .webp, .bmp, or .svg file extension) or uses any of these words/phrases near an image:
|
|
7
|
+
"analyze", "analyse", "describe", "explain", "understand", "look at", "review",
|
|
8
|
+
"extract text", "OCR", "what is in", "what's in", "read this image", "see this image",
|
|
9
|
+
"tell me about", "explain this", "interpret this", in connection with an image, screenshot,
|
|
10
|
+
diagram, chart, mockup, wireframe, or photo.
|
|
11
|
+
Also triggers for: UI mockup review, wireframe analysis, design critique, data extraction
|
|
12
|
+
from charts, object detection, person/animal/activity identification.
|
|
13
|
+
Triggers: any message with an image file extension (jpg, jpeg, png, gif, webp, bmp, svg),
|
|
14
|
+
or any request to analyze/describ/understand/review/extract text from an image, screenshot,
|
|
15
|
+
diagram, chart, photo, mockup, or wireframe.
|
|
16
|
+
license: MIT
|
|
17
|
+
metadata:
|
|
18
|
+
version: "1.0"
|
|
19
|
+
category: ai-vision
|
|
20
|
+
sources:
|
|
21
|
+
- MiniMax Token Plan MCP (understand_image tool)
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Vision Analysis
|
|
25
|
+
|
|
26
|
+
Analyze images using the MiniMax `MiniMax_understand_image` MCP tool available in the MiniMax Token Plan.
|
|
27
|
+
|
|
28
|
+
## Prerequisites
|
|
29
|
+
|
|
30
|
+
- MiniMax Token Plan subscription with valid `MINIMAX_API_KEY`
|
|
31
|
+
- MiniMax MCP configured (`MiniMax_understand_image` tool available)
|
|
32
|
+
|
|
33
|
+
### If MCP tool is not configured
|
|
34
|
+
|
|
35
|
+
**Step 1:** The agent should fetch setup instructions from:
|
|
36
|
+
**https://platform.minimaxi.com/docs/token-plan/mcp-guide**
|
|
37
|
+
|
|
38
|
+
**Step 2:** Detect the user's environment (OpenCode, Cursor, Claude Code, etc.) and output the exact commands needed. Common examples:
|
|
39
|
+
|
|
40
|
+
**OpenCode** — add to `~/.config/opencode/opencode.json` or `package.json`:
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"mcp": {
|
|
44
|
+
"MiniMax": {
|
|
45
|
+
"type": "local",
|
|
46
|
+
"command": ["uvx", "minimax-coding-plan-mcp", "-y"],
|
|
47
|
+
"environment": {
|
|
48
|
+
"MINIMAX_API_KEY": "YOUR_TOKEN_PLAN_KEY",
|
|
49
|
+
"MINIMAX_API_HOST": "https://api.minimaxi.com"
|
|
50
|
+
},
|
|
51
|
+
"enabled": true
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Claude Code**:
|
|
58
|
+
```bash
|
|
59
|
+
claude mcp add -s user MiniMax --env MINIMAX_API_KEY=your-key --env MINIMAX_API_HOST=https://api.minimaxi.com -- uvx minimax-coding-plan-mcp -y
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Cursor** — add to MCP settings:
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"mcpServers": {
|
|
66
|
+
"MiniMax": {
|
|
67
|
+
"command": "uvx",
|
|
68
|
+
"args": ["minimax-coding-plan-mcp"],
|
|
69
|
+
"env": {
|
|
70
|
+
"MINIMAX_API_KEY": "your-key",
|
|
71
|
+
"MINIMAX_API_HOST": "https://api.minimaxi.com"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Step 3:** After configuration, tell the user to restart their app and verify with `/mcp`.
|
|
79
|
+
|
|
80
|
+
**Important:** If the user does not have a MiniMax Token Plan subscription, inform them that the `understand_image` tool requires one — it cannot be used with free or other tier API keys.
|
|
81
|
+
|
|
82
|
+
## Analysis Modes
|
|
83
|
+
|
|
84
|
+
| Mode | When to use | Prompt strategy |
|
|
85
|
+
|---|---|---|
|
|
86
|
+
| `describe` | General image understanding | Ask for detailed description |
|
|
87
|
+
| `ocr` | Text extraction from screenshots, documents | Ask to extract all text verbatim |
|
|
88
|
+
| `ui-review` | UI mockups, wireframes, design files | Ask for design critique with suggestions |
|
|
89
|
+
| `chart-data` | Charts, graphs, data visualizations | Ask to extract data points and trends |
|
|
90
|
+
| `object-detect` | Identify objects, people, activities | Ask to list and locate all elements |
|
|
91
|
+
|
|
92
|
+
## Workflow
|
|
93
|
+
|
|
94
|
+
### Step 1: Auto-detect image
|
|
95
|
+
|
|
96
|
+
The skill triggers automatically when a message contains an image file path or URL with extensions:
|
|
97
|
+
`.jpg`, `.jpeg`, `.png`, `.gif`, `.webp`, `.bmp`, `.svg`
|
|
98
|
+
|
|
99
|
+
Extract the image path from the message.
|
|
100
|
+
|
|
101
|
+
### Step 2: Select analysis mode and call MCP tool
|
|
102
|
+
|
|
103
|
+
Use the `MiniMax_understand_image` tool with a mode-specific prompt:
|
|
104
|
+
|
|
105
|
+
**describe:**
|
|
106
|
+
```
|
|
107
|
+
Provide a detailed description of this image. Include: main subject, setting/background,
|
|
108
|
+
colors/style, any text visible, notable objects, and overall composition.
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**ocr:**
|
|
112
|
+
```
|
|
113
|
+
Extract all text visible in this image verbatim. Preserve structure and formatting
|
|
114
|
+
(headers, lists, columns). If no text is found, say so.
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**ui-review:**
|
|
118
|
+
```
|
|
119
|
+
You are a UI/UX design reviewer. Analyze this interface mockup or design. Provide:
|
|
120
|
+
(1) Strengths — what works well, (2) Issues — usability or design problems,
|
|
121
|
+
(3) Specific, actionable suggestions for improvement. Be constructive and detailed.
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**chart-data:**
|
|
125
|
+
```
|
|
126
|
+
Extract all data from this chart or graph. List: chart title, axis labels, all
|
|
127
|
+
data points/series with values if readable, and a brief summary of the trend.
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**object-detect:**
|
|
131
|
+
```
|
|
132
|
+
List all distinct objects, people, and activities you can identify. For each,
|
|
133
|
+
describe what it is and its approximate location in the image.
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Step 3: Present results
|
|
137
|
+
|
|
138
|
+
Return the analysis clearly. For `describe`, use readable prose. For `ocr`, preserve structure. For `ui-review`, use a structured critique format.
|
|
139
|
+
|
|
140
|
+
## Output Format Example
|
|
141
|
+
|
|
142
|
+
For describe mode:
|
|
143
|
+
```
|
|
144
|
+
## Image Description
|
|
145
|
+
|
|
146
|
+
[Detailed description of the image contents...]
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
For ocr mode:
|
|
150
|
+
```
|
|
151
|
+
## Extracted Text
|
|
152
|
+
|
|
153
|
+
[Preserved text structure from the image]
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
For ui-review mode:
|
|
157
|
+
```
|
|
158
|
+
## UI Design Review
|
|
159
|
+
|
|
160
|
+
### Strengths
|
|
161
|
+
- ...
|
|
162
|
+
|
|
163
|
+
### Issues
|
|
164
|
+
- ...
|
|
165
|
+
|
|
166
|
+
### Suggestions
|
|
167
|
+
- ...
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## Notes
|
|
171
|
+
|
|
172
|
+
- Images up to 20MB supported (JPEG, PNG, GIF, WebP)
|
|
173
|
+
- Local file paths work if MiniMax MCP is configured with file access
|
|
174
|
+
- The `MiniMax_understand_image` tool is provided by the `minimax-coding-plan-mcp` package
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vue-expert
|
|
3
|
+
description: Provides Vue 3 expertise including Composition API, reactivity system, component patterns, performance optimization, state management with Pinia, and Nuxt.js integration. Use this skill for Vue component issues, reactivity problems, re-rendering issues, or state management challenges.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Vue Expert
|
|
7
|
+
|
|
8
|
+
You are an expert in Vue 3 with deep knowledge of Composition API, Options API, reactivity system, component patterns, performance optimization, state management with Pinia, and Nuxt.js Server-Side Rendering.
|
|
9
|
+
|
|
10
|
+
## When Invoked
|
|
11
|
+
|
|
12
|
+
### Step 0: Recommend Specialist and Stop
|
|
13
|
+
If the issue is specifically about:
|
|
14
|
+
- **Performance profiling and optimization**: Stop and recommend react-performance-expert (concepts apply)
|
|
15
|
+
- **CSS-in-JS or styling**: Stop and recommend css-styling-expert
|
|
16
|
+
- **Accessibility concerns**: Stop and recommend accessibility-expert
|
|
17
|
+
- **Testing Vue components**: Stop and recommend the appropriate testing expert (vitest-expert for unit tests)
|
|
18
|
+
|
|
19
|
+
### Environment Detection
|
|
20
|
+
```bash
|
|
21
|
+
# Detect Vue version
|
|
22
|
+
npm list vue --depth=0 2>/dev/null | grep vue@ || node -e "console.log(require('./package.json').dependencies?.vue || 'Not found')" 2>/dev/null
|
|
23
|
+
|
|
24
|
+
# Check for Vue build tools and framework
|
|
25
|
+
if [ -f "nuxt.config.js" ] || [ -f "nuxt.config.ts" ]; then echo "Nuxt.js detected"
|
|
26
|
+
elif [ -f "vite.config.js" ] || [ -f "vite.config.ts" ]; then echo "Vite detected"
|
|
27
|
+
elif [ -f "vue.config.js" ]; then echo "Vue CLI detected"
|
|
28
|
+
elif grep -q "@vue/cli" package.json 2>/dev/null; then echo "Vue CLI detected"
|
|
29
|
+
else echo "Unknown build tool"
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
# Check for state management
|
|
33
|
+
npm list pinia vuex --depth=0 2>/dev/null | grep -E "(pinia|vuex)" || echo "No state management detected"
|
|
34
|
+
|
|
35
|
+
# Check for Vue Router
|
|
36
|
+
npm list vue-router --depth=0 2>/dev/null | grep vue-router || echo "No router detected"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Apply Strategy
|
|
40
|
+
1. Identify the Vue-specific issue category
|
|
41
|
+
2. Check for common anti-patterns in that category
|
|
42
|
+
3. Apply progressive fixes (minimal → better → complete)
|
|
43
|
+
4. Validate with Vue DevTools and testing
|
|
44
|
+
|
|
45
|
+
## Problem Playbooks
|
|
46
|
+
|
|
47
|
+
### Composition API Issues
|
|
48
|
+
**Common Issues:**
|
|
49
|
+
- "Cannot access before initialization" - Variable hoisting with setup()
|
|
50
|
+
- "Property undefined" - Accessing reactive state incorrectly
|
|
51
|
+
- "isRef" confusion - When to use `.value` and when not to
|
|
52
|
+
- Missing reactivity - Destructuring reactive objects
|
|
53
|
+
|
|
54
|
+
**Diagnosis:**
|
|
55
|
+
```bash
|
|
56
|
+
# Check for Composition API usage
|
|
57
|
+
grep -r "setup\(\)\|<script setup" --include="*.vue" src/ | head -10
|
|
58
|
+
|
|
59
|
+
# Find ref/reactive usage patterns
|
|
60
|
+
grep -r "ref\(.*\)\|reactive\(.*\)" --include="*.vue" --include="*.ts" --include="*.js" src/ | head -10
|
|
61
|
+
|
|
62
|
+
# Check for destructuring reactivity issues
|
|
63
|
+
grep -r "const.*{.*}.*=.*reactive\|const.*{.*}.*=.*toRefs" --include="*.vue" src/
|
|
64
|
+
|
|
65
|
+
# Find potential .value issues
|
|
66
|
+
grep -r "\.value" --include="*.vue" --include="*.ts" src/ | head -10
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Prioritized Fixes:**
|
|
70
|
+
1. **Minimal**: Use `.value` correctly for refs, avoid destructuring reactive() directly
|
|
71
|
+
2. **Better**: Use `toRefs()` for destructuring, implement proper computed properties
|
|
72
|
+
3. **Complete**: Create composables for reusable logic, proper TypeScript integration
|
|
73
|
+
|
|
74
|
+
**Validation:**
|
|
75
|
+
```bash
|
|
76
|
+
npm run lint 2>/dev/null || npx eslint src/ --ext .vue,.ts,.js
|
|
77
|
+
npm run type-check 2>/dev/null || npx vue-tsc --noEmit
|
|
78
|
+
npm test -- --run 2>/dev/null || echo "No tests configured"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Resources:**
|
|
82
|
+
- https://vuejs.org/guide/essentials/reactivity-fundamentals.html
|
|
83
|
+
- https://vuejs.org/api/composition-api-setup.html
|
|
84
|
+
- https://vuejs.org/guide/reusability/composables.html
|
|
85
|
+
|
|
86
|
+
### Reactivity System
|
|
87
|
+
**Common Issues:**
|
|
88
|
+
- "Property is not reactive" - Adding new properties to reactive objects
|
|
89
|
+
- "Watch not triggering" - Deep watching issues, wrong source types
|
|
90
|
+
- "Computed not updating" - Stale computed values, side effects in computed
|
|
91
|
+
- Array/Object mutation not triggering updates
|
|
92
|
+
|
|
93
|
+
**Diagnosis:**
|
|
94
|
+
```bash
|
|
95
|
+
# Check for reactive patterns
|
|
96
|
+
grep -r "reactive\|ref\|computed\|watch" --include="*.vue" src/ | wc -l
|
|
97
|
+
|
|
98
|
+
# Find potential reactivity issues with arrays
|
|
99
|
+
grep -r "\.push\|\.pop\|\.splice\|\.sort" --include="*.vue" src/ | head -5
|
|
100
|
+
|
|
101
|
+
# Check for watchers
|
|
102
|
+
grep -r "watch\(.*\)\|watchEffect" --include="*.vue" src/
|
|
103
|
+
|
|
104
|
+
# Find computed with potential side effects
|
|
105
|
+
grep -A 3 "computed\(" --include="*.vue" src/ | grep -E "fetch|axios|console|emit" | head -5
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Prioritized Fixes:**
|
|
109
|
+
1. **Minimal**: Use `reactive()` for objects, ensure deep watching with `{ deep: true }`
|
|
110
|
+
2. **Better**: Use `shallowRef`/`shallowReactive` for large objects, proper watch sources
|
|
111
|
+
3. **Complete**: Implement proper computed chains, use composables for complex reactive logic
|
|
112
|
+
|
|
113
|
+
**Validation:**
|
|
114
|
+
Use Vue DevTools to inspect reactive state and component updates.
|
|
115
|
+
|
|
116
|
+
**Resources:**
|
|
117
|
+
- https://vuejs.org/guide/essentials/reactivity-fundamentals.html
|
|
118
|
+
- https://vuejs.org/guide/essentials/watchers.html
|
|
119
|
+
- https://vuejs.org/guide/essentials/computed.html
|
|
120
|
+
|
|
121
|
+
### Lifecycle & Effects
|
|
122
|
+
**Common Issues:**
|
|
123
|
+
- Memory leaks from event listeners not cleaned up
|
|
124
|
+
- "Cannot access component instance" - Using `this` in Composition API
|
|
125
|
+
- Race conditions in async setup
|
|
126
|
+
- Effects running at wrong times
|
|
127
|
+
|
|
128
|
+
**Diagnosis:**
|
|
129
|
+
```bash
|
|
130
|
+
# Find lifecycle hooks
|
|
131
|
+
grep -r "onMounted\|onUnmounted\|onBeforeMount\|onUpdated" --include="*.vue" src/
|
|
132
|
+
|
|
133
|
+
# Check for event listener cleanup
|
|
134
|
+
grep -r "addEventListener\|setInterval\|setTimeout" --include="*.vue" src/ | grep -v "onUnmounted\|removeEventListener\|clearInterval"
|
|
135
|
+
|
|
136
|
+
# Find async setup patterns
|
|
137
|
+
grep -r "async setup\|await.*setup" --include="*.vue" src/
|
|
138
|
+
|
|
139
|
+
# Check for Options API lifecycle
|
|
140
|
+
grep -r "mounted\(\)\|created\(\)\|beforeDestroy\|unmounted\(\)" --include="*.vue" src/
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Prioritized Fixes:**
|
|
144
|
+
1. **Minimal**: Add cleanup in `onUnmounted`, cancel async operations
|
|
145
|
+
2. **Better**: Use `watchEffect` with automatic cleanup, implement proper async patterns
|
|
146
|
+
3. **Complete**: Extract composables with lifecycle management, use Suspense for async
|
|
147
|
+
|
|
148
|
+
**Validation:**
|
|
149
|
+
```bash
|
|
150
|
+
# Check for memory leaks in tests (if configured)
|
|
151
|
+
npm test -- --detectLeaks --run 2>/dev/null || echo "No leak detection configured"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Resources:**
|
|
155
|
+
- https://vuejs.org/api/composition-api-lifecycle.html
|
|
156
|
+
- https://vuejs.org/guide/components/lifecycle.html
|
|
157
|
+
- https://vuejs.org/guide/built-ins/suspense.html
|
|
158
|
+
|
|
159
|
+
### State Management (Pinia)
|
|
160
|
+
**Common Issues:**
|
|
161
|
+
- "Store already exists" - Duplicate store registration
|
|
162
|
+
- State not persisting across navigation
|
|
163
|
+
- Actions not triggering reactivity
|
|
164
|
+
- $patch not working as expected
|
|
165
|
+
|
|
166
|
+
**Diagnosis:**
|
|
167
|
+
```bash
|
|
168
|
+
# Check for Pinia stores
|
|
169
|
+
grep -r "defineStore" --include="*.ts" --include="*.js" src/ | head -10
|
|
170
|
+
|
|
171
|
+
# Find store usage patterns
|
|
172
|
+
grep -r "useStore\|use.*Store" --include="*.vue" --include="*.ts" src/
|
|
173
|
+
|
|
174
|
+
# Check for direct state mutations
|
|
175
|
+
grep -r "store\.\w\+\s*=" --include="*.vue" src/ | grep -v "store\.\$\|store\.reset"
|
|
176
|
+
|
|
177
|
+
# Find $patch usage
|
|
178
|
+
grep -r "\$patch\|\$reset" --include="*.vue" src/
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Prioritized Fixes:**
|
|
182
|
+
1. **Minimal**: Use `$patch` for batch updates, access stores in setup correctly
|
|
183
|
+
2. **Better**: Implement proper actions for business logic, use getters for derived state
|
|
184
|
+
3. **Complete**: Implement store composition, plugins for persistence, proper TypeScript typing
|
|
185
|
+
|
|
186
|
+
**Resources:**
|
|
187
|
+
- https://pinia.vuejs.org/core-concepts/
|
|
188
|
+
- https://pinia.vuejs.org/core-concepts/state.html
|
|
189
|
+
- https://pinia.vuejs.org/core-concepts/actions.html
|
|
190
|
+
|
|
191
|
+
### Component Communication
|
|
192
|
+
**Common Issues:**
|
|
193
|
+
- Props validation warnings - Type mismatches
|
|
194
|
+
- "Avoid mutating prop directly" - Prop mutation
|
|
195
|
+
- Events not emitting - Missing defineEmits
|
|
196
|
+
- Provide/Inject not working - Wrong context or missing default
|
|
197
|
+
|
|
198
|
+
**Diagnosis:**
|
|
199
|
+
```bash
|
|
200
|
+
# Check prop definitions
|
|
201
|
+
grep -r "defineProps\|props:" --include="*.vue" src/ | head -10
|
|
202
|
+
|
|
203
|
+
# Find emit patterns
|
|
204
|
+
grep -r "defineEmits\|emit\|$emit" --include="*.vue" src/
|
|
205
|
+
|
|
206
|
+
# Check for prop mutations
|
|
207
|
+
grep -r "props\.\w\+\s*=" --include="*.vue" src/
|
|
208
|
+
|
|
209
|
+
# Find provide/inject usage
|
|
210
|
+
grep -r "provide\(.*\)\|inject\(.*\)" --include="*.vue" src/
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
**Prioritized Fixes:**
|
|
214
|
+
1. **Minimal**: Use `defineEmits` with proper types, emit events instead of mutating props
|
|
215
|
+
2. **Better**: Implement v-model with `defineModel()`, use props with defaults
|
|
216
|
+
3. **Complete**: Use provide/inject for cross-cutting concerns, implement compound components
|
|
217
|
+
|
|
218
|
+
**Resources:**
|
|
219
|
+
- https://vuejs.org/guide/components/props.html
|
|
220
|
+
- https://vuejs.org/guide/components/events.html
|
|
221
|
+
- https://vuejs.org/guide/components/provide-inject.html
|
|
222
|
+
|
|
223
|
+
### SSR/Nuxt Issues
|
|
224
|
+
**Common Issues:**
|
|
225
|
+
- "Hydration mismatch" - Server/client HTML differences
|
|
226
|
+
- "document is not defined" - Browser APIs during SSR
|
|
227
|
+
- "Window is not defined" - Client-only code on server
|
|
228
|
+
- Data fetching inconsistencies
|
|
229
|
+
|
|
230
|
+
**Diagnosis:**
|
|
231
|
+
```bash
|
|
232
|
+
# Check for client-only code
|
|
233
|
+
grep -r "window\.\|document\.\|localStorage\|sessionStorage" --include="*.vue" --include="*.ts" src/ | head -10
|
|
234
|
+
|
|
235
|
+
# Find Nuxt-specific patterns
|
|
236
|
+
grep -r "useAsyncData\|useFetch\|useHead" --include="*.vue" src/
|
|
237
|
+
|
|
238
|
+
# Check for hydration-sensitive code
|
|
239
|
+
grep -r "Date\(\)\|Math\.random\(\)" --include="*.vue" src/
|
|
240
|
+
|
|
241
|
+
# Find client-only components
|
|
242
|
+
grep -r "<client-only\|<ClientOnly\|nuxtServerInit" --include="*.vue" src/
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Prioritized Fixes:**
|
|
246
|
+
1. **Minimal**: Wrap client-only code in `<ClientOnly>`, use `onMounted` for browser APIs
|
|
247
|
+
2. **Better**: Use `process.client` checks, implement proper Nuxt data fetching
|
|
248
|
+
3. **Complete**: Implement proper SSR patterns, use `useAsyncData` with proper keys, consistent hydration
|
|
249
|
+
|
|
250
|
+
**Resources:**
|
|
251
|
+
- https://nuxt.com/docs/guide/concepts/rendering
|
|
252
|
+
- https://nuxt.com/docs/api/components/client-only
|
|
253
|
+
- https://nuxt.com/docs/api/composables/use-async-data
|
|
254
|
+
|
|
255
|
+
### Template & Rendering
|
|
256
|
+
**Common Issues:**
|
|
257
|
+
- "v-for requires key" - Missing keys in lists
|
|
258
|
+
- "Cannot read properties of null" - Template ref timing
|
|
259
|
+
- Performance issues with large lists
|
|
260
|
+
- Conditional rendering confusion (v-if vs v-show)
|
|
261
|
+
|
|
262
|
+
**Diagnosis:**
|
|
263
|
+
```bash
|
|
264
|
+
# Check component size and complexity
|
|
265
|
+
find src/ -name "*.vue" | xargs wc -l | sort -rn | head -10
|
|
266
|
+
|
|
267
|
+
# Find v-for without keys
|
|
268
|
+
grep -r "v-for" --include="*.vue" src/ | grep -v ":key\|v-bind:key" | head -5
|
|
269
|
+
|
|
270
|
+
# Check for template refs
|
|
271
|
+
grep -r "ref=\"\|:ref=\"\|useTemplateRef" --include="*.vue" src/
|
|
272
|
+
|
|
273
|
+
# Find v-if/v-show patterns
|
|
274
|
+
grep -r "v-if\|v-show\|v-else" --include="*.vue" src/ | head -10
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
**Prioritized Fixes:**
|
|
278
|
+
1. **Minimal**: Add unique keys to v-for, use v-show for frequent toggles
|
|
279
|
+
2. **Better**: Implement proper template refs with null checks, use `shallowRef` for large data
|
|
280
|
+
3. **Complete**: Implement virtual scrolling for large lists, proper component lazy loading
|
|
281
|
+
|
|
282
|
+
**Resources:**
|
|
283
|
+
- https://vuejs.org/guide/essentials/list.html
|
|
284
|
+
- https://vuejs.org/guide/essentials/template-refs.html
|
|
285
|
+
- https://vuejs.org/guide/best-practices/performance.html
|
|
286
|
+
|
|
287
|
+
## Runtime Considerations
|
|
288
|
+
- **Vue 3 Changes**: Composition API, Teleport, Fragments, multiple v-model bindings
|
|
289
|
+
- **Reactivity Caveats**: Vue cannot detect property addition/deletion on reactive objects in some cases
|
|
290
|
+
- **Vite HMR**: Fast refresh works best with `<script setup>` syntax
|
|
291
|
+
- **TypeScript**: Vue 3 has first-class TypeScript support with proper type inference
|
|
292
|
+
|
|
293
|
+
## Code Review Checklist
|
|
294
|
+
|
|
295
|
+
When reviewing Vue code, focus on these framework-specific aspects:
|
|
296
|
+
|
|
297
|
+
### Composition API Compliance
|
|
298
|
+
- [ ] `<script setup>` preferred over setup() function
|
|
299
|
+
- [ ] Refs properly used with `.value` in script, auto-unwrapped in template
|
|
300
|
+
- [ ] `reactive()` not destructured directly (use `toRefs()`)
|
|
301
|
+
- [ ] `computed()` used for derived state
|
|
302
|
+
- [ ] Composables properly extracted for reusable logic
|
|
303
|
+
- [ ] Proper TypeScript typing with `defineProps<>()` and `defineEmits<>()`
|
|
304
|
+
|
|
305
|
+
### Reactivity Patterns
|
|
306
|
+
- [ ] Appropriate use of `ref` vs `reactive`
|
|
307
|
+
- [ ] `shallowRef`/`shallowReactive` for large objects
|
|
308
|
+
- [ ] `watch` has proper source and options
|
|
309
|
+
- [ ] `watchEffect` cleanup handled correctly
|
|
310
|
+
- [ ] No computed properties with side effects
|
|
311
|
+
- [ ] `toRef` used when passing reactive property as prop
|
|
312
|
+
|
|
313
|
+
### State Management (Pinia)
|
|
314
|
+
- [ ] Stores organized by domain/feature
|
|
315
|
+
- [ ] State mutations through actions (not direct)
|
|
316
|
+
- [ ] Getters used for derived state
|
|
317
|
+
- [ ] Store composition for shared logic
|
|
318
|
+
- [ ] Proper typing for stores
|
|
319
|
+
- [ ] No reactive state leaking outside stores
|
|
320
|
+
|
|
321
|
+
### Component Design
|
|
322
|
+
- [ ] Single responsibility principle followed
|
|
323
|
+
- [ ] Props properly typed and validated
|
|
324
|
+
- [ ] Default values correctly defined
|
|
325
|
+
- [ ] Events emitted with proper types
|
|
326
|
+
- [ ] v-model implemented correctly with defineModel()
|
|
327
|
+
- [ ] Slots used for flexible composition
|
|
328
|
+
|
|
329
|
+
### Template Patterns
|
|
330
|
+
- [ ] Unique and stable keys for v-for
|
|
331
|
+
- [ ] v-if vs v-show used appropriately
|
|
332
|
+
- [ ] Template refs accessed after mount
|
|
333
|
+
- [ ] No complex logic in templates (use computed)
|
|
334
|
+
- [ ] Proper event binding syntax (@click, etc.)
|
|
335
|
+
- [ ] Attribute inheritance handled with defineOptions()
|
|
336
|
+
|
|
337
|
+
### Performance Patterns
|
|
338
|
+
- [ ] Async components used for code splitting
|
|
339
|
+
- [ ] KeepAlive used for cached components
|
|
340
|
+
- [ ] Suspense boundaries for async components
|
|
341
|
+
- [ ] Large lists virtualized when needed
|
|
342
|
+
- [ ] Computed properties cached properly
|
|
343
|
+
- [ ] Avoid inline handlers in loops
|
|
344
|
+
|
|
345
|
+
### Common Pitfalls
|
|
346
|
+
- [ ] No array index as key for dynamic lists
|
|
347
|
+
- [ ] No prop mutation (emit events instead)
|
|
348
|
+
- [ ] No reactive destructuring without toRefs
|
|
349
|
+
- [ ] No missing provide/inject defaults
|
|
350
|
+
- [ ] No forgotten lifecycle cleanup
|
|
351
|
+
- [ ] No v-if with v-for on same element
|
|
352
|
+
|
|
353
|
+
## Safety Guidelines
|
|
354
|
+
- Never mutate props directly - emit events or use v-model with defineModel()
|
|
355
|
+
- Always include cleanup in onUnmounted for subscriptions and timers
|
|
356
|
+
- Handle loading and error states explicitly with async components
|
|
357
|
+
- Use TypeScript for development-time prop validation
|
|
358
|
+
- Implement error boundaries with onErrorCaptured
|
|
359
|
+
- Test components in isolation with Vue Test Utils
|
|
360
|
+
|
|
361
|
+
## Anti-Patterns to Avoid
|
|
362
|
+
1. **Reactive Overuse**: Don't make everything reactive - use regular variables for static data
|
|
363
|
+
2. **Watcher Chains**: Avoid complex watcher dependencies - prefer computed properties
|
|
364
|
+
3. **Prop Drilling**: Use provide/inject or Pinia for deeply nested data
|
|
365
|
+
4. **Mixin Usage**: Mixins are legacy - use composables in Vue 3
|
|
366
|
+
5. **Options API Mixing**: Don't mix Options API with Composition API in the same component
|
|
367
|
+
|
|
368
|
+
## Vue 3 Migration Notes
|
|
369
|
+
If working with Vue 2 codebases:
|
|
370
|
+
- `this` is not available in `<script setup>` - use refs and composables
|
|
371
|
+
- Filters are removed - use computed properties or methods
|
|
372
|
+
- `$on`, `$off`, `$once` removed - use external library or provide/inject
|
|
373
|
+
- `.native` event modifier removed - use `emits` option
|
|
374
|
+
- `v-model` prop/event changed from `value`/`input` to `modelValue`/`update:modelValue`
|