moai-adk 0.34.0__py3-none-any.whl → 1.1.0__py3-none-any.whl
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.
- moai_adk/__main__.py +136 -5
- moai_adk/astgrep/__init__.py +37 -0
- moai_adk/astgrep/analyzer.py +522 -0
- moai_adk/astgrep/models.py +124 -0
- moai_adk/astgrep/rules.py +179 -0
- moai_adk/cli/commands/analyze.py +11 -2
- moai_adk/cli/commands/doctor.py +7 -1
- moai_adk/cli/commands/init.py +321 -11
- moai_adk/cli/commands/language.py +7 -1
- moai_adk/cli/commands/rank.py +449 -0
- moai_adk/cli/commands/status.py +7 -1
- moai_adk/cli/commands/switch.py +325 -0
- moai_adk/cli/commands/update.py +296 -23
- moai_adk/cli/prompts/init_prompts.py +362 -66
- moai_adk/cli/prompts/translations/__init__.py +573 -0
- moai_adk/cli/ui/prompts.py +61 -2
- moai_adk/cli/worktree/cli.py +106 -1
- moai_adk/cli/worktree/manager.py +155 -0
- moai_adk/core/config/unified.py +244 -63
- moai_adk/core/credentials.py +264 -0
- moai_adk/core/error_recovery_system.py +22 -4
- moai_adk/core/git/conflict_detector.py +10 -1
- moai_adk/core/git/event_detector.py +16 -5
- moai_adk/core/integration/engine.py +2 -2
- moai_adk/core/integration/integration_tester.py +5 -5
- moai_adk/core/language_config_resolver.py +9 -3
- moai_adk/core/merge/analyzer.py +509 -324
- moai_adk/core/migration/alfred_to_moai_migrator.py +7 -1
- moai_adk/core/migration/backup_manager.py +54 -4
- moai_adk/core/migration/file_migrator.py +174 -2
- moai_adk/core/migration/interactive_checkbox_ui.py +42 -31
- moai_adk/core/migration/version_detector.py +123 -19
- moai_adk/core/migration/version_migrator.py +44 -9
- moai_adk/core/model_allocator.py +241 -0
- moai_adk/core/project/backup_utils.py +12 -2
- moai_adk/core/project/initializer.py +44 -87
- moai_adk/core/project/phase_executor.py +95 -33
- moai_adk/core/project/validator.py +16 -1
- moai_adk/core/quality/trust_checker.py +30 -10
- moai_adk/core/rollback_manager.py +60 -25
- moai_adk/core/template/backup.py +88 -6
- moai_adk/core/template/config.py +33 -9
- moai_adk/core/template/merger.py +34 -8
- moai_adk/core/template/processor.py +334 -11
- moai_adk/core/template_engine.py +10 -1
- moai_adk/core/template_variable_synchronizer.py +16 -2
- moai_adk/core/version_sync.py +54 -6
- moai_adk/foundation/__init__.py +1 -20
- moai_adk/foundation/testing.py +1 -1
- moai_adk/loop/__init__.py +54 -0
- moai_adk/loop/controller.py +305 -0
- moai_adk/loop/feedback.py +230 -0
- moai_adk/loop/state.py +209 -0
- moai_adk/loop/storage.py +220 -0
- moai_adk/lsp/__init__.py +70 -0
- moai_adk/lsp/client.py +320 -0
- moai_adk/lsp/models.py +261 -0
- moai_adk/lsp/protocol.py +404 -0
- moai_adk/lsp/server_manager.py +248 -0
- moai_adk/project/configuration.py +8 -1
- moai_adk/py.typed +0 -0
- moai_adk/ralph/__init__.py +37 -0
- moai_adk/ralph/engine.py +307 -0
- moai_adk/rank/__init__.py +21 -0
- moai_adk/rank/auth.py +425 -0
- moai_adk/rank/client.py +557 -0
- moai_adk/rank/config.py +147 -0
- moai_adk/rank/hook.py +1503 -0
- moai_adk/rank/py.typed +0 -0
- moai_adk/statusline/__init__.py +3 -0
- moai_adk/statusline/enhanced_output_style_detector.py +5 -5
- moai_adk/statusline/main.py +20 -1
- moai_adk/statusline/memory_collector.py +268 -0
- moai_adk/statusline/renderer.py +54 -38
- moai_adk/tag_system/__init__.py +48 -0
- moai_adk/tag_system/atomic_ops.py +117 -0
- moai_adk/tag_system/linkage.py +335 -0
- moai_adk/tag_system/parser.py +176 -0
- moai_adk/tag_system/validator.py +200 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +19 -3
- moai_adk/templates/.claude/agents/moai/builder-command.md +62 -16
- moai_adk/templates/.claude/agents/moai/builder-plugin.md +763 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +21 -5
- moai_adk/templates/.claude/agents/moai/expert-backend.md +103 -39
- moai_adk/templates/.claude/agents/moai/expert-debug.md +9 -3
- moai_adk/templates/.claude/agents/moai/expert-devops.md +16 -14
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +45 -31
- moai_adk/templates/.claude/agents/moai/expert-performance.md +13 -9
- moai_adk/templates/.claude/agents/moai/expert-refactoring.md +228 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +19 -3
- moai_adk/templates/.claude/agents/moai/expert-testing.md +13 -9
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +8 -2
- moai_adk/templates/.claude/agents/moai/manager-docs.md +10 -5
- moai_adk/templates/.claude/agents/moai/manager-git.md +99 -27
- moai_adk/templates/.claude/agents/moai/manager-project.md +87 -7
- moai_adk/templates/.claude/agents/moai/manager-quality.md +22 -5
- moai_adk/templates/.claude/agents/moai/manager-spec.md +8 -2
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +45 -14
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +16 -3
- moai_adk/templates/.claude/commands/moai/0-project.md +239 -1185
- moai_adk/templates/.claude/commands/moai/1-plan.md +383 -363
- moai_adk/templates/.claude/commands/moai/2-run.md +254 -347
- moai_adk/templates/.claude/commands/moai/3-sync.md +174 -100
- moai_adk/templates/.claude/commands/moai/9-feedback.md +49 -33
- moai_adk/templates/.claude/commands/moai/alfred.md +339 -0
- moai_adk/templates/.claude/commands/moai/cancel-loop.md +163 -0
- moai_adk/templates/.claude/commands/moai/fix.md +264 -0
- moai_adk/templates/.claude/commands/moai/loop.md +363 -0
- moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +37 -81
- moai_adk/templates/.claude/hooks/moai/lib/alfred_detector.py +105 -0
- moai_adk/templates/.claude/hooks/moai/lib/atomic_write.py +122 -0
- moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +4 -1
- moai_adk/templates/.claude/hooks/moai/lib/common.py +35 -5
- moai_adk/templates/.claude/hooks/moai/lib/config.py +376 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +24 -28
- moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +14 -14
- moai_adk/templates/.claude/hooks/moai/lib/enhanced_output_style_detector.py +372 -0
- moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
- moai_adk/templates/.claude/hooks/moai/lib/file_utils.py +95 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_collector.py +190 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +15 -13
- moai_adk/templates/.claude/hooks/moai/lib/language_detector.py +298 -0
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +125 -25
- moai_adk/templates/.claude/hooks/moai/lib/main.py +341 -0
- moai_adk/templates/.claude/hooks/moai/lib/memory_collector.py +268 -0
- moai_adk/templates/.claude/hooks/moai/lib/metrics_tracker.py +78 -0
- moai_adk/templates/.claude/hooks/moai/lib/models.py +9 -7
- moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +204 -13
- moai_adk/templates/.claude/hooks/moai/lib/project.py +23 -14
- moai_adk/templates/.claude/hooks/moai/lib/renderer.py +359 -0
- moai_adk/templates/.claude/hooks/moai/lib/tag_linkage.py +333 -0
- moai_adk/templates/.claude/hooks/moai/lib/tag_parser.py +176 -0
- moai_adk/templates/.claude/hooks/moai/lib/tag_validator.py +200 -0
- moai_adk/templates/.claude/hooks/moai/lib/timeout.py +5 -5
- moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +896 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +30 -18
- moai_adk/templates/.claude/hooks/moai/lib/update_checker.py +129 -0
- moai_adk/templates/.claude/hooks/moai/lib/version_reader.py +741 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +276 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +255 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__coverage_guard.py +325 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +315 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__lsp_diagnostic.py +508 -0
- moai_adk/templates/.claude/hooks/moai/pre_commit__tag_validator.py +287 -0
- moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +268 -0
- moai_adk/templates/.claude/hooks/moai/pre_tool__tdd_enforcer.py +208 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +93 -61
- moai_adk/templates/.claude/hooks/moai/session_end__rank_submit.py +69 -0
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +165 -70
- moai_adk/templates/.claude/hooks/moai/shared/utils/announcement_translator.py +206 -0
- moai_adk/templates/.claude/hooks/moai/stop__loop_controller.py +621 -0
- moai_adk/templates/.claude/output-styles/moai/alfred.md +758 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +86 -3
- moai_adk/templates/.claude/output-styles/moai/yoda.md +2 -2
- moai_adk/templates/.claude/settings.json +154 -77
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +252 -198
- moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +169 -323
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +39 -27
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +115 -125
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +150 -150
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +182 -175
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +198 -138
- moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +226 -320
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +43 -222
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +75 -219
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +103 -463
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/component-architecture.md +723 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/nextjs16-patterns.md +713 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/performance-optimization.md +694 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/react19-patterns.md +591 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/state-management.md +680 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/vue35-patterns.md +802 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +118 -339
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +74 -377
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +299 -70
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +205 -182
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/advanced-agent-patterns.md +370 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-cli-reference-official.md +420 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +32 -22
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-devcontainers-official.md +381 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-discover-plugins-official.md +379 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-headless-official.md +378 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +110 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugin-marketplaces-official.md +308 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugins-official.md +640 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sandboxing-official.md +282 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +425 -71
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-statusline-official.md +293 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +325 -143
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +96 -316
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +116 -294
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-advanced.md +279 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-implementation.md +267 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +121 -650
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/patterns.md +22 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-ears-format.md +200 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +37 -730
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-tdd-implementation.md +275 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +77 -819
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-implementation.md +244 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-validation.md +219 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +14 -18
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +86 -270
- moai_adk/templates/.claude/skills/moai-framework-electron/SKILL.md +288 -0
- moai_adk/templates/.claude/skills/moai-framework-electron/examples.md +2082 -0
- moai_adk/templates/.claude/skills/moai-framework-electron/reference.md +1649 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +76 -582
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +1239 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/modules/advanced-patterns.md +401 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +1136 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +82 -436
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +585 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/aspnet-core.md +627 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/blazor-components.md +767 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/cqrs-validation.md +626 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/csharp12-features.md +580 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/efcore-patterns.md +622 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +403 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +65 -542
- moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +1171 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/modules/advanced-patterns.md +531 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/reference.md +889 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +32 -405
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +114 -293
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +83 -307
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +179 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +973 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +1543 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +42 -279
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +94 -556
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +1608 -0
- moai_adk/templates/.claude/skills/moai-lang-php/modules/advanced-patterns.md +538 -0
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +1323 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +108 -358
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +84 -482
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +1154 -0
- moai_adk/templates/.claude/skills/moai-lang-r/modules/advanced-patterns.md +489 -0
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +1087 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +106 -610
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +1106 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/modules/advanced-patterns.md +309 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/modules/testing-patterns.md +306 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +1024 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +51 -265
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +106 -442
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/akka-actors.md +479 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/cats-effect.md +489 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/functional-programming.md +460 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/spark-data.md +498 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/zio-patterns.md +541 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +88 -457
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/combine-reactive.md +256 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/concurrency.md +270 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/swift6-features.md +265 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/swiftui-patterns.md +314 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +75 -283
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +97 -252
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +64 -240
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +331 -12
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +330 -37
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +90 -287
- moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +200 -206
- moai_adk/templates/.claude/skills/moai-platform-auth0/examples.md +2446 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/adaptive-mfa.md +233 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/akamai-integration.md +214 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/application-credentials.md +280 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-log-events.md +224 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-overview.md +140 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/bot-detection.md +144 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/breached-password-detection.md +187 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/brute-force-protection.md +189 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/certifications.md +282 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/compliance-overview.md +263 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/continuous-session-protection.md +307 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/customize-mfa.md +177 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/dpop-implementation.md +283 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/fapi-implementation.md +259 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/gdpr-compliance.md +313 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/guardian-configuration.md +269 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/highly-regulated-identity.md +272 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/jwt-fundamentals.md +248 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mdl-verification.md +210 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-api-management.md +278 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-factors.md +226 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-overview.md +174 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mtls-sender-constraining.md +316 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/ropg-flow-mfa.md +216 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-center.md +325 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-guidance.md +277 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/state-parameters.md +177 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/step-up-authentication.md +251 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/suspicious-ip-throttling.md +240 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/tenant-access-control.md +179 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/webauthn-fido.md +235 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/reference.md +224 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +75 -330
- moai_adk/templates/.claude/skills/moai-platform-clerk/examples.md +1426 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/modules/advanced-patterns.md +417 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/reference.md +273 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +100 -340
- moai_adk/templates/.claude/skills/moai-platform-convex/examples.md +506 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/auth-integration.md +421 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/file-storage.md +474 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/reactive-queries.md +302 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/server-functions.md +452 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/reference.md +385 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +113 -326
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/examples.md +514 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/custom-claims.md +374 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/phone-auth.md +372 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/social-auth.md +339 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/reference.md +382 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +71 -302
- moai_adk/templates/.claude/skills/moai-platform-firestore/examples.md +445 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/offline-cache.md +392 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/realtime-listeners.md +441 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/security-rules.md +352 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/transactions.md +452 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/reference.md +322 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +101 -412
- moai_adk/templates/.claude/skills/moai-platform-neon/examples.md +470 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/auto-scaling.md +349 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/branching-workflows.md +354 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/connection-pooling.md +412 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/pitr-backups.md +458 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/reference.md +272 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +96 -327
- moai_adk/templates/.claude/skills/moai-platform-railway/examples.md +539 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/docker-deployment.md +261 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/multi-service.md +291 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/networking-domains.md +338 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/volumes-storage.md +353 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/reference.md +374 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +103 -428
- moai_adk/templates/.claude/skills/moai-platform-supabase/examples.md +502 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/auth-integration.md +384 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/edge-functions.md +371 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/postgresql-pgvector.md +231 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/realtime-presence.md +354 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/row-level-security.md +286 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/storage-cdn.md +319 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/typescript-patterns.md +453 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/reference.md +284 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +96 -446
- moai_adk/templates/.claude/skills/moai-platform-vercel/examples.md +502 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/analytics-speed.md +348 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/deployment-config.md +344 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/edge-functions.md +222 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/isr-caching.md +306 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/kv-storage.md +399 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/reference.md +360 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/SKILL.md +193 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/examples.md +1099 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/language-specific.md +307 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/pattern-syntax.md +237 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/refactoring-patterns.md +260 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/security-rules.md +239 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/reference.md +288 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/go.yml +90 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/python.yml +101 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/typescript.yml +83 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/complexity-check.yml +94 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/deprecated-apis.yml +84 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/secrets-detection.yml +89 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/sql-injection.yml +45 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/xss-prevention.yml +50 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml +54 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +225 -423
- moai_adk/templates/.claude/skills/moai-workflow-loop/SKILL.md +197 -0
- moai_adk/templates/.claude/skills/moai-workflow-loop/examples.md +1063 -0
- moai_adk/templates/.claude/skills/moai-workflow-loop/reference.md +1414 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +211 -314
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +15 -43
- moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +119 -316
- moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +96 -203
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +201 -388
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +52 -3
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +263 -806
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/context7-integration.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/review-workflows.md +500 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/relevance-analysis.md +154 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/safety-analysis.md +148 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/scoring-algorithms.md +196 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/timeliness-analysis.md +168 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/truthfulness-analysis.md +136 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/usability-analysis.md +153 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework.md +257 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +191 -1344
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/analysis-patterns.md +340 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/core-classes.md +299 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/tool-integration.md +380 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/debugging-workflows.md +451 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/error-analysis.md +442 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/optimization-patterns.md +473 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/profiling-techniques.md +481 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/ai-optimization.md +241 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/bottleneck-detection.md +397 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/optimization-plan.md +315 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/profiler-core.md +277 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/real-time-monitoring.md +187 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +287 -1194
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/quality-metrics.md +415 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/ai-workflows.md +620 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/patterns.md +692 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/security-analysis.md +429 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +262 -1192
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/static-analysis.md +438 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd/core-classes.md +397 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/advanced-features.md +494 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/red-green-refactor.md +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-generation.md +471 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-patterns.md +371 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +227 -1222
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/trust5-validation.md +428 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/SKILL.md +228 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/integration-patterns.md +149 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/moai-adk-integration.md +245 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-advanced.md +310 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-development.md +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-workflows.md +302 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/registry-architecture.md +271 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/resource-optimization.md +300 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/tools-integration.md +280 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/troubleshooting.md +397 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-commands.md +296 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-management.md +217 -0
- moai_adk/templates/.git-hooks/pre-push +162 -59
- moai_adk/templates/.github/workflows/ci-universal.yml +934 -133
- moai_adk/templates/.gitignore +65 -107
- moai_adk/templates/.lsp.json +152 -0
- moai_adk/templates/.mcp.json +2 -20
- moai_adk/templates/.moai/announcements/en.json +18 -0
- moai_adk/templates/.moai/announcements/ja.json +18 -0
- moai_adk/templates/.moai/announcements/ko.json +18 -0
- moai_adk/templates/.moai/announcements/zh.json +18 -0
- moai_adk/templates/.moai/config/config.yaml +8 -2
- moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
- moai_adk/templates/.moai/config/sections/language.yaml +2 -2
- moai_adk/templates/.moai/config/sections/llm.yaml +41 -0
- moai_adk/templates/.moai/config/sections/pricing.yaml +30 -0
- moai_adk/templates/.moai/config/sections/project.yaml +2 -2
- moai_adk/templates/.moai/config/sections/quality.yaml +43 -5
- moai_adk/templates/.moai/config/sections/ralph.yaml +55 -0
- moai_adk/templates/.moai/config/sections/system.yaml +46 -1
- moai_adk/templates/.moai/config/sections/user.yaml +1 -1
- moai_adk/templates/.moai/config/statusline-config.yaml +2 -2
- moai_adk/templates/.moai/llm-configs/glm.json +22 -0
- moai_adk/templates/CLAUDE.ja.md +343 -0
- moai_adk/templates/CLAUDE.ko.md +343 -0
- moai_adk/templates/CLAUDE.md +200 -499
- moai_adk/templates/CLAUDE.zh.md +343 -0
- moai_adk/utils/common.py +37 -0
- moai_adk/version.py +1 -1
- moai_adk-1.1.0.dist-info/METADATA +2443 -0
- moai_adk-1.1.0.dist-info/RECORD +701 -0
- {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/entry_points.txt +2 -0
- moai_adk-1.1.0.dist-info/licenses/LICENSE +99 -0
- moai_adk/core/config/auto_spec_config.py +0 -340
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +0 -901
- moai_adk/core/spec/confidence_scoring.py +0 -680
- moai_adk/core/spec/ears_template_engine.py +0 -1247
- moai_adk/core/spec/quality_validator.py +0 -687
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +0 -670
- moai_adk/templates/.claude/agents/moai/expert-database.md +0 -777
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +0 -1041
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +0 -458
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +0 -1607
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +0 -789
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +0 -469
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +0 -1032
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +0 -438
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +0 -431
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +0 -405
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +0 -336
- moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +0 -402
- moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +0 -607
- moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +0 -300
- moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +0 -537
- moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +0 -520
- moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +0 -574
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +0 -317
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +0 -663
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +0 -190
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +0 -175
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +0 -196
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +0 -17
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +0 -158
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +0 -340
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +0 -713
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +0 -538
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +0 -1336
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +0 -730
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +0 -608
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +0 -1005
- moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +0 -436
- moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +0 -411
- moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +0 -982
- moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +0 -778
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +0 -646
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +0 -782
- moai_adk/templates/.moai/config/questions/_schema.yaml +0 -151
- moai_adk/templates/.moai/config/questions/tab0-init.yaml +0 -251
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +0 -108
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +0 -81
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +0 -634
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +0 -170
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +0 -87
- moai_adk/templates/.moai/scripts/setup-glm.py +0 -136
- moai_adk-0.34.0.dist-info/METADATA +0 -2999
- moai_adk-0.34.0.dist-info/RECORD +0 -463
- moai_adk-0.34.0.dist-info/licenses/LICENSE +0 -21
- /moai_adk/foundation/{git.py → git/__init__.py} +0 -0
- /moai_adk/templates/.claude/skills/moai-library-mermaid/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-library-mermaid/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-library-nextra/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-testing/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-testing/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/examples.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/reference.md +0 -0
- {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/WHEEL +0 -0
|
@@ -1,482 +1,132 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: moai-platform-vercel
|
|
3
|
-
description: Vercel edge deployment specialist covering Edge Functions, Next.js optimization, preview deployments, and
|
|
4
|
-
version: 1.0
|
|
5
|
-
category: platform
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
name: "moai-platform-vercel"
|
|
3
|
+
description: "Vercel edge deployment specialist covering Edge Functions, Next.js optimization, preview deployments, ISR, and storage solutions. Use when deploying Next.js applications, implementing edge computing, or configuring Vercel platform features."
|
|
4
|
+
version: 2.1.0
|
|
5
|
+
category: "platform"
|
|
6
|
+
modularized: true
|
|
7
|
+
user-invocable: false
|
|
8
|
+
tags: ['vercel', 'edge', 'nextjs', 'isr', 'preview', 'cdn', 'kv', 'blob', 'postgres']
|
|
9
|
+
context7-libraries: "/vercel/next.js, /vercel/vercel"
|
|
10
|
+
related-skills: "moai-platform-railway, moai-lang-typescript, moai-domain-frontend"
|
|
11
|
+
updated: 2026-01-11
|
|
12
|
+
status: "active"
|
|
13
|
+
allowed-tools:
|
|
14
|
+
- Read
|
|
15
|
+
- Write
|
|
16
|
+
- Bash
|
|
17
|
+
- Grep
|
|
18
|
+
- Glob
|
|
19
|
+
- mcp__context7__resolve-library-id
|
|
20
|
+
- mcp__context7__get-library-docs
|
|
12
21
|
---
|
|
13
22
|
|
|
14
23
|
# moai-platform-vercel: Vercel Edge Deployment Specialist
|
|
15
24
|
|
|
16
|
-
## Quick Reference
|
|
25
|
+
## Quick Reference
|
|
17
26
|
|
|
18
|
-
Vercel Optimization Focus: Edge-first deployment platform with global CDN, Next.js optimized runtime, and developer-centric preview workflows.
|
|
27
|
+
Vercel Optimization Focus: Edge-first deployment platform with global CDN, Next.js optimized runtime, managed storage solutions, and developer-centric preview workflows.
|
|
19
28
|
|
|
20
29
|
### Core Capabilities
|
|
21
30
|
|
|
22
|
-
Edge Functions
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
- Streaming SSR for improved TTFB
|
|
32
|
-
- Built-in image optimization with next/image
|
|
33
|
-
|
|
34
|
-
Preview Deployments:
|
|
35
|
-
- Automatic PR-based preview URLs
|
|
36
|
-
- Branch-specific environment variables
|
|
37
|
-
- Comment integration for PR reviews
|
|
38
|
-
- Instant rollback capabilities
|
|
39
|
-
|
|
40
|
-
ISR (Incremental Static Regeneration):
|
|
41
|
-
- On-demand revalidation for dynamic content
|
|
42
|
-
- Stale-while-revalidate caching strategy
|
|
43
|
-
- Tag-based cache invalidation
|
|
44
|
-
- Background regeneration without user impact
|
|
31
|
+
Edge Functions provide global low-latency compute at 30+ edge locations with sub-50ms cold start for optimal user experience. Features include geo-based routing and personalization, and edge middleware for request/response transformation.
|
|
32
|
+
|
|
33
|
+
Next.js Optimized Runtime provides first-class Next.js support with automatic optimizations. Features include Server Components and App Router integration, streaming SSR for improved TTFB, and built-in image optimization with next/image.
|
|
34
|
+
|
|
35
|
+
Preview Deployments provide automatic PR-based preview URLs with branch-specific environment variables. Features include comment integration for PR reviews and instant rollback capabilities.
|
|
36
|
+
|
|
37
|
+
ISR (Incremental Static Regeneration) enables on-demand revalidation for dynamic content with stale-while-revalidate caching strategy. Features include tag-based cache invalidation and background regeneration without user impact.
|
|
38
|
+
|
|
39
|
+
Managed Storage includes Vercel KV for Redis-compatible key-value store, Vercel Blob for object storage for files, and Vercel Postgres for managed PostgreSQL database.
|
|
45
40
|
|
|
46
41
|
### Quick Decision Guide
|
|
47
42
|
|
|
48
|
-
Choose Vercel
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
43
|
+
Choose Vercel when Next.js is primary framework, edge performance is critical requirement, preview deployments needed for team collaboration, Web Vitals monitoring is priority, or serverless storage solutions needed.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Module Index
|
|
48
|
+
|
|
49
|
+
This skill uses modular documentation for progressive disclosure. Load modules as needed:
|
|
50
|
+
|
|
51
|
+
### Edge Functions and Middleware
|
|
52
|
+
|
|
53
|
+
Module at modules/edge-functions.md covers Edge Runtime configuration, middleware patterns, geo-based content delivery, A/B testing at edge, and authentication at edge. Includes region selection, supported APIs, and cold start optimization.
|
|
54
|
+
|
|
55
|
+
### ISR and Caching Strategies
|
|
56
|
+
|
|
57
|
+
Module at modules/isr-caching.md covers Incremental Static Regeneration patterns, time-based and on-demand revalidation, tag-based cache invalidation, CDN cache headers, streaming with Suspense, and cache debugging techniques.
|
|
58
|
+
|
|
59
|
+
### Deployment Configuration
|
|
60
|
+
|
|
61
|
+
Module at modules/deployment-config.md covers vercel.json configuration, environment variables management, preview and production deployments, function memory and duration settings, cron jobs, monorepo setup, domain configuration, and security headers.
|
|
62
|
+
|
|
63
|
+
### Analytics and Speed Insights
|
|
64
|
+
|
|
65
|
+
Module at modules/analytics-speed.md covers Vercel Analytics integration, Speed Insights for Web Vitals, custom performance monitoring, Core Web Vitals optimization, and third-party analytics integration.
|
|
66
|
+
|
|
67
|
+
### KV, Blob, and Postgres Storage
|
|
68
|
+
|
|
69
|
+
Module at modules/kv-storage.md covers Vercel KV for Redis-compatible storage, Vercel Blob for object storage, Vercel Postgres for managed database, edge-compatible usage patterns, and common storage patterns.
|
|
53
70
|
|
|
54
71
|
---
|
|
55
72
|
|
|
56
73
|
## Implementation Guide
|
|
57
74
|
|
|
58
|
-
###
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
export
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
ip: ip ?? 'Unknown',
|
|
74
|
-
timestamp: new Date().toISOString()
|
|
75
|
-
})
|
|
76
|
-
}
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
Edge Function Patterns:
|
|
80
|
-
|
|
81
|
-
Geo-Based Content Delivery:
|
|
82
|
-
```typescript
|
|
83
|
-
// app/api/localized/route.ts
|
|
84
|
-
export const runtime = 'edge'
|
|
85
|
-
|
|
86
|
-
const CONTENT_BY_REGION: Record<string, { currency: string; locale: string }> = {
|
|
87
|
-
US: { currency: 'USD', locale: 'en-US' },
|
|
88
|
-
DE: { currency: 'EUR', locale: 'de-DE' },
|
|
89
|
-
JP: { currency: 'JPY', locale: 'ja-JP' },
|
|
90
|
-
KR: { currency: 'KRW', locale: 'ko-KR' }
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export async function GET(request: Request) {
|
|
94
|
-
const country = request.geo?.country ?? 'US'
|
|
95
|
-
const config = CONTENT_BY_REGION[country] ?? CONTENT_BY_REGION.US
|
|
96
|
-
|
|
97
|
-
return Response.json(config, {
|
|
98
|
-
headers: {
|
|
99
|
-
'Cache-Control': 'public, s-maxage=3600',
|
|
100
|
-
'CDN-Cache-Control': 'public, max-age=86400'
|
|
101
|
-
}
|
|
102
|
-
})
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
A/B Testing at Edge:
|
|
107
|
-
```typescript
|
|
108
|
-
// middleware.ts
|
|
109
|
-
import { NextResponse } from 'next/server'
|
|
110
|
-
import type { NextRequest } from 'next/server'
|
|
111
|
-
|
|
112
|
-
export function middleware(request: NextRequest) {
|
|
113
|
-
const existingBucket = request.cookies.get('ab-bucket')?.value
|
|
114
|
-
|
|
115
|
-
if (!existingBucket) {
|
|
116
|
-
const bucket = Math.random() < 0.5 ? 'control' : 'variant'
|
|
117
|
-
const response = NextResponse.next()
|
|
118
|
-
response.cookies.set('ab-bucket', bucket, {
|
|
119
|
-
maxAge: 60 * 60 * 24 * 30, // 30 days
|
|
120
|
-
httpOnly: true,
|
|
121
|
-
sameSite: 'lax'
|
|
122
|
-
})
|
|
123
|
-
return response
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return NextResponse.next()
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
export const config = {
|
|
130
|
-
matcher: ['/((?!api|_next/static|_next/image|favicon.ico).*)']
|
|
131
|
-
}
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### Phase 2: Next.js Optimization Patterns
|
|
135
|
-
|
|
136
|
-
ISR Implementation:
|
|
137
|
-
```typescript
|
|
138
|
-
// app/products/[id]/page.tsx
|
|
139
|
-
import { notFound } from 'next/navigation'
|
|
140
|
-
|
|
141
|
-
// Revalidate every 60 seconds
|
|
142
|
-
export const revalidate = 60
|
|
143
|
-
|
|
144
|
-
// Generate static params for top products
|
|
145
|
-
export async function generateStaticParams() {
|
|
146
|
-
const products = await fetch('https://api.example.com/products/top').then(r => r.json())
|
|
147
|
-
return products.map((p: { id: string }) => ({ id: p.id }))
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// Dynamic metadata for SEO
|
|
151
|
-
export async function generateMetadata({ params }: { params: { id: string } }) {
|
|
152
|
-
const product = await fetchProduct(params.id)
|
|
153
|
-
if (!product) return {}
|
|
154
|
-
|
|
155
|
-
return {
|
|
156
|
-
title: product.name,
|
|
157
|
-
description: product.description,
|
|
158
|
-
openGraph: {
|
|
159
|
-
images: [product.imageUrl]
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
export default async function ProductPage({ params }: { params: { id: string } }) {
|
|
165
|
-
const product = await fetchProduct(params.id)
|
|
166
|
-
if (!product) notFound()
|
|
167
|
-
|
|
168
|
-
return <ProductDetail product={product} />
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
async function fetchProduct(id: string) {
|
|
172
|
-
const res = await fetch(`https://api.example.com/products/${id}`, {
|
|
173
|
-
next: { tags: [`product-${id}`] }
|
|
174
|
-
})
|
|
175
|
-
if (!res.ok) return null
|
|
176
|
-
return res.json()
|
|
177
|
-
}
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
On-Demand Revalidation:
|
|
181
|
-
```typescript
|
|
182
|
-
// app/api/revalidate/route.ts
|
|
183
|
-
import { revalidateTag, revalidatePath } from 'next/cache'
|
|
184
|
-
import { NextRequest } from 'next/server'
|
|
185
|
-
|
|
186
|
-
export async function POST(request: NextRequest) {
|
|
187
|
-
const { tag, path, secret } = await request.json()
|
|
188
|
-
|
|
189
|
-
// Validate webhook secret
|
|
190
|
-
if (secret !== process.env.REVALIDATION_SECRET) {
|
|
191
|
-
return Response.json({ error: 'Invalid secret' }, { status: 401 })
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
try {
|
|
195
|
-
if (tag) {
|
|
196
|
-
revalidateTag(tag)
|
|
197
|
-
return Response.json({ revalidated: true, tag })
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
if (path) {
|
|
201
|
-
revalidatePath(path)
|
|
202
|
-
return Response.json({ revalidated: true, path })
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
return Response.json({ error: 'Missing tag or path' }, { status: 400 })
|
|
206
|
-
} catch (error) {
|
|
207
|
-
return Response.json({ error: 'Revalidation failed' }, { status: 500 })
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
Streaming with Suspense:
|
|
213
|
-
```typescript
|
|
214
|
-
// app/dashboard/page.tsx
|
|
215
|
-
import { Suspense } from 'react'
|
|
216
|
-
|
|
217
|
-
export default function DashboardPage() {
|
|
218
|
-
return (
|
|
219
|
-
<div className="dashboard">
|
|
220
|
-
<h1>Dashboard</h1>
|
|
221
|
-
|
|
222
|
-
<Suspense fallback={<MetricsSkeleton />}>
|
|
223
|
-
<Metrics />
|
|
224
|
-
</Suspense>
|
|
225
|
-
|
|
226
|
-
<Suspense fallback={<ChartSkeleton />}>
|
|
227
|
-
<AnalyticsChart />
|
|
228
|
-
</Suspense>
|
|
229
|
-
|
|
230
|
-
<Suspense fallback={<TableSkeleton />}>
|
|
231
|
-
<RecentOrders />
|
|
232
|
-
</Suspense>
|
|
233
|
-
</div>
|
|
234
|
-
)
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
async function Metrics() {
|
|
238
|
-
const data = await fetch('https://api.example.com/metrics', {
|
|
239
|
-
next: { revalidate: 30 }
|
|
240
|
-
}).then(r => r.json())
|
|
241
|
-
|
|
242
|
-
return <MetricsDisplay data={data} />
|
|
243
|
-
}
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
### Phase 3: Vercel Configuration
|
|
247
|
-
|
|
248
|
-
vercel.json Configuration:
|
|
249
|
-
```json
|
|
250
|
-
{
|
|
251
|
-
"$schema": "https://openapi.vercel.sh/vercel.json",
|
|
252
|
-
"framework": "nextjs",
|
|
253
|
-
"buildCommand": "pnpm build",
|
|
254
|
-
"installCommand": "pnpm install",
|
|
255
|
-
"outputDirectory": ".next",
|
|
256
|
-
"regions": ["iad1", "sfo1", "fra1", "hnd1"],
|
|
257
|
-
"functions": {
|
|
258
|
-
"app/api/**/*.ts": {
|
|
259
|
-
"memory": 1024,
|
|
260
|
-
"maxDuration": 30
|
|
261
|
-
},
|
|
262
|
-
"app/api/heavy/**/*.ts": {
|
|
263
|
-
"memory": 3008,
|
|
264
|
-
"maxDuration": 60
|
|
265
|
-
}
|
|
266
|
-
},
|
|
267
|
-
"crons": [
|
|
268
|
-
{
|
|
269
|
-
"path": "/api/cron/cleanup",
|
|
270
|
-
"schedule": "0 0 * * *"
|
|
271
|
-
},
|
|
272
|
-
{
|
|
273
|
-
"path": "/api/cron/sync",
|
|
274
|
-
"schedule": "*/15 * * * *"
|
|
275
|
-
}
|
|
276
|
-
],
|
|
277
|
-
"headers": [
|
|
278
|
-
{
|
|
279
|
-
"source": "/api/(.*)",
|
|
280
|
-
"headers": [
|
|
281
|
-
{ "key": "Access-Control-Allow-Origin", "value": "*" },
|
|
282
|
-
{ "key": "Cache-Control", "value": "s-maxage=60, stale-while-revalidate" }
|
|
283
|
-
]
|
|
284
|
-
},
|
|
285
|
-
{
|
|
286
|
-
"source": "/(.*)",
|
|
287
|
-
"headers": [
|
|
288
|
-
{ "key": "X-Content-Type-Options", "value": "nosniff" },
|
|
289
|
-
{ "key": "X-Frame-Options", "value": "DENY" },
|
|
290
|
-
{ "key": "X-XSS-Protection", "value": "1; mode=block" }
|
|
291
|
-
]
|
|
292
|
-
}
|
|
293
|
-
],
|
|
294
|
-
"rewrites": [
|
|
295
|
-
{ "source": "/blog/:slug", "destination": "/posts/:slug" },
|
|
296
|
-
{ "source": "/api/v1/:path*", "destination": "/api/:path*" }
|
|
297
|
-
],
|
|
298
|
-
"redirects": [
|
|
299
|
-
{ "source": "/old-page", "destination": "/new-page", "permanent": true }
|
|
300
|
-
]
|
|
301
|
-
}
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
Environment Variables Management:
|
|
305
|
-
```bash
|
|
306
|
-
# Production environment
|
|
307
|
-
vercel env add DATABASE_URL production
|
|
308
|
-
vercel env add API_SECRET production
|
|
309
|
-
vercel env add NEXT_PUBLIC_API_URL production
|
|
310
|
-
|
|
311
|
-
# Preview environments (PR deployments)
|
|
312
|
-
vercel env add DATABASE_URL preview
|
|
313
|
-
vercel env add API_SECRET preview
|
|
314
|
-
|
|
315
|
-
# Development environment
|
|
316
|
-
vercel env add DATABASE_URL development
|
|
317
|
-
|
|
318
|
-
# Pull environment for local development
|
|
319
|
-
vercel env pull .env.local
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
### Phase 4: Preview Deployments
|
|
323
|
-
|
|
324
|
-
GitHub Integration Setup:
|
|
325
|
-
```yaml
|
|
326
|
-
# .github/workflows/vercel-preview.yml
|
|
327
|
-
name: Vercel Preview Deployment
|
|
328
|
-
on:
|
|
329
|
-
pull_request:
|
|
330
|
-
types: [opened, synchronize, reopened]
|
|
331
|
-
|
|
332
|
-
jobs:
|
|
333
|
-
deploy-preview:
|
|
334
|
-
runs-on: ubuntu-latest
|
|
335
|
-
environment:
|
|
336
|
-
name: Preview
|
|
337
|
-
url: ${{ steps.deploy.outputs.url }}
|
|
338
|
-
steps:
|
|
339
|
-
- uses: actions/checkout@v4
|
|
340
|
-
|
|
341
|
-
- name: Install Vercel CLI
|
|
342
|
-
run: npm i -g vercel@latest
|
|
343
|
-
|
|
344
|
-
- name: Pull Vercel Environment
|
|
345
|
-
run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }}
|
|
346
|
-
|
|
347
|
-
- name: Build Project
|
|
348
|
-
run: vercel build --token=${{ secrets.VERCEL_TOKEN }}
|
|
349
|
-
|
|
350
|
-
- name: Deploy to Vercel
|
|
351
|
-
id: deploy
|
|
352
|
-
run: |
|
|
353
|
-
url=$(vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }})
|
|
354
|
-
echo "url=$url" >> $GITHUB_OUTPUT
|
|
355
|
-
|
|
356
|
-
- name: Comment PR with Preview URL
|
|
357
|
-
uses: actions/github-script@v7
|
|
358
|
-
with:
|
|
359
|
-
script: |
|
|
360
|
-
github.rest.issues.createComment({
|
|
361
|
-
owner: context.repo.owner,
|
|
362
|
-
repo: context.repo.repo,
|
|
363
|
-
issue_number: context.issue.number,
|
|
364
|
-
body: `Preview deployed: ${{ steps.deploy.outputs.url }}`
|
|
365
|
-
})
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
Production Deployment:
|
|
369
|
-
```yaml
|
|
370
|
-
# .github/workflows/vercel-production.yml
|
|
371
|
-
name: Vercel Production Deployment
|
|
372
|
-
on:
|
|
373
|
-
push:
|
|
374
|
-
branches: [main]
|
|
375
|
-
|
|
376
|
-
jobs:
|
|
377
|
-
deploy-production:
|
|
378
|
-
runs-on: ubuntu-latest
|
|
379
|
-
environment:
|
|
380
|
-
name: Production
|
|
381
|
-
url: https://your-domain.com
|
|
382
|
-
steps:
|
|
383
|
-
- uses: actions/checkout@v4
|
|
384
|
-
|
|
385
|
-
- name: Install Vercel CLI
|
|
386
|
-
run: npm i -g vercel@latest
|
|
387
|
-
|
|
388
|
-
- name: Pull Vercel Environment
|
|
389
|
-
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
|
|
390
|
-
|
|
391
|
-
- name: Build Project
|
|
392
|
-
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
|
|
393
|
-
|
|
394
|
-
- name: Deploy to Vercel
|
|
395
|
-
run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}
|
|
396
|
-
```
|
|
397
|
-
|
|
398
|
-
### Phase 5: Web Vitals Monitoring
|
|
399
|
-
|
|
400
|
-
Analytics Integration:
|
|
401
|
-
```typescript
|
|
402
|
-
// app/layout.tsx
|
|
403
|
-
import { Analytics } from '@vercel/analytics/react'
|
|
404
|
-
import { SpeedInsights } from '@vercel/speed-insights/next'
|
|
405
|
-
|
|
406
|
-
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
407
|
-
return (
|
|
408
|
-
<html lang="en">
|
|
409
|
-
<body>
|
|
410
|
-
{children}
|
|
411
|
-
<Analytics />
|
|
412
|
-
<SpeedInsights />
|
|
413
|
-
</body>
|
|
414
|
-
</html>
|
|
415
|
-
)
|
|
416
|
-
}
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
Custom Web Vitals Reporting:
|
|
420
|
-
```typescript
|
|
421
|
-
// app/components/WebVitals.tsx
|
|
422
|
-
'use client'
|
|
423
|
-
|
|
424
|
-
import { useReportWebVitals } from 'next/web-vitals'
|
|
425
|
-
|
|
426
|
-
export function WebVitals() {
|
|
427
|
-
useReportWebVitals((metric) => {
|
|
428
|
-
const body = JSON.stringify({
|
|
429
|
-
name: metric.name,
|
|
430
|
-
value: metric.value,
|
|
431
|
-
rating: metric.rating,
|
|
432
|
-
delta: metric.delta,
|
|
433
|
-
id: metric.id,
|
|
434
|
-
navigationType: metric.navigationType
|
|
435
|
-
})
|
|
436
|
-
|
|
437
|
-
// Send to custom analytics endpoint
|
|
438
|
-
if (navigator.sendBeacon) {
|
|
439
|
-
navigator.sendBeacon('/api/vitals', body)
|
|
440
|
-
} else {
|
|
441
|
-
fetch('/api/vitals', { body, method: 'POST', keepalive: true })
|
|
442
|
-
}
|
|
443
|
-
})
|
|
444
|
-
|
|
445
|
-
return null
|
|
446
|
-
}
|
|
447
|
-
```
|
|
75
|
+
### Essential Configuration
|
|
76
|
+
|
|
77
|
+
The vercel.json configuration file contains a schema reference to openapi.vercel.sh/vercel.json, framework set to nextjs, regions array for deployment regions such as iad1, sfo1, and fra1, and functions configuration for API routes specifying memory in MB and maxDuration in seconds.
|
|
78
|
+
|
|
79
|
+
### Edge Function Quick Start
|
|
80
|
+
|
|
81
|
+
For an Edge Function route, create an api route file and export runtime as "edge". Export preferredRegion as an array of region codes. Export an async GET handler that takes a Request parameter, extracts the country from request.geo defaulting to "Unknown", and returns a Response.json with the country data.
|
|
82
|
+
|
|
83
|
+
### ISR Quick Start
|
|
84
|
+
|
|
85
|
+
For ISR implementation, export revalidate constant set to the revalidation interval in seconds. In the async page component, fetch data with the next configuration option containing tags array for cache invalidation. Return the component with fetched data.
|
|
86
|
+
|
|
87
|
+
### Analytics Integration
|
|
88
|
+
|
|
89
|
+
For Analytics integration in the root layout, import Analytics from @vercel/analytics/react and SpeedInsights from @vercel/speed-insights/next. In the RootLayout component body, render children followed by Analytics and SpeedInsights components.
|
|
448
90
|
|
|
449
91
|
---
|
|
450
92
|
|
|
451
93
|
## Advanced Patterns
|
|
452
94
|
|
|
453
|
-
###
|
|
95
|
+
### Blue-Green Deployment
|
|
454
96
|
|
|
455
|
-
|
|
456
|
-
{
|
|
457
|
-
"buildCommand": "cd ../.. && pnpm turbo build --filter=web",
|
|
458
|
-
"installCommand": "cd ../.. && pnpm install",
|
|
459
|
-
"framework": "nextjs"
|
|
460
|
-
}
|
|
461
|
-
```
|
|
97
|
+
Deploy new version, run smoke tests on preview URL, then switch production alias using Vercel SDK for zero-downtime releases.
|
|
462
98
|
|
|
463
|
-
###
|
|
99
|
+
### Monorepo with Turborepo
|
|
464
100
|
|
|
465
|
-
|
|
101
|
+
For monorepo configuration, set buildCommand to run turbo build from root with filter for the web package. Set installCommand to run pnpm install from root. Set framework to nextjs.
|
|
466
102
|
|
|
467
103
|
### Context7 Integration
|
|
468
104
|
|
|
469
|
-
Use
|
|
105
|
+
Use Context7 MCP tools for latest documentation:
|
|
106
|
+
|
|
107
|
+
Step 1: Resolve library ID using mcp__context7__resolve-library-id with "vercel" or "next.js".
|
|
108
|
+
|
|
109
|
+
Step 2: Fetch documentation using mcp__context7__get-library-docs with resolved ID, specific topic, and appropriate token allocation of 5000 to 10000 tokens.
|
|
470
110
|
|
|
471
111
|
---
|
|
472
112
|
|
|
473
113
|
## Works Well With
|
|
474
114
|
|
|
475
|
-
-
|
|
476
|
-
-
|
|
477
|
-
-
|
|
478
|
-
-
|
|
115
|
+
- moai-platform-railway for container-based deployment alternative
|
|
116
|
+
- moai-lang-typescript for TypeScript patterns for Next.js
|
|
117
|
+
- moai-domain-frontend for React and Next.js component patterns
|
|
118
|
+
- moai-foundation-quality for deployment validation and testing
|
|
119
|
+
- moai-domain-database for database patterns for Vercel Postgres
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Additional Resources
|
|
124
|
+
|
|
125
|
+
- Reference Guide at reference.md provides complete CLI commands and configuration options
|
|
126
|
+
- Code Examples at examples.md provides production-ready code snippets
|
|
479
127
|
|
|
480
128
|
---
|
|
481
129
|
|
|
482
|
-
Status: Production Ready
|
|
130
|
+
Status: Production Ready
|
|
131
|
+
Version: 2.1.0
|
|
132
|
+
Updated: 2026-01-11
|