moai-adk 0.32.8__py3-none-any.whl → 0.41.2__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.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/cli/commands/init.py +4 -1
- moai_adk/cli/commands/update.py +31 -26
- moai_adk/cli/worktree/cli.py +54 -43
- moai_adk/cli/worktree/manager.py +17 -14
- moai_adk/cli/worktree/registry.py +313 -19
- moai_adk/core/config/unified.py +237 -63
- 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/language_config_resolver.py +96 -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/project/backup_utils.py +9 -1
- moai_adk/core/project/initializer.py +33 -96
- moai_adk/core/project/phase_executor.py +79 -33
- moai_adk/core/quality/trust_checker.py +30 -10
- moai_adk/core/realtime_monitoring_dashboard.py +3 -3
- moai_adk/core/rollback_manager.py +46 -19
- moai_adk/core/template/backup.py +4 -3
- moai_adk/core/template/config.py +33 -9
- moai_adk/core/template/merger.py +34 -8
- moai_adk/core/template/processor.py +144 -9
- 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/project/configuration.py +1 -1
- moai_adk/statusline/config.py +5 -2
- moai_adk/statusline/main.py +58 -0
- moai_adk/statusline/renderer.py +56 -84
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +218 -51
- moai_adk/templates/.claude/agents/moai/builder-agent.md +46 -11
- moai_adk/templates/.claude/agents/moai/builder-command.md +88 -26
- moai_adk/templates/.claude/agents/moai/builder-plugin.md +753 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +79 -8
- moai_adk/templates/.claude/agents/moai/expert-backend.md +100 -28
- moai_adk/templates/.claude/agents/moai/expert-database.md +20 -12
- moai_adk/templates/.claude/agents/moai/expert-debug.md +19 -8
- moai_adk/templates/.claude/agents/moai/expert-devops.md +36 -25
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +99 -38
- moai_adk/templates/.claude/agents/moai/expert-performance.md +661 -0
- moai_adk/templates/.claude/agents/moai/expert-refactoring.md +218 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +55 -4
- moai_adk/templates/.claude/agents/moai/expert-testing.md +737 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +20 -11
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +13 -4
- moai_adk/templates/.claude/agents/moai/manager-docs.md +15 -7
- moai_adk/templates/.claude/agents/moai/manager-git.md +192 -37
- moai_adk/templates/.claude/agents/moai/manager-project.md +13 -7
- moai_adk/templates/.claude/agents/moai/manager-quality.md +48 -6
- moai_adk/templates/.claude/agents/moai/manager-spec.md +110 -8
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +203 -17
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +217 -23
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +102 -7
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +107 -86
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +50 -4
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +52 -4
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +49 -5
- moai_adk/templates/.claude/commands/moai/0-project.md +503 -307
- moai_adk/templates/.claude/commands/moai/1-plan.md +255 -323
- moai_adk/templates/.claude/commands/moai/2-run.md +257 -315
- moai_adk/templates/.claude/commands/moai/3-sync.md +421 -56
- moai_adk/templates/.claude/commands/moai/9-feedback.md +40 -34
- moai_adk/templates/.claude/hooks/moai/__init__.py +0 -0
- moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +19 -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_manager.py +12 -14
- moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +1 -1
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +104 -14
- 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/tool_registry.py +804 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +14 -2
- moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +256 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +253 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +307 -0
- moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +231 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +40 -24
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +248 -32
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +265 -2
- moai_adk/templates/.claude/output-styles/moai/yoda.md +23 -2
- moai_adk/templates/.claude/settings.json +44 -6
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +303 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/reference.md +139 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +252 -196
- moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +252 -0
- 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 +234 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +19 -13
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +21 -14
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +124 -425
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
- 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-frontend/reference.md +664 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +17 -15
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +105 -315
- moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +299 -70
- moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +6 -6
- moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +197 -154
- moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
- 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-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-memory-official.md +2 -2
- 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 +432 -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-claude/reference.md +209 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +12 -1
- moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +33 -134
- moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +31 -18
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +30 -30
- 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-core/reference.md +478 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +311 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +17 -16
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +431 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +17 -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 +17 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +194 -0
- 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 +395 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +17 -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 +17 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +473 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +378 -0
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +387 -0
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +419 -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 +384 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +505 -0
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +17 -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 +17 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +490 -0
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +390 -0
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +17 -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 +17 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +433 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +17 -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 +17 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +378 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +212 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
- 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-scala/reference.md +423 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +192 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
- 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-swift/reference.md +672 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +365 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +94 -227
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +26 -6
- moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
- 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-nextra/reference.md +379 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +17 -13
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +1 -1
- moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +284 -0
- 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 +426 -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 +229 -0
- 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 +250 -0
- 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 +231 -0
- 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 +206 -0
- 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 +224 -0
- 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 +207 -0
- 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 +210 -0
- 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-plugin-builder/SKILL.md +474 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/modules/migration.md +341 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/modules/validation.md +373 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +464 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/SKILL.md +307 -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-tool-opencode/SKILL.md +215 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/examples.md +697 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/index.md +96 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/acp.md +115 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/agents.md +241 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/commands.md +197 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/custom-tools.md +197 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/formatters.md +164 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/keybinds.md +150 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/lsp-servers.md +156 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/mcp-servers.md +214 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/models.md +197 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/permissions.md +162 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/rules.md +129 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/skills.md +192 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/themes.md +200 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/tools.md +169 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/config.md +211 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/enterprise.md +68 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/intro.md +127 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/migration-1.0.md +82 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/network.md +72 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/providers.md +310 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/troubleshooting.md +124 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/ecosystem.md +75 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/plugins.md +218 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/sdk.md +266 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/server.md +207 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/cli.md +159 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/github.md +181 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/gitlab.md +122 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/ide.md +74 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/share.md +106 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/tui.md +129 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/zen.md +118 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/reference.md +790 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +190 -424
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +188 -314
- moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +284 -212
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +2 -2
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +1 -1
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +22 -1
- moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +337 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +13 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +222 -367
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
- 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-testing/reference.md +440 -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 +168 -50
- moai_adk/templates/.gitignore +0 -3
- moai_adk/templates/.lsp.json +152 -0
- moai_adk/templates/.mcp.json +5 -12
- moai_adk/templates/.moai/config/config.yaml +20 -306
- moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +105 -10
- moai_adk/templates/.moai/config/questions/tab0-init.yaml +259 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +4 -5
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +12 -55
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +111 -21
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +34 -18
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +19 -75
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +83 -7
- moai_adk/templates/.moai/config/sections/language.yaml +7 -7
- moai_adk/templates/.moai/config/sections/project.yaml +1 -1
- moai_adk/templates/.moai/config/sections/quality.yaml +7 -4
- moai_adk/templates/.moai/config/sections/system.yaml +11 -1
- moai_adk/templates/.moai/config/statusline-config.yaml +19 -13
- moai_adk/templates/.moai/scripts/setup-glm.py +4 -4
- moai_adk/templates/CLAUDE.md +578 -154
- moai_adk/utils/common.py +33 -0
- moai_adk/version.py +1 -1
- {moai_adk-0.32.8.dist-info → moai_adk-0.41.2.dist-info}/METADATA +905 -109
- moai_adk-0.41.2.dist-info/RECORD +683 -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/skills/moai-domain-uiux/modules/design-system-tokens.md +0 -405
- moai_adk/templates/.claude/skills/moai-integration-mcp/SKILL.md +0 -352
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +0 -52
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +0 -334
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +0 -310
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +0 -256
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +0 -253
- moai_adk/templates/.claude/skills/moai-lang-unified/README.md +0 -133
- moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +0 -296
- moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +0 -1269
- moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +0 -331
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +0 -336
- moai_adk/templates/.claude/skills/moai-platform-baas/README.md +0 -186
- moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +0 -290
- moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +0 -1225
- moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +0 -567
- moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +0 -323
- moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +0 -204
- 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 -135
- 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 -410
- 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/cache/personalization.json +0 -10
- moai_adk/templates/.moai/config/presets/manual.yaml +0 -28
- moai_adk/templates/.moai/config/presets/personal.yaml +0 -30
- moai_adk/templates/.moai/config/presets/team.yaml +0 -33
- moai_adk-0.32.8.dist-info/RECORD +0 -396
- /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.32.8.dist-info → moai_adk-0.41.2.dist-info}/WHEEL +0 -0
- {moai_adk-0.32.8.dist-info → moai_adk-0.41.2.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.32.8.dist-info → moai_adk-0.41.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
# Scala 3.4+ Reference Guide
|
|
2
|
+
|
|
3
|
+
## Complete Language Coverage
|
|
4
|
+
|
|
5
|
+
### Scala 3.4 (November 2025)
|
|
6
|
+
|
|
7
|
+
Version Information:
|
|
8
|
+
- Latest: 3.4.2
|
|
9
|
+
- Dotty: New compiler with improved type system
|
|
10
|
+
- TASTy: Portable intermediate representation
|
|
11
|
+
- JVM Target: 11, 17, 21 (recommended: 21)
|
|
12
|
+
|
|
13
|
+
Core Features:
|
|
14
|
+
|
|
15
|
+
- Export Clauses: Selective member export from composed objects
|
|
16
|
+
- Extension Methods: Type-safe extensions without implicit classes
|
|
17
|
+
- Enum Types: Algebraic data types with exhaustive pattern matching
|
|
18
|
+
- Opaque Types: Zero-cost type abstractions
|
|
19
|
+
- Union Types: A or B type unions for flexible APIs
|
|
20
|
+
- Intersection Types: A and B type combinations
|
|
21
|
+
- Match Types: Type-level computation and pattern matching
|
|
22
|
+
- Inline Methods: Compile-time evaluation and metaprogramming
|
|
23
|
+
- Given/Using: Context parameters replacing implicits
|
|
24
|
+
- Braceless Syntax: Optional significant indentation
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Context7 Library Mappings
|
|
29
|
+
|
|
30
|
+
### Core Scala
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
/scala/scala3 - Scala 3.4 language reference
|
|
34
|
+
/scala/scala-library - Standard library
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Effect Systems
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
/typelevel/cats-effect - Cats Effect 3.5 (Pure FP runtime)
|
|
41
|
+
/typelevel/cats - Cats 2.10 (Functional abstractions)
|
|
42
|
+
/zio/zio - ZIO 2.1 (Effect system)
|
|
43
|
+
/zio/zio-streams - ZIO Streams (Streaming)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Akka Ecosystem
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
/akka/akka - Akka 2.9 (Typed actors, streams)
|
|
50
|
+
/akka/akka-http - Akka HTTP (REST APIs)
|
|
51
|
+
/akka/alpakka - Akka Alpakka (Connectors)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### HTTP and Web
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
/http4s/http4s - Http4s 0.24 (Functional HTTP)
|
|
58
|
+
/softwaremill/tapir - Tapir 1.10 (API-first design)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### JSON
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
/circe/circe - Circe 0.15 (JSON parsing)
|
|
65
|
+
/zio/zio-json - ZIO JSON 0.6 (Fast JSON)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Database
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
/tpolecat/doobie - Doobie 1.0 (Functional JDBC)
|
|
72
|
+
/slick/slick - Slick 3.5 (FRM)
|
|
73
|
+
/getquill/quill - Quill 4.8 (Compile-time SQL)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Big Data
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
/apache/spark - Apache Spark 3.5
|
|
80
|
+
/apache/flink - Apache Flink 1.19
|
|
81
|
+
/apache/kafka - Kafka Clients 3.7
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Testing
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
/scalatest/scalatest - ScalaTest 3.2
|
|
88
|
+
/typelevel/munit-cats-effect - MUnit Cats Effect 2.0
|
|
89
|
+
/zio/zio-test - ZIO Test 2.1
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Testing Patterns
|
|
95
|
+
|
|
96
|
+
### ScalaTest with Akka TestKit
|
|
97
|
+
|
|
98
|
+
```scala
|
|
99
|
+
class UserActorSpec extends ScalaTestWithActorTestKit with AnyWordSpecLike with Matchers:
|
|
100
|
+
import UserActor.*
|
|
101
|
+
|
|
102
|
+
val mockRepository: UserRepository = mock[UserRepository]
|
|
103
|
+
|
|
104
|
+
"UserActor" should {
|
|
105
|
+
"return user when found" in {
|
|
106
|
+
val testUser = User(1L, "John", "john@example.com")
|
|
107
|
+
when(mockRepository.findById(1L)).thenReturn(Some(testUser))
|
|
108
|
+
|
|
109
|
+
val actor = spawn(UserActor(mockRepository))
|
|
110
|
+
val probe = createTestProbe[Option[User]]()
|
|
111
|
+
|
|
112
|
+
actor ! GetUser(1L, probe.ref)
|
|
113
|
+
|
|
114
|
+
probe.expectMessage(Some(testUser))
|
|
115
|
+
verify(mockRepository).findById(1L)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
"return None when user not found" in {
|
|
119
|
+
when(mockRepository.findById(999L)).thenReturn(None)
|
|
120
|
+
|
|
121
|
+
val actor = spawn(UserActor(mockRepository))
|
|
122
|
+
val probe = createTestProbe[Option[User]]()
|
|
123
|
+
|
|
124
|
+
actor ! GetUser(999L, probe.ref)
|
|
125
|
+
|
|
126
|
+
probe.expectMessage(None)
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
"handle multiple requests concurrently" in {
|
|
130
|
+
val users = (1 to 100).map(i => User(i.toLong, s"User$i", s"user$i@example.com"))
|
|
131
|
+
users.foreach(u => when(mockRepository.findById(u.id)).thenReturn(Some(u)))
|
|
132
|
+
|
|
133
|
+
val actor = spawn(UserActor(mockRepository))
|
|
134
|
+
val probes = users.map(_ => createTestProbe[Option[User]]())
|
|
135
|
+
|
|
136
|
+
users.zip(probes).foreach { case (user, probe) =>
|
|
137
|
+
actor ! GetUser(user.id, probe.ref)
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
users.zip(probes).foreach { case (user, probe) =>
|
|
141
|
+
probe.expectMessage(Some(user))
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Cats Effect Testing (MUnit)
|
|
148
|
+
|
|
149
|
+
```scala
|
|
150
|
+
class UserServiceSpec extends CatsEffectSuite:
|
|
151
|
+
val mockRepository = mock[UserRepository[IO]]
|
|
152
|
+
|
|
153
|
+
test("should fetch user successfully") {
|
|
154
|
+
val testUser = User(1L, "John", "john@example.com")
|
|
155
|
+
when(mockRepository.findById(1L)).thenReturn(IO.pure(Some(testUser)))
|
|
156
|
+
|
|
157
|
+
val service = UserService(mockRepository)
|
|
158
|
+
|
|
159
|
+
service.findById(1L).map { result =>
|
|
160
|
+
assertEquals(result, Some(testUser))
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
test("should handle concurrent operations") {
|
|
165
|
+
val users = (1 to 10).map(i => User(i.toLong, s"User$i", s"user$i@example.com")).toList
|
|
166
|
+
users.foreach(u => when(mockRepository.findById(u.id)).thenReturn(IO.pure(Some(u))))
|
|
167
|
+
|
|
168
|
+
val service = UserService(mockRepository)
|
|
169
|
+
|
|
170
|
+
val results = users.parTraverse(u => service.findById(u.id))
|
|
171
|
+
|
|
172
|
+
results.map { list =>
|
|
173
|
+
assertEquals(list.flatten.size, 10)
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
test("should timeout slow operations") {
|
|
178
|
+
when(mockRepository.findById(any[Long])).thenReturn(IO.sleep(5.seconds) *> IO.none)
|
|
179
|
+
|
|
180
|
+
val service = UserService(mockRepository)
|
|
181
|
+
|
|
182
|
+
service.findById(1L)
|
|
183
|
+
.timeout(100.millis)
|
|
184
|
+
.attempt
|
|
185
|
+
.map { result =>
|
|
186
|
+
assert(result.isLeft)
|
|
187
|
+
assert(result.left.exists(_.isInstanceOf[TimeoutException]))
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### ZIO Testing
|
|
193
|
+
|
|
194
|
+
```scala
|
|
195
|
+
object UserServiceSpec extends ZIOSpecDefault:
|
|
196
|
+
val testUser = User(1L, "John", "john@example.com")
|
|
197
|
+
|
|
198
|
+
val mockRepositoryLayer: ULayer[UserRepository] = ZLayer.succeed {
|
|
199
|
+
new UserRepository:
|
|
200
|
+
def findById(id: Long): UIO[Option[User]] =
|
|
201
|
+
if id == 1L then ZIO.some(testUser) else ZIO.none
|
|
202
|
+
def save(user: User): UIO[User] = ZIO.succeed(user)
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
def spec = suite("UserService")(
|
|
206
|
+
test("should find existing user") {
|
|
207
|
+
for
|
|
208
|
+
service <- ZIO.service[UserService]
|
|
209
|
+
result <- service.findById(1L)
|
|
210
|
+
yield assertTrue(result == Some(testUser))
|
|
211
|
+
}.provide(mockRepositoryLayer, UserService.layer),
|
|
212
|
+
|
|
213
|
+
test("should return None for non-existent user") {
|
|
214
|
+
for
|
|
215
|
+
service <- ZIO.service[UserService]
|
|
216
|
+
result <- service.findById(999L)
|
|
217
|
+
yield assertTrue(result.isEmpty)
|
|
218
|
+
}.provide(mockRepositoryLayer, UserService.layer),
|
|
219
|
+
|
|
220
|
+
test("should handle parallel requests") {
|
|
221
|
+
for
|
|
222
|
+
service <- ZIO.service[UserService]
|
|
223
|
+
results <- ZIO.foreachPar(1 to 100)(id => service.findById(id.toLong))
|
|
224
|
+
yield assertTrue(results.flatten.size == 1)
|
|
225
|
+
}.provide(mockRepositoryLayer, UserService.layer)
|
|
226
|
+
)
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Property-Based Testing (ScalaCheck)
|
|
230
|
+
|
|
231
|
+
```scala
|
|
232
|
+
class UserValidationSpec extends AnyFlatSpec with Matchers with ScalaCheckPropertyChecks:
|
|
233
|
+
"Email validation" should "accept valid emails" in {
|
|
234
|
+
forAll(Gen.alphaNumStr, Gen.alphaNumStr) { (local, domain) =>
|
|
235
|
+
whenever(local.nonEmpty && domain.nonEmpty) {
|
|
236
|
+
val email = s"$local@$domain.com"
|
|
237
|
+
Email(email) shouldBe a[Right[_, _]]
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
"UserId" should "roundtrip through string conversion" in {
|
|
243
|
+
forAll(Gen.posNum[Long]) { id =>
|
|
244
|
+
UserId.fromString(UserId(id).asString) shouldBe Some(UserId(id))
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Performance Characteristics
|
|
252
|
+
|
|
253
|
+
### JVM Startup and Memory
|
|
254
|
+
|
|
255
|
+
- Cold Start: 3-6s (JVM warmup)
|
|
256
|
+
- Warm Start: Less than 100ms
|
|
257
|
+
- Base Memory: 512MB or more
|
|
258
|
+
- GraalVM Native: Not recommended for Scala 3
|
|
259
|
+
|
|
260
|
+
### Compilation Times
|
|
261
|
+
|
|
262
|
+
- Clean Build: 60-120s
|
|
263
|
+
- Incremental: 10-30s
|
|
264
|
+
- With Cache: 30-60s
|
|
265
|
+
- Note: Scala 3 compiler is faster than Scala 2
|
|
266
|
+
|
|
267
|
+
### Framework Throughput
|
|
268
|
+
|
|
269
|
+
- Http4s (Blaze): 160K requests per second, P99 latency 1.5ms
|
|
270
|
+
- Http4s (Ember): 140K requests per second, P99 latency 2ms
|
|
271
|
+
- Akka HTTP: 180K requests per second, P99 latency 1.2ms
|
|
272
|
+
- ZIO HTTP: 170K requests per second, P99 latency 1.3ms
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Development Environment
|
|
277
|
+
|
|
278
|
+
### IDE Support
|
|
279
|
+
|
|
280
|
+
- IntelliJ IDEA: Good (Scala plugin required)
|
|
281
|
+
- VS Code: Good (Metals extension)
|
|
282
|
+
- Neovim: Good (Metals LSP)
|
|
283
|
+
|
|
284
|
+
### Recommended Plugins
|
|
285
|
+
|
|
286
|
+
IntelliJ IDEA:
|
|
287
|
+
- Scala (by JetBrains)
|
|
288
|
+
- ZIO for IntelliJ
|
|
289
|
+
- Cats Support
|
|
290
|
+
|
|
291
|
+
VS Code:
|
|
292
|
+
- Scala (Metals)
|
|
293
|
+
- Scala Syntax (official)
|
|
294
|
+
|
|
295
|
+
### Linters and Formatters
|
|
296
|
+
|
|
297
|
+
- Scalafmt: Code formatter (.scalafmt.conf)
|
|
298
|
+
- Scalafix: Linting and refactoring
|
|
299
|
+
- WartRemover: Code quality checks
|
|
300
|
+
|
|
301
|
+
Example .scalafmt.conf:
|
|
302
|
+
```hocon
|
|
303
|
+
version = 3.7.17
|
|
304
|
+
runner.dialect = scala3
|
|
305
|
+
maxColumn = 100
|
|
306
|
+
indent.main = 2
|
|
307
|
+
indent.callSite = 2
|
|
308
|
+
align.preset = more
|
|
309
|
+
rewrite.rules = [SortImports, RedundantBraces, PreferCurlyFors]
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## Container Optimization
|
|
315
|
+
|
|
316
|
+
### Docker Multi-Stage Build
|
|
317
|
+
|
|
318
|
+
```dockerfile
|
|
319
|
+
FROM eclipse-temurin:21-jdk-alpine AS builder
|
|
320
|
+
WORKDIR /app
|
|
321
|
+
COPY . .
|
|
322
|
+
RUN sbt assembly
|
|
323
|
+
|
|
324
|
+
FROM eclipse-temurin:21-jre-alpine
|
|
325
|
+
RUN addgroup -g 1000 app && adduser -u 1000 -G app -s /bin/sh -D app
|
|
326
|
+
WORKDIR /app
|
|
327
|
+
COPY --from=builder /app/target/scala-3.4.2/*.jar app.jar
|
|
328
|
+
USER app
|
|
329
|
+
EXPOSE 8080
|
|
330
|
+
ENTRYPOINT ["java", "-jar", "app.jar"]
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### JVM Tuning for Containers
|
|
334
|
+
|
|
335
|
+
```yaml
|
|
336
|
+
containers:
|
|
337
|
+
- name: app
|
|
338
|
+
image: myapp:latest
|
|
339
|
+
resources:
|
|
340
|
+
requests:
|
|
341
|
+
memory: "512Mi"
|
|
342
|
+
cpu: "500m"
|
|
343
|
+
limits:
|
|
344
|
+
memory: "1Gi"
|
|
345
|
+
cpu: "1000m"
|
|
346
|
+
env:
|
|
347
|
+
- name: JAVA_OPTS
|
|
348
|
+
value: >-
|
|
349
|
+
-XX:+UseContainerSupport
|
|
350
|
+
-XX:MaxRAMPercentage=75.0
|
|
351
|
+
-XX:+UseG1GC
|
|
352
|
+
-XX:+UseStringDeduplication
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Migration Guide: Scala 2.13 to 3.4
|
|
358
|
+
|
|
359
|
+
Key Changes:
|
|
360
|
+
|
|
361
|
+
1. Braceless Syntax: Optional significant indentation
|
|
362
|
+
2. Given/Using: Replace `implicit` with `given` and `using`
|
|
363
|
+
3. Extension Methods: Replace implicit classes with `extension`
|
|
364
|
+
4. Enums: Replace sealed traits with `enum`
|
|
365
|
+
5. Export Clauses: Replace trait mixing with exports
|
|
366
|
+
6. Opaque Types: Replace value classes with opaque types
|
|
367
|
+
7. Union Types: Replace Either with union types where appropriate
|
|
368
|
+
8. Match Types: Replace type-level programming patterns
|
|
369
|
+
|
|
370
|
+
Example Migration:
|
|
371
|
+
|
|
372
|
+
Scala 2.13:
|
|
373
|
+
```scala
|
|
374
|
+
implicit class StringOps(s: String) {
|
|
375
|
+
def words: List[String] = s.split("\\s+").toList
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
implicit def jsonEncoder: JsonEncoder[String] = ???
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
Scala 3.4:
|
|
382
|
+
```scala
|
|
383
|
+
extension (s: String)
|
|
384
|
+
def words: List[String] = s.split("\\s+").toList
|
|
385
|
+
|
|
386
|
+
given JsonEncoder[String] = ???
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## Effect System Comparison
|
|
392
|
+
|
|
393
|
+
### Cats Effect vs ZIO
|
|
394
|
+
|
|
395
|
+
Cats Effect:
|
|
396
|
+
- Pure FP approach, minimal runtime
|
|
397
|
+
- Better interop with Typelevel ecosystem
|
|
398
|
+
- Smaller learning curve from cats-core
|
|
399
|
+
- Resource safety via Resource type
|
|
400
|
+
|
|
401
|
+
ZIO:
|
|
402
|
+
- Rich built-in functionality (layers, config, logging)
|
|
403
|
+
- Better error handling with typed errors
|
|
404
|
+
- Comprehensive testing utilities
|
|
405
|
+
- Larger standard library
|
|
406
|
+
|
|
407
|
+
### When to Use Which
|
|
408
|
+
|
|
409
|
+
Use Cats Effect When:
|
|
410
|
+
- Already using Typelevel libraries (http4s, doobie, fs2)
|
|
411
|
+
- Prefer minimal runtime overhead
|
|
412
|
+
- Team familiar with tagless final pattern
|
|
413
|
+
|
|
414
|
+
Use ZIO When:
|
|
415
|
+
- Building complex applications with many dependencies
|
|
416
|
+
- Need comprehensive error handling
|
|
417
|
+
- Prefer opinionated framework with batteries included
|
|
418
|
+
- Building applications from scratch
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
Last Updated: 2025-12-07
|
|
423
|
+
Version: 1.0.0
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "moai-lang-swift"
|
|
3
|
+
description: "Swift 6+ development specialist covering SwiftUI, Combine, Swift Concurrency, and iOS patterns. Use when building iOS apps, macOS apps, or Apple platform applications."
|
|
4
|
+
version: 2.0.0
|
|
5
|
+
category: "language"
|
|
6
|
+
modularized: true
|
|
7
|
+
user-invocable: false
|
|
8
|
+
tags: ['swift', 'swiftui', 'ios', 'macos', 'combine', 'concurrency']
|
|
9
|
+
allowed-tools:
|
|
10
|
+
- Read
|
|
11
|
+
- Grep
|
|
12
|
+
- Glob
|
|
13
|
+
- mcp__context7__resolve-library-id
|
|
14
|
+
- mcp__context7__get-library-docs
|
|
15
|
+
context7-libraries: ['/apple/swift', '/apple/swift-evolution']
|
|
16
|
+
related-skills: ['moai-lang-kotlin', 'moai-lang-flutter']
|
|
17
|
+
updated: 2026-01-08
|
|
18
|
+
status: "active"
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Swift 6+ Development Specialist
|
|
22
|
+
|
|
23
|
+
Swift 6.0+ development expert for iOS/macOS with SwiftUI, Combine, and Swift Concurrency.
|
|
24
|
+
|
|
25
|
+
Auto-Triggers: Swift files (`.swift`), iOS/macOS projects, Xcode workspaces
|
|
26
|
+
|
|
27
|
+
## Quick Reference
|
|
28
|
+
|
|
29
|
+
### Core Capabilities
|
|
30
|
+
|
|
31
|
+
- Swift 6.0: Typed throws, complete concurrency, data-race safety by default
|
|
32
|
+
- SwiftUI 6: @Observable macro, NavigationStack, modern declarative UI
|
|
33
|
+
- Combine: Reactive programming with publishers and subscribers
|
|
34
|
+
- Swift Concurrency: async/await, actors, TaskGroup, isolation
|
|
35
|
+
- XCTest: Unit testing, UI testing, async test support
|
|
36
|
+
- Swift Package Manager: Dependency management
|
|
37
|
+
|
|
38
|
+
### Version Requirements
|
|
39
|
+
|
|
40
|
+
- Swift: 6.0+
|
|
41
|
+
- Xcode: 16.0+
|
|
42
|
+
- iOS: 17.0+ (recommended), minimum 15.0
|
|
43
|
+
- macOS: 14.0+ (recommended)
|
|
44
|
+
|
|
45
|
+
### Project Setup
|
|
46
|
+
|
|
47
|
+
Package.swift Configuration:
|
|
48
|
+
```swift
|
|
49
|
+
// swift-tools-version: 6.0
|
|
50
|
+
import PackageDescription
|
|
51
|
+
|
|
52
|
+
let package = Package(
|
|
53
|
+
name: "MyApp",
|
|
54
|
+
platforms: [.iOS(.v17), .macOS(.v14)],
|
|
55
|
+
products: [
|
|
56
|
+
.library(name: "MyAppCore", targets: ["MyAppCore"])
|
|
57
|
+
],
|
|
58
|
+
dependencies: [
|
|
59
|
+
.package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.9.0"),
|
|
60
|
+
.package(url: "https://github.com/pointfreeco/swift-composable-architecture", from: "1.15.0")
|
|
61
|
+
],
|
|
62
|
+
targets: [
|
|
63
|
+
.target(name: "MyAppCore", dependencies: ["Alamofire"]),
|
|
64
|
+
.testTarget(name: "MyAppCoreTests", dependencies: ["MyAppCore"])
|
|
65
|
+
]
|
|
66
|
+
)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Essential Patterns
|
|
70
|
+
|
|
71
|
+
Basic @Observable ViewModel:
|
|
72
|
+
```swift
|
|
73
|
+
import Observation
|
|
74
|
+
|
|
75
|
+
@Observable
|
|
76
|
+
@MainActor
|
|
77
|
+
final class ContentViewModel {
|
|
78
|
+
private(set) var items: [Item] = []
|
|
79
|
+
private(set) var isLoading = false
|
|
80
|
+
|
|
81
|
+
func load() async {
|
|
82
|
+
isLoading = true
|
|
83
|
+
defer { isLoading = false }
|
|
84
|
+
items = try? await api.fetchItems() ?? []
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Basic SwiftUI View:
|
|
90
|
+
```swift
|
|
91
|
+
struct ContentView: View {
|
|
92
|
+
@State private var viewModel = ContentViewModel()
|
|
93
|
+
|
|
94
|
+
var body: some View {
|
|
95
|
+
NavigationStack {
|
|
96
|
+
List(viewModel.items) { item in
|
|
97
|
+
Text(item.title)
|
|
98
|
+
}
|
|
99
|
+
.task { await viewModel.load() }
|
|
100
|
+
.refreshable { await viewModel.load() }
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Basic Actor for Thread Safety:
|
|
107
|
+
```swift
|
|
108
|
+
actor DataCache {
|
|
109
|
+
private var cache: [String: Data] = [:]
|
|
110
|
+
|
|
111
|
+
func get(_ key: String) -> Data? { cache[key] }
|
|
112
|
+
func set(_ key: String, data: Data) { cache[key] = data }
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Module Index
|
|
117
|
+
|
|
118
|
+
### Swift 6 Features
|
|
119
|
+
[modules/swift6-features.md](modules/swift6-features.md)
|
|
120
|
+
- Typed throws for precise error handling
|
|
121
|
+
- Complete concurrency checking
|
|
122
|
+
- Data-race safety by default
|
|
123
|
+
- Sendable conformance requirements
|
|
124
|
+
|
|
125
|
+
### SwiftUI Patterns
|
|
126
|
+
[modules/swiftui-patterns.md](modules/swiftui-patterns.md)
|
|
127
|
+
- @Observable macro and state management
|
|
128
|
+
- NavigationStack and navigation patterns
|
|
129
|
+
- View lifecycle and .task modifier
|
|
130
|
+
- Environment and dependency injection
|
|
131
|
+
|
|
132
|
+
### Swift Concurrency
|
|
133
|
+
[modules/concurrency.md](modules/concurrency.md)
|
|
134
|
+
- async/await fundamentals
|
|
135
|
+
- Actor isolation and @MainActor
|
|
136
|
+
- TaskGroup for parallel execution
|
|
137
|
+
- Custom executors and structured concurrency
|
|
138
|
+
|
|
139
|
+
### Combine Framework
|
|
140
|
+
[modules/combine-reactive.md](modules/combine-reactive.md)
|
|
141
|
+
- Publishers and Subscribers
|
|
142
|
+
- Operators and transformations
|
|
143
|
+
- async/await bridge patterns
|
|
144
|
+
- Integration with SwiftUI
|
|
145
|
+
|
|
146
|
+
## Context7 Library Mappings
|
|
147
|
+
|
|
148
|
+
### Core Swift
|
|
149
|
+
- `/apple/swift` - Swift language and standard library
|
|
150
|
+
- `/apple/swift-evolution` - Swift evolution proposals
|
|
151
|
+
- `/apple/swift-package-manager` - SwiftPM documentation
|
|
152
|
+
- `/apple/swift-async-algorithms` - Async sequence algorithms
|
|
153
|
+
|
|
154
|
+
### Popular Libraries
|
|
155
|
+
- `/Alamofire/Alamofire` - HTTP networking
|
|
156
|
+
- `/onevcat/Kingfisher` - Image downloading and caching
|
|
157
|
+
- `/realm/realm-swift` - Mobile database
|
|
158
|
+
- `/pointfreeco/swift-composable-architecture` - TCA architecture
|
|
159
|
+
- `/Quick/Quick` - BDD testing framework
|
|
160
|
+
- `/Quick/Nimble` - Matcher framework
|
|
161
|
+
|
|
162
|
+
## Testing Quick Start
|
|
163
|
+
|
|
164
|
+
Async Test with MainActor:
|
|
165
|
+
```swift
|
|
166
|
+
@MainActor
|
|
167
|
+
final class ViewModelTests: XCTestCase {
|
|
168
|
+
func testLoadSuccess() async throws {
|
|
169
|
+
let mockAPI = MockAPI()
|
|
170
|
+
mockAPI.mockItems = [Item(id: "1", title: "Test")]
|
|
171
|
+
let sut = ContentViewModel(api: mockAPI)
|
|
172
|
+
|
|
173
|
+
await sut.load()
|
|
174
|
+
|
|
175
|
+
XCTAssertEqual(sut.items.count, 1)
|
|
176
|
+
XCTAssertFalse(sut.isLoading)
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Works Well With
|
|
182
|
+
|
|
183
|
+
- `moai-lang-kotlin` - Android counterpart for cross-platform projects
|
|
184
|
+
- `moai-lang-flutter` - Flutter/Dart for cross-platform mobile
|
|
185
|
+
- `moai-domain-backend` - API integration and backend communication
|
|
186
|
+
- `moai-foundation-quality` - iOS security best practices
|
|
187
|
+
- `moai-workflow-testing` - Xcode debugging and profiling
|
|
188
|
+
|
|
189
|
+
## Resources
|
|
190
|
+
|
|
191
|
+
- [reference.md](reference.md) - Architecture patterns, network layer, SwiftData
|
|
192
|
+
- [examples.md](examples.md) - Production-ready code examples
|