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
moai_adk/cli/commands/init.py
CHANGED
|
@@ -200,7 +200,9 @@ def init(
|
|
|
200
200
|
# Always allow reinit (force mode by default)
|
|
201
201
|
is_reinit = initializer.is_initialized()
|
|
202
202
|
|
|
203
|
-
# Reinit mode:
|
|
203
|
+
# Reinit mode: update configuration files (v0.3.1+)
|
|
204
|
+
# As of v0.37.0, we use section YAML files (.moai/config/sections/)
|
|
205
|
+
# but still support legacy config.yaml and config.json for backward compatibility
|
|
204
206
|
if is_reinit:
|
|
205
207
|
# Migration: Remove old hook files (Issue #163)
|
|
206
208
|
old_hook_files = [
|
|
@@ -215,6 +217,7 @@ def init(
|
|
|
215
217
|
pass # Ignore removal failures
|
|
216
218
|
|
|
217
219
|
# Support both YAML (v0.32.5+) and JSON (legacy) config files
|
|
220
|
+
# New projects use section files; legacy projects may still have config.yaml/json
|
|
218
221
|
config_yaml_path = project_path / ".moai" / "config" / "config.yaml"
|
|
219
222
|
config_json_path = project_path / ".moai" / "config" / "config.json"
|
|
220
223
|
|
moai_adk/cli/commands/update.py
CHANGED
|
@@ -65,6 +65,7 @@ from moai_adk.core.migration.custom_element_scanner import create_custom_element
|
|
|
65
65
|
from moai_adk.core.migration.selective_restorer import create_selective_restorer
|
|
66
66
|
from moai_adk.core.migration.user_selection_ui import create_user_selection_ui
|
|
67
67
|
from moai_adk.core.template.processor import TemplateProcessor
|
|
68
|
+
from moai_adk.utils.common import reset_stdin
|
|
68
69
|
|
|
69
70
|
console = Console()
|
|
70
71
|
logger = logging.getLogger(__name__)
|
|
@@ -1500,15 +1501,14 @@ def _sync_templates(project_path: Path, force: bool = False, yes: bool = False)
|
|
|
1500
1501
|
backup_path = backup.create_backup()
|
|
1501
1502
|
console.print(f"💾 Created backup: {backup_path.name}")
|
|
1502
1503
|
|
|
1503
|
-
# Merge analysis using
|
|
1504
|
+
# Merge analysis using Pure Python semantic heuristics
|
|
1504
1505
|
try:
|
|
1505
1506
|
analyzer = MergeAnalyzer(project_path)
|
|
1506
1507
|
# Template source path from installed package
|
|
1507
1508
|
template_path = Path(__file__).parent.parent.parent / "templates"
|
|
1508
1509
|
|
|
1509
|
-
console.print("\n[cyan]🔍 Starting merge analysis
|
|
1510
|
-
console.print("[dim] Analyzing
|
|
1511
|
-
console.print("[dim] Please wait...[/dim]\n")
|
|
1510
|
+
console.print("\n[cyan]🔍 Starting merge analysis...[/cyan]")
|
|
1511
|
+
console.print("[dim] Analyzing templates with semantic heuristics.[/dim]\n")
|
|
1512
1512
|
analysis = analyzer.analyze_merge(backup_path, template_path)
|
|
1513
1513
|
|
|
1514
1514
|
# Ask user confirmation
|
|
@@ -1733,6 +1733,14 @@ def _build_template_context(
|
|
|
1733
1733
|
# Detect OS for cross-platform Hook path configuration
|
|
1734
1734
|
hook_project_dir = "%CLAUDE_PROJECT_DIR%" if platform.system() == "Windows" else "$CLAUDE_PROJECT_DIR"
|
|
1735
1735
|
|
|
1736
|
+
# Detect OS for cross-platform statusline command
|
|
1737
|
+
# Windows: Use python -m for better PATH compatibility
|
|
1738
|
+
# Unix: Use moai-adk directly (assumes installed via uv tool)
|
|
1739
|
+
if platform.system() == "Windows":
|
|
1740
|
+
statusline_command = "python -m moai_adk statusline"
|
|
1741
|
+
else:
|
|
1742
|
+
statusline_command = "moai-adk statusline"
|
|
1743
|
+
|
|
1736
1744
|
# Extract and resolve language configuration using centralized resolver
|
|
1737
1745
|
try:
|
|
1738
1746
|
from moai_adk.core.language_config_resolver import get_resolver
|
|
@@ -1830,6 +1838,7 @@ def _build_template_context(
|
|
|
1830
1838
|
"CODEBASE_LANGUAGE": project_section.get("language", "generic"),
|
|
1831
1839
|
"PROJECT_OWNER": project_section.get("author", "@user"),
|
|
1832
1840
|
"AUTHOR": project_section.get("author", "@user"),
|
|
1841
|
+
"STATUSLINE_COMMAND": statusline_command,
|
|
1833
1842
|
}
|
|
1834
1843
|
|
|
1835
1844
|
|
|
@@ -2082,6 +2091,7 @@ def _execute_migration_if_needed(project_path: Path, yes: bool = False) -> bool:
|
|
|
2082
2091
|
|
|
2083
2092
|
# Confirm with user (unless --yes)
|
|
2084
2093
|
if not yes:
|
|
2094
|
+
reset_stdin() # Reset stdin before interactive prompt
|
|
2085
2095
|
if not click.confirm("Do you want to proceed with migration?", default=True):
|
|
2086
2096
|
console.print("[yellow]⚠️ Migration skipped. Some features may not work correctly.[/yellow]")
|
|
2087
2097
|
console.print("[cyan]💡 Run 'moai-adk migrate' manually when ready[/cyan]")
|
|
@@ -2265,6 +2275,7 @@ def update(
|
|
|
2265
2275
|
|
|
2266
2276
|
# Confirm upgrade (unless --yes)
|
|
2267
2277
|
if not yes:
|
|
2278
|
+
reset_stdin() # Reset stdin before interactive prompt
|
|
2268
2279
|
if not click.confirm(f"Upgrade {current} → {latest}?", default=True):
|
|
2269
2280
|
console.print("Cancelled")
|
|
2270
2281
|
return
|
|
@@ -2465,7 +2476,10 @@ def _handle_custom_element_restoration(project_path: Path, backup_path: Path | N
|
|
|
2465
2476
|
return
|
|
2466
2477
|
|
|
2467
2478
|
# Create enhanced user selection UI
|
|
2468
|
-
|
|
2479
|
+
# IMPORTANT: Use backup_path, not project_path!
|
|
2480
|
+
# At this point, custom elements in project have been deleted by copy_templates().
|
|
2481
|
+
# The UI must scan the BACKUP to find elements available for restoration.
|
|
2482
|
+
ui = create_user_selection_ui(backup_path)
|
|
2469
2483
|
|
|
2470
2484
|
console.print(f"\n[cyan]🔍 Found {backup_element_count} custom elements in backup[/cyan]")
|
|
2471
2485
|
|
|
@@ -2524,37 +2538,28 @@ def _handle_custom_element_restoration(project_path: Path, backup_path: Path | N
|
|
|
2524
2538
|
|
|
2525
2539
|
|
|
2526
2540
|
def _cleanup_legacy_presets(project_path: Path) -> None:
|
|
2527
|
-
"""Remove legacy
|
|
2541
|
+
"""Remove legacy presets directory entirely.
|
|
2528
2542
|
|
|
2529
|
-
This function
|
|
2530
|
-
|
|
2531
|
-
and .yaml files are preserved since they are part of the current template.
|
|
2543
|
+
This function removes the entire .moai/config/presets/ directory as it is
|
|
2544
|
+
no longer used. All preset settings are now consolidated in sections/git-strategy.yaml.
|
|
2532
2545
|
|
|
2533
2546
|
Args:
|
|
2534
2547
|
project_path: Project directory path (absolute)
|
|
2535
2548
|
"""
|
|
2549
|
+
import shutil
|
|
2550
|
+
|
|
2536
2551
|
presets_dir = project_path / ".moai" / "config" / "presets"
|
|
2537
2552
|
|
|
2538
2553
|
if not presets_dir.exists() or not presets_dir.is_dir():
|
|
2539
2554
|
return
|
|
2540
2555
|
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
try:
|
|
2549
|
-
json_file.unlink()
|
|
2550
|
-
removed_count += 1
|
|
2551
|
-
logger.debug(f"Removed legacy preset file: {json_file}")
|
|
2552
|
-
except Exception as e:
|
|
2553
|
-
logger.warning(f"Failed to remove legacy preset {json_file}: {e}")
|
|
2554
|
-
|
|
2555
|
-
if removed_count > 0:
|
|
2556
|
-
console.print(f" [cyan]🧹 Cleaned up {removed_count} legacy JSON preset files[/cyan]")
|
|
2557
|
-
logger.info(f"Removed {removed_count} legacy JSON preset files from {presets_dir}")
|
|
2556
|
+
try:
|
|
2557
|
+
# Remove entire presets directory (no longer needed)
|
|
2558
|
+
shutil.rmtree(presets_dir)
|
|
2559
|
+
console.print(" [cyan]🧹 Removed legacy presets directory (now in sections/git-strategy.yaml)[/cyan]")
|
|
2560
|
+
logger.info(f"Removed legacy presets directory: {presets_dir}")
|
|
2561
|
+
except Exception as e:
|
|
2562
|
+
logger.warning(f"Failed to remove legacy presets directory {presets_dir}: {e}")
|
|
2558
2563
|
|
|
2559
2564
|
|
|
2560
2565
|
def _migrate_config_json_to_yaml(project_path: Path) -> bool:
|
moai_adk/cli/worktree/cli.py
CHANGED
|
@@ -25,12 +25,15 @@ except ImportError:
|
|
|
25
25
|
console = Console()
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
def get_manager(
|
|
28
|
+
def get_manager(
|
|
29
|
+
repo_path: Path | None = None, worktree_root: Path | None = None, project_name: str | None = None
|
|
30
|
+
) -> WorktreeManager: # noqa: E501
|
|
29
31
|
"""Get or create a WorktreeManager instance.
|
|
30
32
|
|
|
31
33
|
Args:
|
|
32
34
|
repo_path: Path to Git repository. Defaults to current directory.
|
|
33
35
|
worktree_root: Root directory for worktrees. Auto-detects optimal location.
|
|
36
|
+
project_name: Project name for namespace organization. Auto-detected from repo if not provided.
|
|
34
37
|
|
|
35
38
|
Returns:
|
|
36
39
|
WorktreeManager instance.
|
|
@@ -53,7 +56,11 @@ def get_manager(repo_path: Path | None = None, worktree_root: Path | None = None
|
|
|
53
56
|
if worktree_root is None:
|
|
54
57
|
worktree_root = _detect_worktree_root(repo_path)
|
|
55
58
|
|
|
56
|
-
|
|
59
|
+
# 3. Auto-detect project_name if not specified
|
|
60
|
+
if project_name is None:
|
|
61
|
+
project_name = repo_path.name
|
|
62
|
+
|
|
63
|
+
return WorktreeManager(repo_path=repo_path, worktree_root=worktree_root, project_name=project_name)
|
|
57
64
|
|
|
58
65
|
|
|
59
66
|
def _detect_worktree_root(repo_path: Path) -> Path:
|
|
@@ -193,8 +200,7 @@ def new_worktree(
|
|
|
193
200
|
console.print(f" Status: {info.status}")
|
|
194
201
|
console.print()
|
|
195
202
|
console.print("[yellow]Next steps:[/yellow]")
|
|
196
|
-
console.print(f" moai-worktree
|
|
197
|
-
console.print(f" moai-worktree go {spec_id} # Get cd command")
|
|
203
|
+
console.print(f" moai-worktree go {spec_id} # Go to this worktree")
|
|
198
204
|
|
|
199
205
|
except WorktreeExistsError as e:
|
|
200
206
|
console.print(f"[red]✗[/red] {e}")
|
|
@@ -260,15 +266,15 @@ def list_worktrees(format: str, repo: str | None, worktree_root: str | None) ->
|
|
|
260
266
|
raise click.Abort()
|
|
261
267
|
|
|
262
268
|
|
|
263
|
-
@worktree.command(name="
|
|
269
|
+
@worktree.command(name="go")
|
|
264
270
|
@click.argument("spec_id")
|
|
265
271
|
@click.option("--repo", type=click.Path(), default=None, help="Repository path")
|
|
266
272
|
@click.option("--worktree-root", type=click.Path(), default=None, help="Worktree root directory")
|
|
267
|
-
def
|
|
268
|
-
"""
|
|
273
|
+
def go_worktree(spec_id: str, repo: str | None, worktree_root: str | None) -> None:
|
|
274
|
+
"""Go to a worktree (opens new shell).
|
|
269
275
|
|
|
270
276
|
Args:
|
|
271
|
-
spec_id: SPEC ID to
|
|
277
|
+
spec_id: SPEC ID to go to
|
|
272
278
|
repo: Repository path (optional)
|
|
273
279
|
worktree_root: Worktree root directory (optional)
|
|
274
280
|
"""
|
|
@@ -277,7 +283,7 @@ def switch_worktree(spec_id: str, repo: str | None, worktree_root: str | None) -
|
|
|
277
283
|
wt_root = Path(worktree_root) if worktree_root else None
|
|
278
284
|
|
|
279
285
|
manager = get_manager(repo_path, wt_root)
|
|
280
|
-
info = manager.registry.get(spec_id)
|
|
286
|
+
info = manager.registry.get(spec_id, project_name=manager.project_name)
|
|
281
287
|
|
|
282
288
|
if not info:
|
|
283
289
|
console.print(f"[red]✗[/red] Worktree not found: {spec_id}")
|
|
@@ -291,7 +297,7 @@ def switch_worktree(spec_id: str, repo: str | None, worktree_root: str | None) -
|
|
|
291
297
|
subprocess.call([shell], cwd=str(info.path))
|
|
292
298
|
|
|
293
299
|
except Exception as e:
|
|
294
|
-
console.print(f"[red]✗[/red] Error
|
|
300
|
+
console.print(f"[red]✗[/red] Error: {e}")
|
|
295
301
|
raise click.Abort()
|
|
296
302
|
|
|
297
303
|
|
|
@@ -370,39 +376,6 @@ def status_worktrees(repo: str | None, worktree_root: str | None) -> None:
|
|
|
370
376
|
raise click.Abort()
|
|
371
377
|
|
|
372
378
|
|
|
373
|
-
@worktree.command(name="go")
|
|
374
|
-
@click.argument("spec_id")
|
|
375
|
-
@click.option("--repo", type=click.Path(), default=None, help="Repository path")
|
|
376
|
-
@click.option("--worktree-root", type=click.Path(), default=None, help="Worktree root directory")
|
|
377
|
-
def go_worktree(spec_id: str, repo: str | None, worktree_root: str | None) -> None:
|
|
378
|
-
"""Print cd command for shell eval.
|
|
379
|
-
|
|
380
|
-
Usage: eval $(moai-worktree go SPEC-001)
|
|
381
|
-
|
|
382
|
-
Args:
|
|
383
|
-
spec_id: SPEC ID to navigate to
|
|
384
|
-
repo: Repository path (optional)
|
|
385
|
-
worktree_root: Worktree root directory (optional)
|
|
386
|
-
"""
|
|
387
|
-
try:
|
|
388
|
-
repo_path = Path(repo) if repo else Path.cwd()
|
|
389
|
-
wt_root = Path(worktree_root) if worktree_root else None
|
|
390
|
-
|
|
391
|
-
manager = get_manager(repo_path, wt_root)
|
|
392
|
-
info = manager.registry.get(spec_id)
|
|
393
|
-
|
|
394
|
-
if not info:
|
|
395
|
-
console.print(f"[red]✗[/red] Worktree not found: {spec_id}")
|
|
396
|
-
raise click.Abort()
|
|
397
|
-
|
|
398
|
-
# Print cd command that can be eval'd
|
|
399
|
-
click.echo(f"cd {info.path}")
|
|
400
|
-
|
|
401
|
-
except Exception as e:
|
|
402
|
-
console.print(f"[red]✗[/red] Error: {e}")
|
|
403
|
-
raise click.Abort()
|
|
404
|
-
|
|
405
|
-
|
|
406
379
|
@worktree.command(name="sync")
|
|
407
380
|
@click.argument("spec_id", required=False)
|
|
408
381
|
@click.option("--base", default="main", help="Base branch to sync from")
|
|
@@ -613,6 +586,44 @@ def clean_worktrees(merged_only: bool, interactive: bool, repo: str | None, work
|
|
|
613
586
|
raise click.Abort()
|
|
614
587
|
|
|
615
588
|
|
|
589
|
+
@worktree.command(name="recover")
|
|
590
|
+
@click.option("--repo", type=click.Path(), default=None, help="Repository path")
|
|
591
|
+
@click.option("--worktree-root", type=click.Path(), default=None, help="Worktree root directory")
|
|
592
|
+
def recover_worktrees(repo: str | None, worktree_root: str | None) -> None:
|
|
593
|
+
"""Recover worktree registry from existing directories.
|
|
594
|
+
|
|
595
|
+
Scans the worktree root directory for existing worktrees and
|
|
596
|
+
re-registers them in the registry file.
|
|
597
|
+
|
|
598
|
+
Args:
|
|
599
|
+
repo: Repository path (optional)
|
|
600
|
+
worktree_root: Worktree root directory (optional)
|
|
601
|
+
"""
|
|
602
|
+
try:
|
|
603
|
+
repo_path = Path(repo) if repo else Path.cwd()
|
|
604
|
+
wt_root = Path(worktree_root) if worktree_root else None
|
|
605
|
+
|
|
606
|
+
manager = get_manager(repo_path, wt_root)
|
|
607
|
+
|
|
608
|
+
console.print(f"[cyan]Scanning {manager.worktree_root} for worktrees...[/cyan]")
|
|
609
|
+
recovered = manager.registry.recover_from_disk()
|
|
610
|
+
|
|
611
|
+
if recovered > 0:
|
|
612
|
+
console.print(f"[green]✓[/green] Recovered {recovered} worktree(s)")
|
|
613
|
+
|
|
614
|
+
# Show recovered worktrees
|
|
615
|
+
worktrees = manager.list()
|
|
616
|
+
for info in worktrees:
|
|
617
|
+
if info.status == "recovered":
|
|
618
|
+
console.print(f" - {info.spec_id} ({info.branch})")
|
|
619
|
+
else:
|
|
620
|
+
console.print("[yellow]No new worktrees found to recover[/yellow]")
|
|
621
|
+
|
|
622
|
+
except Exception as e:
|
|
623
|
+
console.print(f"[red]✗[/red] Error recovering worktrees: {e}")
|
|
624
|
+
raise click.Abort()
|
|
625
|
+
|
|
626
|
+
|
|
616
627
|
@worktree.command(name="config")
|
|
617
628
|
@click.argument("key", required=False)
|
|
618
629
|
@click.argument("value", required=False)
|
moai_adk/cli/worktree/manager.py
CHANGED
|
@@ -18,23 +18,26 @@ from moai_adk.cli.worktree.registry import WorktreeRegistry
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
class WorktreeManager:
|
|
21
|
-
"""Manages Git worktrees for parallel SPEC development.
|
|
21
|
+
"""Manages Git worktrees for parallel SPEC development with project namespace support.
|
|
22
22
|
|
|
23
23
|
This class provides high-level operations for creating, removing,
|
|
24
24
|
switching, and maintaining Git worktrees. It integrates with
|
|
25
25
|
GitPython for Git operations and WorktreeRegistry for metadata
|
|
26
|
-
persistence.
|
|
26
|
+
persistence. Worktrees are organized by project name namespace to
|
|
27
|
+
support multiple projects: /worktrees/{project-name}/{SPEC-ID}
|
|
27
28
|
"""
|
|
28
29
|
|
|
29
|
-
def __init__(self, repo_path: Path, worktree_root: Path) -> None:
|
|
30
|
+
def __init__(self, repo_path: Path, worktree_root: Path, project_name: str | None = None) -> None:
|
|
30
31
|
"""Initialize the worktree manager.
|
|
31
32
|
|
|
32
33
|
Args:
|
|
33
34
|
repo_path: Path to the main Git repository.
|
|
34
35
|
worktree_root: Root directory for all worktrees.
|
|
36
|
+
project_name: Project name for namespace organization. Defaults to repo directory name.
|
|
35
37
|
"""
|
|
36
38
|
self.repo = Repo(repo_path)
|
|
37
39
|
self.worktree_root = Path(worktree_root)
|
|
40
|
+
self.project_name = project_name or repo_path.name
|
|
38
41
|
self.registry = WorktreeRegistry(self.worktree_root)
|
|
39
42
|
|
|
40
43
|
def create(
|
|
@@ -62,7 +65,7 @@ class WorktreeManager:
|
|
|
62
65
|
GitOperationError: If Git operation fails.
|
|
63
66
|
"""
|
|
64
67
|
# Check if worktree already exists
|
|
65
|
-
existing = self.registry.get(spec_id)
|
|
68
|
+
existing = self.registry.get(spec_id, project_name=self.project_name)
|
|
66
69
|
if existing and not force:
|
|
67
70
|
raise WorktreeExistsError(spec_id, existing.path)
|
|
68
71
|
|
|
@@ -77,12 +80,12 @@ class WorktreeManager:
|
|
|
77
80
|
if branch_name is None:
|
|
78
81
|
branch_name = f"feature/{spec_id}"
|
|
79
82
|
|
|
80
|
-
# Create worktree path
|
|
81
|
-
worktree_path = self.worktree_root / spec_id
|
|
83
|
+
# Create worktree path with project_name namespace
|
|
84
|
+
worktree_path = self.worktree_root / self.project_name / spec_id
|
|
82
85
|
|
|
83
86
|
try:
|
|
84
|
-
# Create parent directory if needed
|
|
85
|
-
|
|
87
|
+
# Create parent directory if needed (including project_name namespace)
|
|
88
|
+
worktree_path.parent.mkdir(parents=True, exist_ok=True)
|
|
86
89
|
|
|
87
90
|
# Fetch latest
|
|
88
91
|
try:
|
|
@@ -128,7 +131,7 @@ class WorktreeManager:
|
|
|
128
131
|
)
|
|
129
132
|
|
|
130
133
|
# Register in registry
|
|
131
|
-
self.registry.register(info)
|
|
134
|
+
self.registry.register(info, project_name=self.project_name)
|
|
132
135
|
|
|
133
136
|
return info
|
|
134
137
|
|
|
@@ -151,7 +154,7 @@ class WorktreeManager:
|
|
|
151
154
|
UncommittedChangesError: If worktree has uncommitted changes (unless force=True).
|
|
152
155
|
GitOperationError: If Git operation fails.
|
|
153
156
|
"""
|
|
154
|
-
info = self.registry.get(spec_id)
|
|
157
|
+
info = self.registry.get(spec_id, project_name=self.project_name)
|
|
155
158
|
if not info:
|
|
156
159
|
raise WorktreeNotFoundError(spec_id)
|
|
157
160
|
|
|
@@ -177,7 +180,7 @@ class WorktreeManager:
|
|
|
177
180
|
shutil.rmtree(info.path)
|
|
178
181
|
|
|
179
182
|
# Unregister from registry
|
|
180
|
-
self.registry.unregister(spec_id)
|
|
183
|
+
self.registry.unregister(spec_id, project_name=self.project_name)
|
|
181
184
|
|
|
182
185
|
except (WorktreeNotFoundError, UncommittedChangesError):
|
|
183
186
|
raise
|
|
@@ -192,7 +195,7 @@ class WorktreeManager:
|
|
|
192
195
|
Returns:
|
|
193
196
|
List of WorktreeInfo instances.
|
|
194
197
|
"""
|
|
195
|
-
return self.registry.list_all()
|
|
198
|
+
return self.registry.list_all(project_name=self.project_name)
|
|
196
199
|
|
|
197
200
|
def sync(
|
|
198
201
|
self,
|
|
@@ -218,7 +221,7 @@ class WorktreeManager:
|
|
|
218
221
|
MergeConflictError: If merge conflict occurs and auto_resolve is False.
|
|
219
222
|
GitOperationError: If Git operation fails.
|
|
220
223
|
"""
|
|
221
|
-
info = self.registry.get(spec_id)
|
|
224
|
+
info = self.registry.get(spec_id, project_name=self.project_name)
|
|
222
225
|
if not info:
|
|
223
226
|
raise WorktreeNotFoundError(spec_id)
|
|
224
227
|
|
|
@@ -376,7 +379,7 @@ class WorktreeManager:
|
|
|
376
379
|
|
|
377
380
|
# Update last accessed time
|
|
378
381
|
info.last_accessed = datetime.now().isoformat() + "Z"
|
|
379
|
-
self.registry.register(info)
|
|
382
|
+
self.registry.register(info, project_name=self.project_name)
|
|
380
383
|
|
|
381
384
|
except (WorktreeNotFoundError, MergeConflictError):
|
|
382
385
|
raise
|