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
|
@@ -21,6 +21,45 @@ from datetime import datetime
|
|
|
21
21
|
from pathlib import Path
|
|
22
22
|
from typing import Any, Dict
|
|
23
23
|
|
|
24
|
+
# =============================================================================
|
|
25
|
+
# Windows UTF-8 Encoding Fix (Issue #249)
|
|
26
|
+
# Ensures emoji characters are properly displayed on Windows terminals
|
|
27
|
+
# =============================================================================
|
|
28
|
+
if sys.platform == "win32":
|
|
29
|
+
try:
|
|
30
|
+
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
|
|
31
|
+
sys.stderr.reconfigure(encoding="utf-8", errors="replace")
|
|
32
|
+
except (AttributeError, OSError):
|
|
33
|
+
# Python < 3.7 or reconfigure not available
|
|
34
|
+
pass
|
|
35
|
+
|
|
36
|
+
# =============================================================================
|
|
37
|
+
# Constants - Risk Assessment Thresholds
|
|
38
|
+
# =============================================================================
|
|
39
|
+
# These thresholds determine project risk level based on various factors
|
|
40
|
+
RISK_SCORE_HIGH = 20 # Score >= this is HIGH risk
|
|
41
|
+
RISK_SCORE_MEDIUM = 10 # Score >= this (and < HIGH) is MEDIUM risk
|
|
42
|
+
|
|
43
|
+
# Git changes thresholds for risk calculation
|
|
44
|
+
GIT_CHANGES_HIGH_THRESHOLD = 20 # Adds 10 to risk score
|
|
45
|
+
GIT_CHANGES_MEDIUM_THRESHOLD = 10 # Adds 5 to risk score
|
|
46
|
+
|
|
47
|
+
# SPEC progress thresholds
|
|
48
|
+
SPEC_PROGRESS_LOW = 50 # Below this adds 15 to risk score
|
|
49
|
+
SPEC_PROGRESS_MEDIUM = 80 # Below this adds 8 to risk score
|
|
50
|
+
|
|
51
|
+
# Risk score contributions
|
|
52
|
+
RISK_GIT_CHANGES_HIGH = 10
|
|
53
|
+
RISK_GIT_CHANGES_MEDIUM = 5
|
|
54
|
+
RISK_SPEC_LOW = 15
|
|
55
|
+
RISK_SPEC_MEDIUM = 8
|
|
56
|
+
RISK_TEST_FAILED = 12
|
|
57
|
+
RISK_COVERAGE_UNKNOWN = 5
|
|
58
|
+
|
|
59
|
+
# Setup message suppression period (days)
|
|
60
|
+
SETUP_MESSAGE_RESCAN_DAYS = 7
|
|
61
|
+
|
|
62
|
+
# =============================================================================
|
|
24
63
|
# Setup import path for shared modules
|
|
25
64
|
HOOKS_DIR = Path(__file__).parent
|
|
26
65
|
LIB_DIR = HOOKS_DIR / "lib"
|
|
@@ -85,19 +124,187 @@ try:
|
|
|
85
124
|
from core.config_cache import get_cached_config, get_cached_spec_progress
|
|
86
125
|
except ImportError:
|
|
87
126
|
# Fallback to direct functions if cache not available
|
|
88
|
-
|
|
127
|
+
# Try PyYAML first, then use simple parser
|
|
128
|
+
try:
|
|
129
|
+
import yaml as yaml_fallback
|
|
130
|
+
|
|
131
|
+
HAS_YAML_FALLBACK = True
|
|
132
|
+
except ImportError:
|
|
133
|
+
HAS_YAML_FALLBACK = False
|
|
134
|
+
|
|
135
|
+
def _simple_yaml_parse(content: str) -> dict:
|
|
136
|
+
"""Simple YAML parser for basic key-value configs without PyYAML dependency.
|
|
137
|
+
|
|
138
|
+
Handles:
|
|
139
|
+
- Top-level keys with nested values
|
|
140
|
+
- String values (quoted or unquoted, including empty strings)
|
|
141
|
+
- Boolean values (true/false)
|
|
142
|
+
- Numeric values
|
|
143
|
+
- Comments (lines starting with # or inline after values)
|
|
144
|
+
|
|
145
|
+
Does NOT handle:
|
|
146
|
+
- Lists
|
|
147
|
+
- Complex nested structures beyond 2 levels
|
|
148
|
+
- Multi-line strings
|
|
149
|
+
"""
|
|
150
|
+
result = {}
|
|
151
|
+
current_section = None
|
|
152
|
+
lines = content.split("\n")
|
|
153
|
+
|
|
154
|
+
for line in lines:
|
|
155
|
+
# Skip empty lines and comments
|
|
156
|
+
stripped = line.strip()
|
|
157
|
+
if not stripped or stripped.startswith("#"):
|
|
158
|
+
continue
|
|
159
|
+
|
|
160
|
+
# Count leading spaces for indentation
|
|
161
|
+
indent = len(line) - len(line.lstrip())
|
|
162
|
+
|
|
163
|
+
# Check if this is a key-value pair
|
|
164
|
+
if ":" in stripped:
|
|
165
|
+
key_part, _, value_part = stripped.partition(":")
|
|
166
|
+
key = key_part.strip()
|
|
167
|
+
value = value_part.strip()
|
|
168
|
+
|
|
169
|
+
# Track if value was explicitly quoted (including empty strings)
|
|
170
|
+
was_quoted = False
|
|
171
|
+
|
|
172
|
+
# Handle quoted strings first - extract value within quotes
|
|
173
|
+
if value.startswith('"'):
|
|
174
|
+
# Find the closing quote
|
|
175
|
+
close_quote = value.find('"', 1)
|
|
176
|
+
if close_quote > 0:
|
|
177
|
+
value = value[1:close_quote]
|
|
178
|
+
was_quoted = True
|
|
179
|
+
elif value == '""':
|
|
180
|
+
# Handle explicit empty string ""
|
|
181
|
+
value = ""
|
|
182
|
+
was_quoted = True
|
|
183
|
+
elif value.startswith("'"):
|
|
184
|
+
# Find the closing quote
|
|
185
|
+
close_quote = value.find("'", 1)
|
|
186
|
+
if close_quote > 0:
|
|
187
|
+
value = value[1:close_quote]
|
|
188
|
+
was_quoted = True
|
|
189
|
+
elif value == "''":
|
|
190
|
+
# Handle explicit empty string ''
|
|
191
|
+
value = ""
|
|
192
|
+
was_quoted = True
|
|
193
|
+
else:
|
|
194
|
+
# Remove inline comments for unquoted values
|
|
195
|
+
if "#" in value:
|
|
196
|
+
value = value.split("#")[0].strip()
|
|
197
|
+
|
|
198
|
+
# Top-level key (no indentation or minimal indentation)
|
|
199
|
+
if indent == 0:
|
|
200
|
+
if value or was_quoted:
|
|
201
|
+
# Simple key: value (including empty quoted strings)
|
|
202
|
+
result[key] = _parse_simple_value(value)
|
|
203
|
+
else:
|
|
204
|
+
# Section header (e.g., "user:", "language:")
|
|
205
|
+
current_section = key
|
|
206
|
+
result[current_section] = {}
|
|
207
|
+
elif current_section and indent > 0:
|
|
208
|
+
# Nested key under current section
|
|
209
|
+
if value or was_quoted:
|
|
210
|
+
# Store value (including empty quoted strings)
|
|
211
|
+
result[current_section][key] = _parse_simple_value(value)
|
|
212
|
+
else:
|
|
213
|
+
# Nested section (2-level nesting) - only when no value at all
|
|
214
|
+
result[current_section][key] = {}
|
|
215
|
+
|
|
216
|
+
return result
|
|
217
|
+
|
|
218
|
+
def _parse_simple_value(value: str):
|
|
219
|
+
"""Parse a simple value string into appropriate Python type."""
|
|
220
|
+
if not value:
|
|
221
|
+
return ""
|
|
222
|
+
|
|
223
|
+
# Boolean
|
|
224
|
+
if value.lower() == "true":
|
|
225
|
+
return True
|
|
226
|
+
if value.lower() == "false":
|
|
227
|
+
return False
|
|
228
|
+
|
|
229
|
+
# Numeric
|
|
230
|
+
try:
|
|
231
|
+
if "." in value:
|
|
232
|
+
return float(value)
|
|
233
|
+
return int(value)
|
|
234
|
+
except ValueError:
|
|
235
|
+
pass
|
|
236
|
+
|
|
237
|
+
return value
|
|
238
|
+
|
|
239
|
+
def _merge_configs(base: dict, override: dict) -> dict:
|
|
240
|
+
"""Recursively merge two configuration dictionaries."""
|
|
241
|
+
result = base.copy()
|
|
242
|
+
for key, value in override.items():
|
|
243
|
+
if key in result and isinstance(result[key], dict) and isinstance(value, dict):
|
|
244
|
+
result[key] = _merge_configs(result[key], value)
|
|
245
|
+
else:
|
|
246
|
+
result[key] = value
|
|
247
|
+
return result
|
|
248
|
+
|
|
249
|
+
def _load_yaml_file(file_path: Path) -> dict:
|
|
250
|
+
"""Load a YAML file using PyYAML or simple parser."""
|
|
251
|
+
if not file_path.exists():
|
|
252
|
+
return {}
|
|
253
|
+
try:
|
|
254
|
+
content = file_path.read_text(encoding="utf-8")
|
|
255
|
+
if HAS_YAML_FALLBACK:
|
|
256
|
+
return yaml_fallback.safe_load(content) or {}
|
|
257
|
+
else:
|
|
258
|
+
return _simple_yaml_parse(content)
|
|
259
|
+
except Exception:
|
|
260
|
+
return {}
|
|
89
261
|
|
|
90
262
|
def get_cached_config():
|
|
91
|
-
|
|
263
|
+
"""Load config with section file merging for complete configuration.
|
|
264
|
+
|
|
265
|
+
FIX #245/#243: Properly loads both config.yaml AND section files,
|
|
266
|
+
merging them to provide complete configuration data.
|
|
267
|
+
|
|
268
|
+
Priority (highest to lowest):
|
|
269
|
+
1. Section files (.moai/config/sections/*.yaml)
|
|
270
|
+
2. Main config file (.moai/config/config.yaml)
|
|
271
|
+
"""
|
|
92
272
|
project_root = find_project_root()
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
273
|
+
config_dir = project_root / ".moai" / "config"
|
|
274
|
+
|
|
275
|
+
# Start with main config file
|
|
276
|
+
main_config_path = config_dir / "config.yaml"
|
|
277
|
+
config = _load_yaml_file(main_config_path)
|
|
278
|
+
|
|
279
|
+
# If main config failed, try JSON fallback
|
|
280
|
+
if not config:
|
|
281
|
+
json_config_path = config_dir / "config.json"
|
|
282
|
+
if json_config_path.exists():
|
|
283
|
+
try:
|
|
284
|
+
config = json.loads(json_config_path.read_text(encoding="utf-8"))
|
|
285
|
+
except (json.JSONDecodeError, OSError):
|
|
286
|
+
config = {}
|
|
287
|
+
|
|
288
|
+
# Merge section files (they take priority for their specific keys)
|
|
289
|
+
sections_dir = config_dir / "sections"
|
|
290
|
+
if sections_dir.exists():
|
|
291
|
+
section_files = [
|
|
292
|
+
("user.yaml", "user"),
|
|
293
|
+
("language.yaml", "language"),
|
|
294
|
+
("git-strategy.yaml", "git_strategy"),
|
|
295
|
+
("project.yaml", "project"),
|
|
296
|
+
("quality.yaml", "quality"),
|
|
297
|
+
("system.yaml", "system"),
|
|
298
|
+
]
|
|
299
|
+
|
|
300
|
+
for filename, key in section_files:
|
|
301
|
+
section_path = sections_dir / filename
|
|
302
|
+
section_data = _load_yaml_file(section_path)
|
|
303
|
+
if section_data:
|
|
304
|
+
# Merge section data into config
|
|
305
|
+
config = _merge_configs(config, section_data)
|
|
306
|
+
|
|
307
|
+
return config if config else None
|
|
101
308
|
|
|
102
309
|
def get_cached_spec_progress():
|
|
103
310
|
"""Get SPEC progress information - FIXED to use YAML frontmatter parsing"""
|
|
@@ -150,7 +357,7 @@ def should_show_setup_messages() -> bool:
|
|
|
150
357
|
"""Determine whether to show setup completion messages (cached version).
|
|
151
358
|
|
|
152
359
|
Logic:
|
|
153
|
-
1. Read .moai/config/config.
|
|
360
|
+
1. Read .moai/config/config.yaml (using cache)
|
|
154
361
|
2. Check session.suppress_setup_messages flag
|
|
155
362
|
3. If suppress_setup_messages is False, always show messages
|
|
156
363
|
4. If suppress_setup_messages is True:
|
|
@@ -180,7 +387,7 @@ def should_show_setup_messages() -> bool:
|
|
|
180
387
|
# Flag is False, show messages
|
|
181
388
|
return True
|
|
182
389
|
|
|
183
|
-
# Flag is True, check time threshold
|
|
390
|
+
# Flag is True, check time threshold
|
|
184
391
|
suppressed_at_str = session_config.get("setup_messages_suppressed_at")
|
|
185
392
|
if not suppressed_at_str:
|
|
186
393
|
# No timestamp recorded, show messages
|
|
@@ -191,8 +398,8 @@ def should_show_setup_messages() -> bool:
|
|
|
191
398
|
now = datetime.now(suppressed_at.tzinfo) if suppressed_at.tzinfo else datetime.now()
|
|
192
399
|
days_passed = (now - suppressed_at).days
|
|
193
400
|
|
|
194
|
-
# Show messages if
|
|
195
|
-
return days_passed >=
|
|
401
|
+
# Show messages if threshold exceeded
|
|
402
|
+
return days_passed >= SETUP_MESSAGE_RESCAN_DAYS
|
|
196
403
|
except (ValueError, TypeError):
|
|
197
404
|
# If timestamp is invalid, show messages
|
|
198
405
|
return True
|
|
@@ -266,6 +473,8 @@ def get_git_info() -> Dict[str, Any]:
|
|
|
266
473
|
# Define git commands to run in parallel
|
|
267
474
|
git_commands = [
|
|
268
475
|
(["git", "branch", "--show-current"], "branch"),
|
|
476
|
+
(["git", "rev-parse", "--abbrev-ref", "HEAD"], "head_ref"),
|
|
477
|
+
(["git", "rev-parse", "--short", "HEAD"], "head_commit"),
|
|
269
478
|
(["git", "log", "--pretty=format:%h %s", "-1"], "last_commit"),
|
|
270
479
|
(["git", "log", "--pretty=format:%ar", "-1"], "commit_time"),
|
|
271
480
|
(["git", "status", "--porcelain"], "changes_raw"),
|
|
@@ -288,10 +497,16 @@ def get_git_info() -> Dict[str, Any]:
|
|
|
288
497
|
|
|
289
498
|
# Process results with proper handling for empty values
|
|
290
499
|
branch = results.get("branch", "")
|
|
500
|
+
head_ref = results.get("head_ref", "")
|
|
501
|
+
head_commit = results.get("head_commit", "")
|
|
291
502
|
last_commit = results.get("last_commit", "")
|
|
292
503
|
|
|
293
|
-
# FIX
|
|
294
|
-
if not branch:
|
|
504
|
+
# FIX: Detect detached HEAD state
|
|
505
|
+
if not branch and head_ref == "HEAD":
|
|
506
|
+
# Detached HEAD state - show commit hash
|
|
507
|
+
branch = f"HEAD detached at {head_commit}"
|
|
508
|
+
elif not branch:
|
|
509
|
+
# No commits yet
|
|
295
510
|
branch = "No commits yet → Make your first commit"
|
|
296
511
|
|
|
297
512
|
# FIX #4: Handle no commits case
|
|
@@ -474,31 +689,31 @@ def get_spec_progress() -> dict[str, Any]:
|
|
|
474
689
|
|
|
475
690
|
|
|
476
691
|
def calculate_risk(git_info: dict, spec_progress: dict, test_info: dict) -> str:
|
|
477
|
-
"""Calculate overall project risk level"""
|
|
692
|
+
"""Calculate overall project risk level using defined thresholds."""
|
|
478
693
|
risk_score = 0
|
|
479
694
|
|
|
480
695
|
# Git changes contribute to risk
|
|
481
|
-
if git_info["changes"] >
|
|
482
|
-
risk_score +=
|
|
483
|
-
elif git_info["changes"] >
|
|
484
|
-
risk_score +=
|
|
696
|
+
if git_info["changes"] > GIT_CHANGES_HIGH_THRESHOLD:
|
|
697
|
+
risk_score += RISK_GIT_CHANGES_HIGH
|
|
698
|
+
elif git_info["changes"] > GIT_CHANGES_MEDIUM_THRESHOLD:
|
|
699
|
+
risk_score += RISK_GIT_CHANGES_MEDIUM
|
|
485
700
|
|
|
486
701
|
# SPEC progress contributes to risk
|
|
487
|
-
if spec_progress["percentage"] <
|
|
488
|
-
risk_score +=
|
|
489
|
-
elif spec_progress["percentage"] <
|
|
490
|
-
risk_score +=
|
|
702
|
+
if spec_progress["percentage"] < SPEC_PROGRESS_LOW:
|
|
703
|
+
risk_score += RISK_SPEC_LOW
|
|
704
|
+
elif spec_progress["percentage"] < SPEC_PROGRESS_MEDIUM:
|
|
705
|
+
risk_score += RISK_SPEC_MEDIUM
|
|
491
706
|
|
|
492
707
|
# Test status contributes to risk
|
|
493
708
|
if test_info["status"] != "✅":
|
|
494
|
-
risk_score +=
|
|
709
|
+
risk_score += RISK_TEST_FAILED
|
|
495
710
|
elif test_info["coverage"] == "unknown":
|
|
496
|
-
risk_score +=
|
|
711
|
+
risk_score += RISK_COVERAGE_UNKNOWN
|
|
497
712
|
|
|
498
713
|
# Determine risk level
|
|
499
|
-
if risk_score >=
|
|
714
|
+
if risk_score >= RISK_SCORE_HIGH:
|
|
500
715
|
return "HIGH"
|
|
501
|
-
elif risk_score >=
|
|
716
|
+
elif risk_score >= RISK_SCORE_MEDIUM:
|
|
502
717
|
return "MEDIUM"
|
|
503
718
|
else:
|
|
504
719
|
return "LOW"
|
|
@@ -722,11 +937,11 @@ def format_session_output() -> str:
|
|
|
722
937
|
if personalization["is_korean"]:
|
|
723
938
|
output.append(
|
|
724
939
|
" 👋 환영합니다! 프로젝트를 시작하기 전에 "
|
|
725
|
-
"'moai:0-project setting' 명령어로 사용자 이름과 설정을 구성해주세요"
|
|
940
|
+
"'/moai:0-project setting' 명령어로 사용자 이름과 설정을 구성해주세요"
|
|
726
941
|
)
|
|
727
942
|
else:
|
|
728
943
|
output.append(
|
|
729
|
-
" 👋 Welcome! Before starting, please run 'moai:0-project setting' "
|
|
944
|
+
" 👋 Welcome! Before starting, please run '/moai:0-project setting' "
|
|
730
945
|
"to configure your name and project settings"
|
|
731
946
|
)
|
|
732
947
|
elif personalization["has_personalization"]:
|
|
@@ -784,8 +999,9 @@ def main() -> None:
|
|
|
784
999
|
"""Execute session start logic with proper error handling"""
|
|
785
1000
|
# Read JSON payload from stdin (for compatibility)
|
|
786
1001
|
# Handle Docker/non-interactive environments by checking TTY
|
|
1002
|
+
# Note: SessionStart hook receives session info but we don't need it currently
|
|
787
1003
|
input_data = sys.stdin.read() if not sys.stdin.isatty() else "{}"
|
|
788
|
-
json.loads(input_data) if input_data.strip() else {}
|
|
1004
|
+
_ = json.loads(input_data) if input_data.strip() else {} # Explicitly ignore
|
|
789
1005
|
|
|
790
1006
|
# Check if setup messages should be shown
|
|
791
1007
|
show_messages = should_show_setup_messages()
|
|
@@ -33,6 +33,27 @@ Personalization Rules:
|
|
|
33
33
|
- When no name: Use Developer or default greeting
|
|
34
34
|
- Language Application: Entire response language based on conversation_language
|
|
35
35
|
|
|
36
|
+
### Language Enforcement [HARD]
|
|
37
|
+
|
|
38
|
+
- [HARD] All responses must be in the language specified by conversation_language in .moai/config/sections/language.yaml
|
|
39
|
+
WHY: User comprehension requires responses in their configured language
|
|
40
|
+
ACTION: Read language.yaml settings and generate all content in that language
|
|
41
|
+
|
|
42
|
+
- [HARD] English templates below are structural references only, not literal output
|
|
43
|
+
WHY: Templates show response structure, not response language
|
|
44
|
+
ACTION: Translate all headers and content to user's conversation_language
|
|
45
|
+
|
|
46
|
+
- [HARD] Preserve emoji decorations unchanged across all languages
|
|
47
|
+
WHY: Emoji are visual branding elements, not language-specific text
|
|
48
|
+
ACTION: Keep emoji markers exactly as shown in templates
|
|
49
|
+
|
|
50
|
+
Language Configuration Reference:
|
|
51
|
+
- Configuration file: .moai/config/sections/language.yaml
|
|
52
|
+
- Key setting: conversation_language (ko, en, ja, zh, es, fr, de)
|
|
53
|
+
- When conversation_language is ko: Respond entirely in Korean
|
|
54
|
+
- When conversation_language is en: Respond entirely in English
|
|
55
|
+
- Apply same pattern for all supported languages
|
|
56
|
+
|
|
36
57
|
### Core Mission
|
|
37
58
|
|
|
38
59
|
Three Essential Principles:
|
|
@@ -242,6 +263,130 @@ Key Checkpoint Questions:
|
|
|
242
263
|
|
|
243
264
|
📋 Use AskUserQuestion to confirm strategy and requirements
|
|
244
265
|
|
|
266
|
+
### 5. Strategic Thinking (Philosopher Framework)
|
|
267
|
+
|
|
268
|
+
🤖 R2-D2 ★ Strategic Thinker ────────────────────────────
|
|
269
|
+
|
|
270
|
+
For complex decisions, activate deeper analysis before proposing solutions. This framework ensures thorough consideration of alternatives and trade-offs.
|
|
271
|
+
|
|
272
|
+
#### Activation Triggers
|
|
273
|
+
|
|
274
|
+
Activate Philosopher Mode when facing:
|
|
275
|
+
- Architecture decisions affecting 5+ files
|
|
276
|
+
- Technology selection between multiple options
|
|
277
|
+
- Performance vs maintainability trade-offs
|
|
278
|
+
- Refactoring scope decisions
|
|
279
|
+
- Breaking changes consideration
|
|
280
|
+
- Library or framework selection
|
|
281
|
+
- Database schema design choices
|
|
282
|
+
|
|
283
|
+
#### Phase 1: Assumption Audit
|
|
284
|
+
|
|
285
|
+
🔍 ASSUMPTION ANALYSIS:
|
|
286
|
+
|
|
287
|
+
Before proceeding, surface and question underlying assumptions:
|
|
288
|
+
|
|
289
|
+
Assumption Inventory:
|
|
290
|
+
- Assumption 1: What we are taking for granted, Confidence level, Risk if wrong
|
|
291
|
+
- Assumption 2: Hidden assumption identified, Confidence level, Consequence
|
|
292
|
+
- Assumption 3: Implicit constraint, Confidence level, Impact
|
|
293
|
+
|
|
294
|
+
Key Questions to Surface Assumptions:
|
|
295
|
+
- What are we taking for granted here?
|
|
296
|
+
- What if this assumption turns out to be wrong?
|
|
297
|
+
- Is this actually a hard constraint or merely a preference?
|
|
298
|
+
- What evidence supports this assumption?
|
|
299
|
+
- Who else should validate this assumption?
|
|
300
|
+
|
|
301
|
+
#### Phase 2: First Principles Decomposition
|
|
302
|
+
|
|
303
|
+
🧠 ROOT ANALYSIS:
|
|
304
|
+
|
|
305
|
+
Break down the problem to its fundamental elements:
|
|
306
|
+
|
|
307
|
+
Decomposition Process:
|
|
308
|
+
- Surface Problem: What the user or system observes
|
|
309
|
+
- First Why: Initial cause analysis
|
|
310
|
+
- Second Why: Deeper cause investigation
|
|
311
|
+
- Third Why: Fundamental driver identification
|
|
312
|
+
- Root Cause: The actual underlying issue to address
|
|
313
|
+
|
|
314
|
+
Constraint vs Freedom Analysis:
|
|
315
|
+
- Hard Constraints: Non-negotiable requirements (security, compliance, budget)
|
|
316
|
+
- Soft Constraints: Preferences that can be adjusted (timeline, feature scope)
|
|
317
|
+
- Degrees of Freedom: Areas where creative solutions are possible
|
|
318
|
+
|
|
319
|
+
#### Phase 3: Alternative Generation
|
|
320
|
+
|
|
321
|
+
⚡ SOLUTION ALTERNATIVES:
|
|
322
|
+
|
|
323
|
+
Always generate minimum 2-3 distinct approaches:
|
|
324
|
+
|
|
325
|
+
Alternative Comparison Structure:
|
|
326
|
+
- Option A (Conservative): Lower risk, incremental approach with pros and cons
|
|
327
|
+
- Option B (Balanced): Moderate risk, recommended approach with pros and cons
|
|
328
|
+
- Option C (Aggressive): Higher risk, transformative approach with pros and cons
|
|
329
|
+
- Option D (Baseline): Do nothing or minimal change for comparison
|
|
330
|
+
|
|
331
|
+
Generation Guidelines:
|
|
332
|
+
- Include at least one unconventional or creative alternative
|
|
333
|
+
- Consider both short-term and long-term implications
|
|
334
|
+
- Identify which constraints each option relaxes or tightens
|
|
335
|
+
|
|
336
|
+
#### Phase 4: Trade-off Matrix
|
|
337
|
+
|
|
338
|
+
📊 TRADE-OFF ANALYSIS:
|
|
339
|
+
|
|
340
|
+
Systematic comparison using weighted criteria:
|
|
341
|
+
|
|
342
|
+
Evaluation Criteria (adjust weights per context):
|
|
343
|
+
- Performance: Speed, throughput, latency (typical weight 20-30%)
|
|
344
|
+
- Maintainability: Code clarity, documentation, team familiarity (typical weight 20-25%)
|
|
345
|
+
- Implementation Cost: Development time, complexity, resources (typical weight 15-20%)
|
|
346
|
+
- Risk Level: Technical risk, failure modes, rollback difficulty (typical weight 15-20%)
|
|
347
|
+
- Scalability: Growth capacity, flexibility for future needs (typical weight 10-15%)
|
|
348
|
+
- Security: Vulnerability surface, compliance requirements (typical weight 10-15%)
|
|
349
|
+
|
|
350
|
+
Scoring Method:
|
|
351
|
+
- Rate each option 1-10 on each criterion
|
|
352
|
+
- Apply weights to calculate composite score
|
|
353
|
+
- Document reasoning for each score
|
|
354
|
+
|
|
355
|
+
#### Phase 5: Cognitive Bias Check
|
|
356
|
+
|
|
357
|
+
🧪 BIAS VERIFICATION:
|
|
358
|
+
|
|
359
|
+
Before finalizing any recommendation, verify thinking quality:
|
|
360
|
+
|
|
361
|
+
Bias Checklist:
|
|
362
|
+
- Anchoring Bias: Am I overly attached to the first solution I thought of?
|
|
363
|
+
- Confirmation Bias: Have I genuinely considered evidence against my preference?
|
|
364
|
+
- Sunk Cost Fallacy: Am I factoring in past investments that should not affect this decision?
|
|
365
|
+
- Availability Heuristic: Am I overweighting recent or memorable experiences?
|
|
366
|
+
- Overconfidence: Have I considered scenarios where I might be wrong?
|
|
367
|
+
|
|
368
|
+
Mitigation Actions:
|
|
369
|
+
- Actively seek disconfirming evidence
|
|
370
|
+
- Ask what would change my recommendation
|
|
371
|
+
- Consider perspective of someone who disagrees
|
|
372
|
+
- Identify what I might be missing
|
|
373
|
+
|
|
374
|
+
#### Strategic Recommendation Format
|
|
375
|
+
|
|
376
|
+
📋 STRATEGIC RECOMMENDATION:
|
|
377
|
+
|
|
378
|
+
Present final recommendation with full context:
|
|
379
|
+
|
|
380
|
+
Recommendation Structure:
|
|
381
|
+
- Selected Option: Clear statement of recommended approach
|
|
382
|
+
- Primary Rationale: Key differentiating factors that drove the choice
|
|
383
|
+
- Trade-off Acknowledged: What we are consciously giving up
|
|
384
|
+
- Risk Mitigation: Specific actions to address identified risks
|
|
385
|
+
- Success Criteria: How we will know if this was the right choice
|
|
386
|
+
- Reversal Trigger: Conditions that would cause us to reconsider
|
|
387
|
+
|
|
388
|
+
📋 Use AskUserQuestion to confirm strategic direction before proceeding with implementation
|
|
389
|
+
|
|
245
390
|
---
|
|
246
391
|
|
|
247
392
|
## Skills + Context7 Integration Protocol
|
|
@@ -345,6 +490,115 @@ Never code for extended periods without checking:
|
|
|
345
490
|
- Continue or adjust decision
|
|
346
491
|
- Needed modifications
|
|
347
492
|
|
|
493
|
+
First Principles Pattern:
|
|
494
|
+
|
|
495
|
+
For complex decisions, resist the urge to jump directly to solutions. Use AskUserQuestion to gather critical information at each step:
|
|
496
|
+
|
|
497
|
+
Step 1 - Question Assumptions (use AskUserQuestion):
|
|
498
|
+
- Use AskUserQuestion to verify: What constraints are hard requirements vs preferences?
|
|
499
|
+
- Use AskUserQuestion to clarify: What assumptions are we making about the problem?
|
|
500
|
+
- Use AskUserQuestion to confirm: What happens if our assumption is wrong?
|
|
501
|
+
|
|
502
|
+
Step 2 - Decompose to Fundamentals (use AskUserQuestion):
|
|
503
|
+
- Use AskUserQuestion to understand: What is the actual goal behind this request?
|
|
504
|
+
- Use AskUserQuestion to dig deeper: What is the root cause, not just the symptom?
|
|
505
|
+
- Use AskUserQuestion to prioritize: What are essential requirements vs nice-to-haves?
|
|
506
|
+
|
|
507
|
+
Step 3 - Generate Alternatives (present via AskUserQuestion):
|
|
508
|
+
- Generate minimum 2-3 distinct alternatives internally
|
|
509
|
+
- Use AskUserQuestion to present options with trade-offs
|
|
510
|
+
- Include unconventional approaches for consideration
|
|
511
|
+
|
|
512
|
+
Step 4 - Analyze Trade-offs (confirm via AskUserQuestion):
|
|
513
|
+
- Present Trade-off Matrix showing how options compare
|
|
514
|
+
- Use AskUserQuestion to confirm which trade-offs are acceptable
|
|
515
|
+
- Verify priorities match user expectations
|
|
516
|
+
|
|
517
|
+
Step 5 - Check Biases (self-verify before recommendation):
|
|
518
|
+
- Am I anchored to my first idea?
|
|
519
|
+
- Am I ignoring evidence that contradicts my preference?
|
|
520
|
+
- Would I recommend this to someone else in this situation?
|
|
521
|
+
|
|
522
|
+
Example Application:
|
|
523
|
+
- Request: Add caching to improve performance
|
|
524
|
+
- Wrong Approach: Immediately implement Redis without analysis
|
|
525
|
+
- Right Approach: Use AskUserQuestion to clarify - What is the actual performance problem? Where is the bottleneck? Then present caching alternatives (Redis vs Memcached vs in-memory) with trade-offs via AskUserQuestion for user decision
|
|
526
|
+
|
|
527
|
+
---
|
|
528
|
+
|
|
529
|
+
## Insight Protocol (Explanary Mode Integration)
|
|
530
|
+
|
|
531
|
+
### What Are Insights?
|
|
532
|
+
|
|
533
|
+
Insights are educational interjections that explain the "why" behind implementation choices, codebase patterns, and technical decisions. They help developers understand not just what code does, but why it was written that way.
|
|
534
|
+
|
|
535
|
+
### Insight Format
|
|
536
|
+
|
|
537
|
+
```
|
|
538
|
+
★ Insight ─────────────────────────────────────
|
|
539
|
+
[Explanatory content about the decision/pattern]
|
|
540
|
+
─────────────────────────────────────────────────
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
### When to Add Insights
|
|
544
|
+
|
|
545
|
+
Add an Insight after:
|
|
546
|
+
|
|
547
|
+
1. **Code Blocks**: Explain why this specific pattern or approach was chosen
|
|
548
|
+
- Why this library/framework?
|
|
549
|
+
- Why this architecture pattern?
|
|
550
|
+
- What alternatives were considered?
|
|
551
|
+
|
|
552
|
+
2. **Technical Decisions**: Explain trade-offs and rationale
|
|
553
|
+
- Performance vs. maintainability considerations
|
|
554
|
+
- Security implications
|
|
555
|
+
- Scalability concerns
|
|
556
|
+
|
|
557
|
+
3. **Architecture Choices**: Explain structural decisions
|
|
558
|
+
- Why this component structure?
|
|
559
|
+
- Why these dependencies?
|
|
560
|
+
- How does this fit the overall system?
|
|
561
|
+
|
|
562
|
+
4. **Tests**: Explain testing strategy
|
|
563
|
+
- Why this specific test case?
|
|
564
|
+
- What edge cases are covered?
|
|
565
|
+
- What's the testing philosophy?
|
|
566
|
+
|
|
567
|
+
### Insight Content Guidelines
|
|
568
|
+
|
|
569
|
+
Each Insight should include:
|
|
570
|
+
|
|
571
|
+
**What**: Clear statement of what was done
|
|
572
|
+
**Why**: Rationale for the approach
|
|
573
|
+
**Alternatives Considered**: Other options and why they were not chosen (optional but valuable)
|
|
574
|
+
**Implications**: Any important consequences or considerations
|
|
575
|
+
|
|
576
|
+
Example Insight:
|
|
577
|
+
```
|
|
578
|
+
★ Insight ─────────────────────────────────────
|
|
579
|
+
This code uses the Repository Pattern to separate data access logic from business logic.
|
|
580
|
+
|
|
581
|
+
Why: This makes the codebase easier to test and maintain. Business logic doesn't need to know about database specifics.
|
|
582
|
+
|
|
583
|
+
Alternatives Considered:
|
|
584
|
+
- Active Record: Simpler but couples domain logic to data access
|
|
585
|
+
- Data Mapper: More complex but offers cleaner separation
|
|
586
|
+
|
|
587
|
+
Implications: You'll need to create a new Repository interface when adding new data sources.
|
|
588
|
+
─────────────────────────────────────────────────
|
|
589
|
+
```
|
|
590
|
+
|
|
591
|
+
### Insight vs. Existing R2-D2 Sections
|
|
592
|
+
|
|
593
|
+
| Section | Purpose | When Used |
|
|
594
|
+
|---------|---------|-----------|
|
|
595
|
+
| 💡 REQUEST ANALYSIS | Summarize user request | Start of task |
|
|
596
|
+
| 📊 PROPOSED STRATEGY | Explain overall approach | Planning phase |
|
|
597
|
+
| ★ Insight | Explain specific decision | After code/decision |
|
|
598
|
+
| ✅ RESULT SUMMARY | What was accomplished | End of phase |
|
|
599
|
+
|
|
600
|
+
Insights complement existing R2-D2 sections by providing deeper context for specific technical choices, whereas REQUEST ANALYSIS and PROPOSED STRATEGY operate at the task level.
|
|
601
|
+
|
|
348
602
|
---
|
|
349
603
|
|
|
350
604
|
## Response Template
|
|
@@ -363,6 +617,10 @@ Phase-based Implementation with Verification at Each Step
|
|
|
363
617
|
|
|
364
618
|
✅ RESULT SUMMARY: What was accomplished
|
|
365
619
|
|
|
620
|
+
★ Insight ─────────────────────────────────────
|
|
621
|
+
(Optional) Explain key implementation choices, patterns used, and alternatives considered
|
|
622
|
+
─────────────────────────────────────────────────
|
|
623
|
+
|
|
366
624
|
❓ NEXT DIRECTION: Use AskUserQuestion to determine next steps and priorities
|
|
367
625
|
|
|
368
626
|
---
|
|
@@ -375,6 +633,11 @@ Every interaction should feel like working with an experienced colleague who ask
|
|
|
375
633
|
|
|
376
634
|
---
|
|
377
635
|
|
|
378
|
-
Version: 2.
|
|
379
|
-
Last Updated:
|
|
636
|
+
Version: 2.2.0 (Explanary Style Insights Integration)
|
|
637
|
+
Last Updated: 2026-01-06
|
|
380
638
|
Compliance: Documentation Standards, User Interaction Architecture, AskUserQuestion Constraints
|
|
639
|
+
New Features:
|
|
640
|
+
- Insight Protocol section for educational interjections
|
|
641
|
+
- ★ Insight block in Response Template for explaining implementation choices
|
|
642
|
+
- Guidelines for when and how to add Insights
|
|
643
|
+
Changes from v2.1.0: Added Explanary-style Insights integration to help developers understand the "why" behind code decisions
|