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,158 +0,0 @@
|
|
|
1
|
-
# Advanced Implementation Patterns
|
|
2
|
-
|
|
3
|
-
Advanced patterns for custom template development, performance optimization, and integration workflows.
|
|
4
|
-
|
|
5
|
-
## Custom Template Development
|
|
6
|
-
|
|
7
|
-
Documentation Templates:
|
|
8
|
-
```python
|
|
9
|
-
# Custom template for specific project type
|
|
10
|
-
custom_template = {
|
|
11
|
-
"project_type": "mobile_application",
|
|
12
|
-
"language": "ko",
|
|
13
|
-
"sections": {
|
|
14
|
-
"product": {
|
|
15
|
-
"mission": " ",
|
|
16
|
-
"metrics": [" ", " ", " "],
|
|
17
|
-
"success_criteria": " "
|
|
18
|
-
},
|
|
19
|
-
"tech": {
|
|
20
|
-
"frameworks": ["Flutter", "React Native", "Swift"],
|
|
21
|
-
"performance_targets": " "
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
# Generate custom documentation
|
|
27
|
-
docs = project.documentation_manager._generate_product_doc(
|
|
28
|
-
"mobile_application", "ko"
|
|
29
|
-
)
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Language-Specific Customization:
|
|
33
|
-
```python
|
|
34
|
-
# Add custom language support
|
|
35
|
-
custom_language_config = {
|
|
36
|
-
"code": "de",
|
|
37
|
-
"name": "German",
|
|
38
|
-
"native_name": "Deutsch",
|
|
39
|
-
"locale": "de_DE.UTF-8",
|
|
40
|
-
"date_format": "%d.%m.%Y",
|
|
41
|
-
"rtl": False
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
# Register custom language
|
|
45
|
-
project.language_initializer.LANGUAGE_CONFIG["de"] = custom_language_config
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Performance Optimization Strategies
|
|
49
|
-
|
|
50
|
-
Template Caching:
|
|
51
|
-
```python
|
|
52
|
-
# Enable template caching for performance
|
|
53
|
-
project.template_optimizer.optimization_cache = {}
|
|
54
|
-
|
|
55
|
-
# Cache optimization results
|
|
56
|
-
def cached_optimization(template_path):
|
|
57
|
-
cache_key = f"opt_{template_path}_{datetime.now().strftime('%Y%m%d')}"
|
|
58
|
-
|
|
59
|
-
if cache_key not in project.template_optimizer.optimization_cache:
|
|
60
|
-
result = project.template_optimizer._optimize_template_file(template_path)
|
|
61
|
-
project.template_optimizer.optimization_cache[cache_key] = result
|
|
62
|
-
|
|
63
|
-
return project.template_optimizer.optimization_cache[cache_key]
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Batch Processing:
|
|
67
|
-
```python
|
|
68
|
-
# Process multiple templates efficiently
|
|
69
|
-
def batch_optimize_templates(template_paths):
|
|
70
|
-
results = []
|
|
71
|
-
|
|
72
|
-
for template_path in template_paths:
|
|
73
|
-
try:
|
|
74
|
-
result = project.template_optimizer._optimize_template_file(template_path)
|
|
75
|
-
results.append(result)
|
|
76
|
-
except Exception as e:
|
|
77
|
-
results.append({
|
|
78
|
-
"file_path": template_path,
|
|
79
|
-
"success": False,
|
|
80
|
-
"error": str(e)
|
|
81
|
-
})
|
|
82
|
-
|
|
83
|
-
return results
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## Integration Workflows
|
|
87
|
-
|
|
88
|
-
Complete Project Lifecycle:
|
|
89
|
-
```python
|
|
90
|
-
def full_project_lifecycle():
|
|
91
|
-
"""Complete project setup and management workflow."""
|
|
92
|
-
|
|
93
|
-
# Phase 1: Project Initialization
|
|
94
|
-
project = MoaiMenuProject("./new-project")
|
|
95
|
-
init_result = project.initialize_complete_project(
|
|
96
|
-
language="en",
|
|
97
|
-
domains=["backend", "frontend"],
|
|
98
|
-
optimization_enabled=True
|
|
99
|
-
)
|
|
100
|
-
|
|
101
|
-
# Phase 2: Feature Development with SPEC
|
|
102
|
-
spec_data = {
|
|
103
|
-
"id": "SPEC-001",
|
|
104
|
-
"title": "Core Feature Implementation",
|
|
105
|
-
"requirements": ["Requirement 1", "Requirement 2"],
|
|
106
|
-
"api_endpoints": [/* ... */]
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
docs_result = project.generate_documentation_from_spec(spec_data)
|
|
110
|
-
|
|
111
|
-
# Phase 3: Performance Optimization
|
|
112
|
-
optimization_result = project.optimize_project_templates()
|
|
113
|
-
|
|
114
|
-
# Phase 4: Documentation Export
|
|
115
|
-
export_result = project.export_project_documentation("html")
|
|
116
|
-
|
|
117
|
-
# Phase 5: Backup Creation
|
|
118
|
-
backup_result = project.create_project_backup()
|
|
119
|
-
|
|
120
|
-
return {
|
|
121
|
-
"initialization": init_result,
|
|
122
|
-
"documentation": docs_result,
|
|
123
|
-
"optimization": optimization_result,
|
|
124
|
-
"export": export_result,
|
|
125
|
-
"backup": backup_result
|
|
126
|
-
}
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
Multilingual Project Management:
|
|
130
|
-
```python
|
|
131
|
-
def multilingual_project_workflow():
|
|
132
|
-
"""Manage multilingual project with cost optimization."""
|
|
133
|
-
|
|
134
|
-
project = MoaiMenuProject("./multilingual-project")
|
|
135
|
-
|
|
136
|
-
# Initialize with primary language
|
|
137
|
-
init_result = project.initialize_complete_project(
|
|
138
|
-
language="ko",
|
|
139
|
-
user_name=" ",
|
|
140
|
-
domains=["backend", "frontend"]
|
|
141
|
-
)
|
|
142
|
-
|
|
143
|
-
# Optimize agent prompts for cost (use English)
|
|
144
|
-
lang_update = project.update_language_settings({
|
|
145
|
-
"language.agent_prompt_language": "english"
|
|
146
|
-
})
|
|
147
|
-
|
|
148
|
-
# Generate documentation in multiple languages
|
|
149
|
-
for lang in ["ko", "en", "ja"]:
|
|
150
|
-
export_result = project.export_project_documentation("markdown", lang)
|
|
151
|
-
print(f"{lang} documentation exported: {export_result['success']}")
|
|
152
|
-
|
|
153
|
-
return init_result
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
For detailed implementation patterns, refer to the main SKILL.md Implementation Guide section.
|
|
@@ -1,340 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
AskUserQuestion Integration Module
|
|
3
|
-
|
|
4
|
-
Provides seamless integration between the BatchQuestionsManager and Claude Code's
|
|
5
|
-
AskUserQuestion functionality, ensuring consistent user interaction patterns
|
|
6
|
-
across all MoAI skills.
|
|
7
|
-
|
|
8
|
-
Author: MoAI-ADK
|
|
9
|
-
Version: 1.0.0
|
|
10
|
-
"""
|
|
11
|
-
|
|
12
|
-
import logging
|
|
13
|
-
from dataclasses import dataclass, field
|
|
14
|
-
from typing import Any, Dict, List, Optional, Union
|
|
15
|
-
|
|
16
|
-
from .batch_questions import BatchQuestionsManager, Question, QuestionType, UserResponse
|
|
17
|
-
|
|
18
|
-
logger = logging.getLogger(__name__)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
@dataclass
|
|
22
|
-
class AskUserConfig:
|
|
23
|
-
"""Configuration for AskUserQuestion integration."""
|
|
24
|
-
|
|
25
|
-
max_options_per_question: int = 10
|
|
26
|
-
enable_descriptions: bool = True
|
|
27
|
-
enable_conditional: bool = True
|
|
28
|
-
validation_error_retries: int = 3
|
|
29
|
-
timeout_seconds: Optional[int] = None
|
|
30
|
-
default_multi_select: bool = False
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class AskUserQuestionIntegrator:
|
|
34
|
-
"""
|
|
35
|
-
Integrates BatchQuestionsManager with Claude Code's AskUserQuestion.
|
|
36
|
-
|
|
37
|
-
This class provides a bridge between our question system and Claude Code's
|
|
38
|
-
built-in user interaction capabilities, ensuring consistent UX across
|
|
39
|
-
all MoAI skills.
|
|
40
|
-
"""
|
|
41
|
-
|
|
42
|
-
def __init__(self, config: Optional[AskUserConfig] = None):
|
|
43
|
-
"""Initialize the integrator with optional configuration."""
|
|
44
|
-
self.config = config or AskUserConfig()
|
|
45
|
-
self._setup_ask_user_function()
|
|
46
|
-
|
|
47
|
-
def _setup_ask_user_function(self):
|
|
48
|
-
"""Setup the AskUserQuestion function reference."""
|
|
49
|
-
# This will be available when running in Claude Code environment
|
|
50
|
-
# For now, we'll create a mock implementation
|
|
51
|
-
try:
|
|
52
|
-
# In actual Claude Code environment, this would be available
|
|
53
|
-
from claude_code import ask_user_question as AskUserQuestion # noqa: N812
|
|
54
|
-
|
|
55
|
-
self.AskUserQuestion = AskUserQuestion
|
|
56
|
-
except ImportError:
|
|
57
|
-
# Mock implementation for development/testing
|
|
58
|
-
self.AskUserQuestion = self._mock_ask_user_question
|
|
59
|
-
logger.warning("Using mock AskUserQuestion - not in Claude Code environment")
|
|
60
|
-
|
|
61
|
-
def _mock_ask_user_question(
|
|
62
|
-
self, questions: List[Dict[str, Any]], answers: Optional[Dict[str, str]] = None
|
|
63
|
-
) -> Dict[str, str]:
|
|
64
|
-
"""Mock implementation of AskUserQuestion for development."""
|
|
65
|
-
logger.info(f"Mock AskUserQuestion called with {len(questions)} questions")
|
|
66
|
-
|
|
67
|
-
# Return mock answers
|
|
68
|
-
mock_answers = {}
|
|
69
|
-
for q in questions:
|
|
70
|
-
if q.get("multiSelect", False):
|
|
71
|
-
# For multi-select, return first option
|
|
72
|
-
options = q.get("options", [])
|
|
73
|
-
if options:
|
|
74
|
-
mock_answers[q["question"]] = [options[0]["label"]]
|
|
75
|
-
else:
|
|
76
|
-
# For single select, return first option
|
|
77
|
-
options = q.get("options", [])
|
|
78
|
-
if options:
|
|
79
|
-
mock_answers[q["question"]] = options[0]["label"]
|
|
80
|
-
else:
|
|
81
|
-
mock_answers[q["question"]] = "Default answer"
|
|
82
|
-
|
|
83
|
-
return mock_answers
|
|
84
|
-
|
|
85
|
-
def convert_question_to_ask_user_format(self, question: Question) -> Dict[str, Any]:
|
|
86
|
-
"""
|
|
87
|
-
Convert a Question object to AskUserQuestion format.
|
|
88
|
-
|
|
89
|
-
Args:
|
|
90
|
-
question: Question to convert
|
|
91
|
-
|
|
92
|
-
Returns:
|
|
93
|
-
Dict: AskUserQuestion compatible format
|
|
94
|
-
"""
|
|
95
|
-
ask_user_q = {
|
|
96
|
-
"question": question.text,
|
|
97
|
-
"multiSelect": question.type == QuestionType.MULTI_CHOICE,
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
# Add header if available
|
|
101
|
-
if question.metadata.get("header"):
|
|
102
|
-
ask_user_q["header"] = question.metadata["header"]
|
|
103
|
-
|
|
104
|
-
# Convert options
|
|
105
|
-
if question.options:
|
|
106
|
-
options = []
|
|
107
|
-
for opt in question.options:
|
|
108
|
-
option_dict = {
|
|
109
|
-
"label": opt.label,
|
|
110
|
-
"description": (opt.description if self.config.enable_descriptions else None),
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
# Only include non-None descriptions
|
|
114
|
-
if option_dict["description"] is None:
|
|
115
|
-
del option_dict["description"]
|
|
116
|
-
|
|
117
|
-
options.append(option_dict)
|
|
118
|
-
|
|
119
|
-
ask_user_q["options"] = options
|
|
120
|
-
|
|
121
|
-
# Handle text input questions (convert to choice with text input)
|
|
122
|
-
elif question.type in [QuestionType.TEXT_INPUT, QuestionType.NUMBER_INPUT]:
|
|
123
|
-
ask_user_q["options"] = [
|
|
124
|
-
{
|
|
125
|
-
"label": "Enter value...",
|
|
126
|
-
"description": f"Type your {question.type.value}",
|
|
127
|
-
}
|
|
128
|
-
]
|
|
129
|
-
|
|
130
|
-
# Handle boolean questions
|
|
131
|
-
elif question.type == QuestionType.BOOLEAN:
|
|
132
|
-
ask_user_q["options"] = [
|
|
133
|
-
{"label": "Yes", "description": "Confirm or accept"},
|
|
134
|
-
{"label": "No", "description": "Decline or reject"},
|
|
135
|
-
]
|
|
136
|
-
|
|
137
|
-
# Add validation metadata
|
|
138
|
-
if question.validation and question.validation.required:
|
|
139
|
-
ask_user_q["required"] = True
|
|
140
|
-
|
|
141
|
-
return ask_user_q
|
|
142
|
-
|
|
143
|
-
def process_ask_user_response(self, question: Question, response_value: Union[str, List[str]]) -> Any:
|
|
144
|
-
"""
|
|
145
|
-
Process AskUserQuestion response back to our expected format.
|
|
146
|
-
|
|
147
|
-
Args:
|
|
148
|
-
question: Original question
|
|
149
|
-
response_value: Response from AskUserQuestion
|
|
150
|
-
|
|
151
|
-
Returns:
|
|
152
|
-
Processed response value in our expected format
|
|
153
|
-
"""
|
|
154
|
-
# Handle multi-select responses
|
|
155
|
-
if isinstance(response_value, list) and question.type == QuestionType.MULTI_CHOICE:
|
|
156
|
-
# Convert labels back to values
|
|
157
|
-
selected_values = []
|
|
158
|
-
for label in response_value:
|
|
159
|
-
for option in question.options:
|
|
160
|
-
if option.label == label:
|
|
161
|
-
selected_values.append(option.value)
|
|
162
|
-
break
|
|
163
|
-
return selected_values
|
|
164
|
-
|
|
165
|
-
# Handle single-select responses
|
|
166
|
-
elif isinstance(response_value, str):
|
|
167
|
-
# For choice questions, convert label back to value
|
|
168
|
-
if question.options:
|
|
169
|
-
for option in question.options:
|
|
170
|
-
if option.label == response_value:
|
|
171
|
-
return option.value
|
|
172
|
-
|
|
173
|
-
# For text input questions, return as-is
|
|
174
|
-
elif question.type in [QuestionType.TEXT_INPUT, QuestionType.NUMBER_INPUT]:
|
|
175
|
-
# Convert number input to appropriate type
|
|
176
|
-
if question.type == QuestionType.NUMBER_INPUT:
|
|
177
|
-
try:
|
|
178
|
-
return int(response_value)
|
|
179
|
-
except ValueError:
|
|
180
|
-
try:
|
|
181
|
-
return float(response_value)
|
|
182
|
-
except ValueError:
|
|
183
|
-
return response_value # Keep as string if conversion fails
|
|
184
|
-
return response_value
|
|
185
|
-
|
|
186
|
-
# For boolean questions
|
|
187
|
-
elif question.type == QuestionType.BOOLEAN:
|
|
188
|
-
return response_value.lower() in ["yes", "y", "true", "1"]
|
|
189
|
-
|
|
190
|
-
return response_value
|
|
191
|
-
|
|
192
|
-
def ask_question(self, question: Question, context: Optional[Dict[str, Any]] = None) -> UserResponse:
|
|
193
|
-
"""
|
|
194
|
-
Ask a single question using AskUserQuestion.
|
|
195
|
-
|
|
196
|
-
Args:
|
|
197
|
-
question: Question to ask
|
|
198
|
-
context: Current context for conditional questions
|
|
199
|
-
|
|
200
|
-
Returns:
|
|
201
|
-
UserResponse: The user's response
|
|
202
|
-
"""
|
|
203
|
-
# Check if question should be asked based on conditional logic
|
|
204
|
-
if question.conditional_on and context:
|
|
205
|
-
should_ask = self._evaluate_condition(question.conditional_on, context)
|
|
206
|
-
if not should_ask:
|
|
207
|
-
# Return default response or skip
|
|
208
|
-
return UserResponse(
|
|
209
|
-
question_id=question.id,
|
|
210
|
-
value=question.default_value,
|
|
211
|
-
metadata={"skipped": True, "reason": "conditional_not_met"},
|
|
212
|
-
)
|
|
213
|
-
|
|
214
|
-
# Convert to AskUserQuestion format
|
|
215
|
-
ask_user_q = self.convert_question_to_ask_user_format(question)
|
|
216
|
-
|
|
217
|
-
# Ask the question
|
|
218
|
-
try:
|
|
219
|
-
raw_response = self.AskUserQuestion([ask_user_q])
|
|
220
|
-
response_value = raw_response.get(ask_user_q["question"])
|
|
221
|
-
|
|
222
|
-
# Validate response
|
|
223
|
-
if question.validation:
|
|
224
|
-
validation_result = self._validate_response(response_value, question.validation)
|
|
225
|
-
if not validation_result.is_valid:
|
|
226
|
-
raise ValueError(f"Invalid response: {validation_result.error}")
|
|
227
|
-
|
|
228
|
-
# Process response
|
|
229
|
-
processed_value = self.process_ask_user_response(question, response_value)
|
|
230
|
-
|
|
231
|
-
return UserResponse(
|
|
232
|
-
question_id=question.id,
|
|
233
|
-
value=processed_value,
|
|
234
|
-
metadata={"source": "ask_user_question", "raw_response": raw_response},
|
|
235
|
-
)
|
|
236
|
-
|
|
237
|
-
except Exception as e:
|
|
238
|
-
logger.error(f"Error asking question {question.id}: {e}")
|
|
239
|
-
# Return default value on error
|
|
240
|
-
return UserResponse(
|
|
241
|
-
question_id=question.id,
|
|
242
|
-
value=question.default_value,
|
|
243
|
-
metadata={"error": str(e), "fallback": True},
|
|
244
|
-
)
|
|
245
|
-
|
|
246
|
-
def ask_question_batch(
|
|
247
|
-
self, questions: List[Question], context: Optional[Dict[str, Any]] = None
|
|
248
|
-
) -> Dict[str, UserResponse]:
|
|
249
|
-
"""
|
|
250
|
-
Ask multiple questions in sequence using AskUserQuestion.
|
|
251
|
-
|
|
252
|
-
Args:
|
|
253
|
-
questions: List of questions to ask
|
|
254
|
-
context: Current context for conditional questions
|
|
255
|
-
|
|
256
|
-
Returns:
|
|
257
|
-
Dict[str, UserResponse]: All user responses
|
|
258
|
-
"""
|
|
259
|
-
if context is None:
|
|
260
|
-
context = {}
|
|
261
|
-
|
|
262
|
-
responses = {}
|
|
263
|
-
|
|
264
|
-
for question in questions:
|
|
265
|
-
# Check if question already has response in context
|
|
266
|
-
if question.id in context:
|
|
267
|
-
responses[question.id] = UserResponse(
|
|
268
|
-
question_id=question.id,
|
|
269
|
-
value=context[question.id],
|
|
270
|
-
metadata={"source": "context"},
|
|
271
|
-
)
|
|
272
|
-
continue
|
|
273
|
-
|
|
274
|
-
# Ask the question
|
|
275
|
-
response = self.ask_question(question, context)
|
|
276
|
-
responses[question.id] = response
|
|
277
|
-
|
|
278
|
-
# Update context for subsequent questions
|
|
279
|
-
if not response.metadata.get("skipped"):
|
|
280
|
-
context[question.id] = response.value
|
|
281
|
-
|
|
282
|
-
return responses
|
|
283
|
-
|
|
284
|
-
def _evaluate_condition(self, condition: Dict[str, Any], context: Dict[str, Any]) -> bool:
|
|
285
|
-
"""Evaluate conditional logic for questions."""
|
|
286
|
-
if not self.config.enable_conditional:
|
|
287
|
-
return True
|
|
288
|
-
|
|
289
|
-
for key, expected in condition.items():
|
|
290
|
-
if key not in context:
|
|
291
|
-
return False
|
|
292
|
-
|
|
293
|
-
actual = context[key]
|
|
294
|
-
if isinstance(expected, list):
|
|
295
|
-
if actual not in expected:
|
|
296
|
-
return False
|
|
297
|
-
elif actual != expected:
|
|
298
|
-
return False
|
|
299
|
-
|
|
300
|
-
return True
|
|
301
|
-
|
|
302
|
-
def _validate_response(self, value: Any, validation) -> "ValidationResult":
|
|
303
|
-
"""Validate a response value."""
|
|
304
|
-
# This would integrate with the validation system
|
|
305
|
-
# For now, return a simple validation result
|
|
306
|
-
return ValidationResult(is_valid=True, error=None)
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
@dataclass
|
|
310
|
-
class ValidationResult:
|
|
311
|
-
"""Result of response validation."""
|
|
312
|
-
|
|
313
|
-
is_valid: bool
|
|
314
|
-
error: Optional[str] = None
|
|
315
|
-
warnings: List[str] = field(default_factory=list)
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
# Monkey patch BatchQuestionsManager to use AskUserQuestion integration
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
def enhance_batch_questions_manager():
|
|
322
|
-
"""Enhance BatchQuestionsManager with AskUserQuestion integration."""
|
|
323
|
-
|
|
324
|
-
def execute_batch_with_ask_user(self, batch, context=None):
|
|
325
|
-
"""Execute batch using AskUserQuestion integration."""
|
|
326
|
-
if context is None:
|
|
327
|
-
context = {}
|
|
328
|
-
|
|
329
|
-
integrator = AskUserQuestionIntegrator()
|
|
330
|
-
questions = self.filter_questions(batch, context)
|
|
331
|
-
return integrator.ask_question_batch(questions, context)
|
|
332
|
-
|
|
333
|
-
# Patch the method
|
|
334
|
-
BatchQuestionsManager.execute_batch = execute_batch_with_ask_user
|
|
335
|
-
|
|
336
|
-
logger.info("Enhanced BatchQuestionsManager with AskUserQuestion integration")
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
# Auto-enhance when module is imported
|
|
340
|
-
enhance_batch_questions_manager()
|