moai-adk 0.25.4__py3-none-any.whl → 0.32.8__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/__init__.py +2 -5
- moai_adk/__main__.py +114 -82
- moai_adk/cli/__init__.py +6 -1
- moai_adk/cli/commands/__init__.py +1 -3
- moai_adk/cli/commands/analyze.py +5 -16
- moai_adk/cli/commands/doctor.py +6 -18
- moai_adk/cli/commands/init.py +56 -125
- moai_adk/cli/commands/language.py +14 -35
- moai_adk/cli/commands/status.py +9 -15
- moai_adk/cli/commands/update.py +1555 -190
- moai_adk/cli/prompts/init_prompts.py +112 -56
- moai_adk/cli/spec_status.py +263 -0
- moai_adk/cli/ui/__init__.py +44 -0
- moai_adk/cli/ui/progress.py +422 -0
- moai_adk/cli/ui/prompts.py +389 -0
- moai_adk/cli/ui/theme.py +129 -0
- moai_adk/cli/worktree/__init__.py +27 -0
- moai_adk/cli/worktree/__main__.py +31 -0
- moai_adk/cli/worktree/cli.py +672 -0
- moai_adk/cli/worktree/exceptions.py +89 -0
- moai_adk/cli/worktree/manager.py +490 -0
- moai_adk/cli/worktree/models.py +65 -0
- moai_adk/cli/worktree/registry.py +128 -0
- moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
- moai_adk/core/analysis/session_analyzer.py +17 -56
- moai_adk/core/claude_integration.py +26 -54
- moai_adk/core/command_helpers.py +10 -10
- moai_adk/core/comprehensive_monitoring_system.py +1183 -0
- moai_adk/core/config/auto_spec_config.py +5 -11
- moai_adk/core/config/migration.py +19 -9
- moai_adk/core/config/unified.py +436 -0
- moai_adk/core/context_manager.py +6 -12
- moai_adk/core/enterprise_features.py +1404 -0
- moai_adk/core/error_recovery_system.py +725 -112
- moai_adk/core/event_driven_hook_system.py +1371 -0
- moai_adk/core/git/__init__.py +8 -0
- moai_adk/core/git/branch_manager.py +3 -11
- moai_adk/core/git/checkpoint.py +1 -3
- moai_adk/core/git/conflict_detector.py +413 -0
- moai_adk/core/git/manager.py +91 -1
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +56 -80
- moai_adk/core/input_validation_middleware.py +1006 -0
- moai_adk/core/integration/engine.py +6 -18
- moai_adk/core/integration/integration_tester.py +10 -9
- moai_adk/core/integration/utils.py +1 -1
- moai_adk/core/issue_creator.py +10 -28
- moai_adk/core/jit_context_loader.py +956 -0
- moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
- moai_adk/core/language_config_resolver.py +485 -0
- moai_adk/core/language_validator.py +28 -41
- moai_adk/core/mcp/setup.py +15 -12
- moai_adk/core/merge/__init__.py +9 -0
- moai_adk/core/merge/analyzer.py +481 -0
- moai_adk/core/migration/alfred_to_moai_migrator.py +383 -0
- moai_adk/core/migration/backup_manager.py +78 -9
- moai_adk/core/migration/custom_element_scanner.py +358 -0
- moai_adk/core/migration/file_migrator.py +8 -17
- moai_adk/core/migration/interactive_checkbox_ui.py +488 -0
- moai_adk/core/migration/selective_restorer.py +470 -0
- moai_adk/core/migration/template_utils.py +74 -0
- moai_adk/core/migration/user_selection_ui.py +338 -0
- moai_adk/core/migration/version_detector.py +6 -10
- moai_adk/core/migration/version_migrator.py +3 -3
- moai_adk/core/performance/cache_system.py +8 -10
- moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
- moai_adk/core/project/checker.py +2 -4
- moai_adk/core/project/detector.py +1 -3
- moai_adk/core/project/initializer.py +135 -23
- moai_adk/core/project/phase_executor.py +54 -81
- moai_adk/core/project/validator.py +6 -12
- moai_adk/core/quality/trust_checker.py +9 -27
- moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
- moai_adk/core/robust_json_parser.py +611 -0
- moai_adk/core/rollback_manager.py +73 -148
- moai_adk/core/session_manager.py +10 -26
- moai_adk/core/skill_loading_system.py +579 -0
- moai_adk/core/spec/confidence_scoring.py +31 -100
- moai_adk/core/spec/ears_template_engine.py +351 -286
- moai_adk/core/spec/quality_validator.py +35 -69
- moai_adk/core/spec_status_manager.py +64 -74
- moai_adk/core/template/backup.py +45 -20
- moai_adk/core/template/config.py +112 -39
- moai_adk/core/template/merger.py +11 -19
- moai_adk/core/template/processor.py +253 -149
- moai_adk/core/template_engine.py +73 -40
- moai_adk/core/template_variable_synchronizer.py +417 -0
- moai_adk/core/unified_permission_manager.py +745 -0
- moai_adk/core/user_behavior_analytics.py +851 -0
- moai_adk/core/version_sync.py +429 -0
- moai_adk/foundation/__init__.py +56 -0
- moai_adk/foundation/backend.py +1027 -0
- moai_adk/foundation/database.py +1115 -0
- moai_adk/foundation/devops.py +1585 -0
- moai_adk/foundation/ears.py +431 -0
- moai_adk/foundation/frontend.py +870 -0
- moai_adk/foundation/git/commit_templates.py +4 -12
- moai_adk/foundation/git.py +376 -0
- moai_adk/foundation/langs.py +484 -0
- moai_adk/foundation/ml_ops.py +1162 -0
- moai_adk/foundation/testing.py +1524 -0
- moai_adk/foundation/trust/trust_principles.py +23 -72
- moai_adk/foundation/trust/validation_checklist.py +57 -162
- moai_adk/project/__init__.py +0 -0
- moai_adk/project/configuration.py +1084 -0
- moai_adk/project/documentation.py +566 -0
- moai_adk/project/schema.py +447 -0
- moai_adk/statusline/alfred_detector.py +1 -3
- moai_adk/statusline/config.py +13 -4
- moai_adk/statusline/enhanced_output_style_detector.py +23 -15
- moai_adk/statusline/main.py +51 -15
- moai_adk/statusline/renderer.py +104 -48
- moai_adk/statusline/update_checker.py +3 -9
- moai_adk/statusline/version_reader.py +140 -46
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +549 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +445 -0
- moai_adk/templates/.claude/agents/moai/builder-command.md +1132 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +601 -0
- moai_adk/templates/.claude/agents/moai/expert-backend.md +831 -0
- moai_adk/templates/.claude/agents/moai/expert-database.md +774 -0
- moai_adk/templates/.claude/agents/moai/expert-debug.md +396 -0
- moai_adk/templates/.claude/agents/moai/expert-devops.md +711 -0
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +666 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +474 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +1038 -0
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +429 -0
- moai_adk/templates/.claude/agents/moai/manager-docs.md +570 -0
- moai_adk/templates/.claude/agents/moai/manager-git.md +937 -0
- moai_adk/templates/.claude/agents/moai/manager-project.md +891 -0
- moai_adk/templates/.claude/agents/moai/manager-quality.md +598 -0
- moai_adk/templates/.claude/agents/moai/manager-spec.md +713 -0
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +600 -0
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +603 -0
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +369 -0
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +1567 -0
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +749 -0
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +427 -0
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +994 -0
- moai_adk/templates/.claude/commands/moai/0-project.md +1143 -0
- moai_adk/templates/.claude/commands/moai/1-plan.md +1435 -0
- moai_adk/templates/.claude/commands/moai/2-run.md +883 -0
- moai_adk/templates/.claude/commands/moai/3-sync.md +993 -0
- moai_adk/templates/.claude/commands/moai/9-feedback.md +314 -0
- moai_adk/templates/.claude/hooks/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +85 -0
- moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +244 -0
- moai_adk/templates/.claude/hooks/moai/lib/common.py +131 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +446 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
- moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +317 -0
- moai_adk/templates/.claude/hooks/moai/lib/models.py +102 -0
- moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +28 -0
- moai_adk/templates/.claude/hooks/moai/lib/project.py +768 -0
- moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
- moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +530 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +862 -0
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +921 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +380 -0
- moai_adk/templates/.claude/output-styles/moai/yoda.md +338 -0
- moai_adk/templates/.claude/settings.json +172 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +247 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +44 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +130 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +178 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +147 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +319 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +320 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +496 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +453 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +405 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +491 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +98 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +201 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +560 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +113 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +238 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +438 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +515 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +346 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +757 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +864 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +981 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +362 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/SKILL.md +352 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/README.md +52 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/error-handling.md +334 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/integration-patterns.md +310 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/security-authentication.md +256 -0
- moai_adk/templates/.claude/skills/moai-integration-mcp/modules/server-architecture.md +253 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/README.md +133 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/SKILL.md +296 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/examples.md +1269 -0
- moai_adk/templates/.claude/skills/moai-lang-unified/reference.md +331 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +298 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/advanced-patterns.md +465 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/optimization.md +440 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +316 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +336 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +17 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +57 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/optimization.md +303 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +370 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/README.md +186 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/SKILL.md +290 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/examples.md +1225 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/reference.md +567 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/scripts/provider-selector.py +323 -0
- moai_adk/templates/.claude/skills/moai-platform-baas/templates/stack-config.yaml +204 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +446 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/advanced-patterns.md +379 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/optimization.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +387 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +520 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +574 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +317 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +663 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +135 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +196 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +17 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +158 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +340 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +713 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +538 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +1336 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +730 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +608 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +1005 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1362 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +436 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +374 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +453 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/advanced-patterns.md +576 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +220 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +845 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +1416 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +1234 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +1243 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +1260 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/optimization.md +505 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
- moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +410 -0
- moai_adk/templates/.claude/skills/moai-worktree/examples.md +606 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +982 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +778 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +646 -0
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +782 -0
- moai_adk/templates/.claude/skills/moai-worktree/reference.md +357 -0
- moai_adk/templates/.git-hooks/pre-commit +103 -41
- moai_adk/templates/.git-hooks/pre-push +116 -21
- moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
- moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
- moai_adk/templates/.gitignore +184 -44
- moai_adk/templates/.mcp.json +7 -9
- moai_adk/templates/.moai/cache/personalization.json +10 -0
- moai_adk/templates/.moai/config/config.yaml +344 -0
- moai_adk/templates/.moai/config/presets/manual.yaml +28 -0
- moai_adk/templates/.moai/config/presets/personal.yaml +30 -0
- moai_adk/templates/.moai/config/presets/team.yaml +33 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +79 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +108 -0
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +122 -0
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +542 -0
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +167 -0
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +152 -0
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +40 -0
- moai_adk/templates/.moai/config/sections/language.yaml +11 -0
- moai_adk/templates/.moai/config/sections/project.yaml +13 -0
- moai_adk/templates/.moai/config/sections/quality.yaml +15 -0
- moai_adk/templates/.moai/config/sections/system.yaml +14 -0
- moai_adk/templates/.moai/config/sections/user.yaml +5 -0
- moai_adk/templates/.moai/config/statusline-config.yaml +86 -0
- moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
- moai_adk/templates/CLAUDE.md +382 -501
- moai_adk/utils/__init__.py +24 -1
- moai_adk/utils/banner.py +7 -10
- moai_adk/utils/common.py +16 -30
- moai_adk/utils/link_validator.py +4 -12
- moai_adk/utils/safe_file_reader.py +2 -6
- moai_adk/utils/timeout.py +160 -0
- moai_adk/utils/toon_utils.py +256 -0
- moai_adk/version.py +22 -0
- moai_adk-0.32.8.dist-info/METADATA +2478 -0
- moai_adk-0.32.8.dist-info/RECORD +396 -0
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/WHEEL +1 -1
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/entry_points.txt +1 -0
- moai_adk/cli/commands/backup.py +0 -82
- moai_adk/cli/commands/improve_user_experience.py +0 -348
- moai_adk/cli/commands/migrate.py +0 -158
- moai_adk/cli/commands/validate_links.py +0 -118
- moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -413
- moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
- moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
- moai_adk/utils/user_experience.py +0 -531
- moai_adk-0.25.4.dist-info/METADATA +0 -2279
- moai_adk-0.25.4.dist-info/RECORD +0 -112
- {moai_adk-0.25.4.dist-info → moai_adk-0.32.8.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "project-batch-questions",
|
|
3
|
+
"title": "Project Batch Questions Configuration",
|
|
4
|
+
"description": "Configure project-specific question batches and templates",
|
|
5
|
+
"questions": [
|
|
6
|
+
{
|
|
7
|
+
"id": "batch_questions.enable",
|
|
8
|
+
"text": "Enable batch question processing for this project?",
|
|
9
|
+
"type": "boolean",
|
|
10
|
+
"required": true,
|
|
11
|
+
"default_value": true,
|
|
12
|
+
"description": "Allow collecting multiple questions in batches for better workflow"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "batch_questions.template_directory",
|
|
16
|
+
"text": "Where should question templates be stored?",
|
|
17
|
+
"type": "single_choice",
|
|
18
|
+
"required": true,
|
|
19
|
+
"default_value": ".moai/templates/questions",
|
|
20
|
+
"options": [
|
|
21
|
+
{
|
|
22
|
+
"label": "Default (.moai/templates/questions)",
|
|
23
|
+
"value": ".moai/templates/questions",
|
|
24
|
+
"description": "Standard MoAI template location"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"label": "Project root (.questions)",
|
|
28
|
+
"value": ".questions",
|
|
29
|
+
"description": "Project root directory"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"label": "Custom location",
|
|
33
|
+
"value": "custom",
|
|
34
|
+
"description": "Specify custom directory path"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "batch_questions.custom_path",
|
|
40
|
+
"text": "Enter custom template directory path:",
|
|
41
|
+
"type": "text_input",
|
|
42
|
+
"required": false,
|
|
43
|
+
"conditional_on": {
|
|
44
|
+
"batch_questions.template_directory": "custom"
|
|
45
|
+
},
|
|
46
|
+
"validation": {
|
|
47
|
+
"rules": ["min_length"],
|
|
48
|
+
"parameters": {"min_length": 1}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "batch_questions.auto_save",
|
|
53
|
+
"text": "Automatically save question responses?",
|
|
54
|
+
"type": "boolean",
|
|
55
|
+
"required": true,
|
|
56
|
+
"default_value": true,
|
|
57
|
+
"description": "Save responses to .moai/responses/ for future reference"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "batch_questions.validation_level",
|
|
61
|
+
"text": "What level of response validation should be applied?",
|
|
62
|
+
"type": "single_choice",
|
|
63
|
+
"required": true,
|
|
64
|
+
"default_value": "standard",
|
|
65
|
+
"options": [
|
|
66
|
+
{
|
|
67
|
+
"label": "Basic (required fields only)",
|
|
68
|
+
"value": "basic",
|
|
69
|
+
"description": "Only validate required fields are present"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"label": "Standard (type and format validation)",
|
|
73
|
+
"value": "standard",
|
|
74
|
+
"description": "Validate field types and basic formats"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"label": "Strict (custom validation rules)",
|
|
78
|
+
"value": "strict",
|
|
79
|
+
"description": "Apply comprehensive validation including custom rules"
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "batch_questions.conditional_logic",
|
|
85
|
+
"text": "Enable conditional question logic?",
|
|
86
|
+
"type": "boolean",
|
|
87
|
+
"required": true,
|
|
88
|
+
"default_value": true,
|
|
89
|
+
"description": "Show/hide questions based on previous answers"
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"metadata": {
|
|
93
|
+
"skill": "moai-project-batch-questions",
|
|
94
|
+
"category": "project_configuration",
|
|
95
|
+
"version": "1.0.0"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "spec-workflow-setup",
|
|
3
|
+
"title": "SPEC Workflow Configuration",
|
|
4
|
+
"description": "Configure specification-driven development workflow preferences",
|
|
5
|
+
"questions": [
|
|
6
|
+
{
|
|
7
|
+
"id": "spec_workflow.auto_generate",
|
|
8
|
+
"text": "Enable automatic SPEC generation for new features?",
|
|
9
|
+
"type": "boolean",
|
|
10
|
+
"required": true,
|
|
11
|
+
"default_value": true,
|
|
12
|
+
"description": "Automatically create SPEC documents when starting new features"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "spec_workflow.template_style",
|
|
16
|
+
"text": "Choose SPEC template style:",
|
|
17
|
+
"type": "single_choice",
|
|
18
|
+
"required": true,
|
|
19
|
+
"default_value": "ears",
|
|
20
|
+
"options": [
|
|
21
|
+
{
|
|
22
|
+
"label": "EARS Format (Easy Approach to Requirements Syntax)",
|
|
23
|
+
"value": "ears",
|
|
24
|
+
"description": "Structured requirements format with clear syntax"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"label": "User Story Format",
|
|
28
|
+
"value": "user_story",
|
|
29
|
+
"description": "Agile user story format with acceptance criteria"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"label": "Technical Specification",
|
|
33
|
+
"value": "technical",
|
|
34
|
+
"description": "Detailed technical specification format"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"label": "Minimal",
|
|
38
|
+
"value": "minimal",
|
|
39
|
+
"description": "Lightweight specification format"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "spec_workflow.review_process",
|
|
45
|
+
"text": "Enable SPEC review process?",
|
|
46
|
+
"type": "boolean",
|
|
47
|
+
"required": true,
|
|
48
|
+
"default_value": true,
|
|
49
|
+
"description": "Require review and approval before implementation"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "spec_workflow.reviewers",
|
|
53
|
+
"text": "Who should review SPECs?",
|
|
54
|
+
"type": "multi_choice",
|
|
55
|
+
"required": true,
|
|
56
|
+
"default_value": ["tech_lead"],
|
|
57
|
+
"conditional_on": {
|
|
58
|
+
"spec_workflow.review_process": true
|
|
59
|
+
},
|
|
60
|
+
"options": [
|
|
61
|
+
{
|
|
62
|
+
"label": "Technical Lead",
|
|
63
|
+
"value": "tech_lead",
|
|
64
|
+
"description": "Senior technical team member"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"label": "Product Manager",
|
|
68
|
+
"value": "product_manager",
|
|
69
|
+
"description": "Product owner or manager"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"label": "Security Expert",
|
|
73
|
+
"value": "security_expert",
|
|
74
|
+
"description": "Security team member or expert"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"label": "UX Designer",
|
|
78
|
+
"value": "ux_designer",
|
|
79
|
+
"description": "User experience designer"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"label": "Peer Developer",
|
|
83
|
+
"value": "peer_developer",
|
|
84
|
+
"description": "Fellow developer team member"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"label": "Auto-approve",
|
|
88
|
+
"value": "auto_approve",
|
|
89
|
+
"description": "No manual review required"
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "spec_workflow.tracking",
|
|
95
|
+
"text": "Enable SPEC progress tracking?",
|
|
96
|
+
"type": "boolean",
|
|
97
|
+
"required": true,
|
|
98
|
+
"default_value": true,
|
|
99
|
+
"description": "Track SPEC status through implementation lifecycle"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "spec_workflow.integration",
|
|
103
|
+
"text": "Integrate SPECs with development workflow:",
|
|
104
|
+
"type": "multi_choice",
|
|
105
|
+
"required": true,
|
|
106
|
+
"default_value": ["git_branches", "issue_tracking"],
|
|
107
|
+
"options": [
|
|
108
|
+
{
|
|
109
|
+
"label": "Git Branches",
|
|
110
|
+
"value": "git_branches",
|
|
111
|
+
"description": "Create branches based on SPEC IDs"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"label": "Issue Tracking",
|
|
115
|
+
"value": "issue_tracking",
|
|
116
|
+
"description": "Link SPECs to issue tracker tickets"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"label": "CI/CD Pipeline",
|
|
120
|
+
"value": "cicd",
|
|
121
|
+
"description": "Include SPEC validation in pipeline"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"label": "Documentation",
|
|
125
|
+
"value": "documentation",
|
|
126
|
+
"description": "Auto-generate documentation from SPECs"
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"id": "spec_workflow.approval_threshold",
|
|
132
|
+
"text": "Number of approvals required for SPEC:",
|
|
133
|
+
"type": "number_input",
|
|
134
|
+
"required": true,
|
|
135
|
+
"default_value": 1,
|
|
136
|
+
"conditional_on": {
|
|
137
|
+
"spec_workflow.review_process": true
|
|
138
|
+
},
|
|
139
|
+
"validation": {
|
|
140
|
+
"rules": ["min_value", "max_value"],
|
|
141
|
+
"parameters": {"min_value": 1, "max_value": 5}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
"metadata": {
|
|
146
|
+
"skill": "moai-spec-intelligent-workflow",
|
|
147
|
+
"category": "workflow_configuration",
|
|
148
|
+
"version": "1.0.0"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Simple Integration Test for moai-menu-project
|
|
4
|
+
|
|
5
|
+
Tests the core functionality without complex imports.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import sys
|
|
9
|
+
import tempfile
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
|
|
12
|
+
# Add modules to path
|
|
13
|
+
sys.path.insert(0, "modules")
|
|
14
|
+
|
|
15
|
+
# Import individual modules
|
|
16
|
+
import documentation_manager
|
|
17
|
+
import language_initializer
|
|
18
|
+
import template_optimizer
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def test_individual_modules():
|
|
22
|
+
"""Test each module individually."""
|
|
23
|
+
print("🧪 Testing Individual Modules")
|
|
24
|
+
print("=" * 40)
|
|
25
|
+
|
|
26
|
+
# Create temporary directory
|
|
27
|
+
test_dir = Path(tempfile.mkdtemp())
|
|
28
|
+
print(f"📁 Test directory: {test_dir}")
|
|
29
|
+
|
|
30
|
+
# Test configuration
|
|
31
|
+
config = {
|
|
32
|
+
"project": {"name": "Test Project", "type": "web_application"},
|
|
33
|
+
"language": {"conversation_language": "en", "documentation_language": "en"},
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
results = {}
|
|
37
|
+
|
|
38
|
+
# Test DocumentationManager
|
|
39
|
+
print("\\n📚 Testing DocumentationManager...")
|
|
40
|
+
try:
|
|
41
|
+
doc_manager = documentation_manager.DocumentationManager(str(test_dir), config)
|
|
42
|
+
|
|
43
|
+
# Test initialization
|
|
44
|
+
init_result = doc_manager.initialize_documentation_structure()
|
|
45
|
+
results["documentation_manager"] = {
|
|
46
|
+
"success": init_result["success"],
|
|
47
|
+
"created_files": len(init_result.get("created_files", [])),
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# Test SPEC documentation generation
|
|
51
|
+
spec_data = {
|
|
52
|
+
"id": "TEST-SPEC-001",
|
|
53
|
+
"title": "Test Feature",
|
|
54
|
+
"description": "Test feature implementation",
|
|
55
|
+
"requirements": ["Requirement 1", "Requirement 2"],
|
|
56
|
+
"api_endpoints": [{"path": "/api/test", "method": "POST", "description": "Test endpoint"}],
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
docs_result = doc_manager.generate_documentation_from_spec(spec_data)
|
|
60
|
+
results["documentation_manager"]["spec_generation"] = docs_result["success"]
|
|
61
|
+
|
|
62
|
+
print(f"✅ DocumentationManager: {init_result['success']}")
|
|
63
|
+
print(f" 📄 Files created: {len(init_result.get('created_files', []))}")
|
|
64
|
+
print(f" 📝 SPEC generation: {docs_result['success']}")
|
|
65
|
+
|
|
66
|
+
except Exception as e:
|
|
67
|
+
print(f"❌ DocumentationManager error: {e}")
|
|
68
|
+
results["documentation_manager"] = {"success": False, "error": str(e)}
|
|
69
|
+
|
|
70
|
+
# Test LanguageInitializer
|
|
71
|
+
print("\\n🌐 Testing LanguageInitializer...")
|
|
72
|
+
try:
|
|
73
|
+
lang_init = language_initializer.LanguageInitializer(str(test_dir), config)
|
|
74
|
+
|
|
75
|
+
# Test language detection
|
|
76
|
+
detected_lang = lang_init.detect_project_language()
|
|
77
|
+
|
|
78
|
+
# Test language configuration
|
|
79
|
+
lang_result = lang_init.initialize_language_configuration(
|
|
80
|
+
language="ko", user_name="테스트 사용자", domains=["backend", "frontend"]
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
# Test multilingual structure
|
|
84
|
+
multilingual_result = lang_init.create_multilingual_documentation_structure("ko")
|
|
85
|
+
|
|
86
|
+
results["language_initializer"] = {
|
|
87
|
+
"success": lang_result["success"],
|
|
88
|
+
"detected_language": detected_lang,
|
|
89
|
+
"multilingual_created": multilingual_result["success"],
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
print(f"✅ LanguageInitializer: {lang_result['success']}")
|
|
93
|
+
print(f" 💬 Detected language: {detected_lang}")
|
|
94
|
+
print(f" 🌍 Multilingual structure: {multilingual_result['success']}")
|
|
95
|
+
|
|
96
|
+
except Exception as e:
|
|
97
|
+
print(f"❌ LanguageInitializer error: {e}")
|
|
98
|
+
results["language_initializer"] = {"success": False, "error": str(e)}
|
|
99
|
+
|
|
100
|
+
# Test TemplateOptimizer
|
|
101
|
+
print("\\n⚡ Testing TemplateOptimizer...")
|
|
102
|
+
try:
|
|
103
|
+
# Create test templates
|
|
104
|
+
templates_dir = test_dir / "templates"
|
|
105
|
+
templates_dir.mkdir(exist_ok=True)
|
|
106
|
+
|
|
107
|
+
test_template = """
|
|
108
|
+
# Test Template
|
|
109
|
+
|
|
110
|
+
This template contains redundant content.
|
|
111
|
+
|
|
112
|
+
## Section 1
|
|
113
|
+
|
|
114
|
+
Content here...
|
|
115
|
+
|
|
116
|
+
## Section 1 # Duplicate
|
|
117
|
+
|
|
118
|
+
Duplicate content here...
|
|
119
|
+
|
|
120
|
+
Extra whitespace:
|
|
121
|
+
|
|
122
|
+
Complex logic:
|
|
123
|
+
{% if condition %}
|
|
124
|
+
{% if nested_condition %}
|
|
125
|
+
Content
|
|
126
|
+
{% endif %}
|
|
127
|
+
{% endif %}
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
(templates_dir / "test_template.md").write_text(test_template, encoding="utf-8")
|
|
131
|
+
|
|
132
|
+
template_opt = template_optimizer.TemplateOptimizer(str(test_dir), config)
|
|
133
|
+
|
|
134
|
+
# Test template analysis
|
|
135
|
+
analysis = template_opt.analyze_project_templates()
|
|
136
|
+
|
|
137
|
+
# Test optimization
|
|
138
|
+
optimization_result = template_opt.create_optimized_templates({"backup_first": True})
|
|
139
|
+
|
|
140
|
+
# Test benchmarking
|
|
141
|
+
benchmark_result = template_opt.benchmark_template_performance()
|
|
142
|
+
|
|
143
|
+
results["template_optimizer"] = {
|
|
144
|
+
"success": analysis["success"],
|
|
145
|
+
"files_analyzed": len(analysis.get("analyzed_files", [])),
|
|
146
|
+
"optimization_applied": optimization_result.get("success", False),
|
|
147
|
+
"benchmark_completed": benchmark_result.get("success", False),
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
print(f"✅ TemplateOptimizer: {analysis['success']}")
|
|
151
|
+
print(f" 📁 Files analyzed: {len(analysis.get('analyzed_files', []))}")
|
|
152
|
+
print(f" ⚡ Optimization applied: {optimization_result.get('success', False)}")
|
|
153
|
+
print(f" 🏃 Benchmark completed: {benchmark_result.get('success', False)}")
|
|
154
|
+
|
|
155
|
+
except Exception as e:
|
|
156
|
+
print(f"❌ TemplateOptimizer error: {e}")
|
|
157
|
+
results["template_optimizer"] = {"success": False, "error": str(e)}
|
|
158
|
+
|
|
159
|
+
# Cleanup
|
|
160
|
+
import shutil
|
|
161
|
+
|
|
162
|
+
shutil.rmtree(test_dir, ignore_errors=True)
|
|
163
|
+
|
|
164
|
+
return results
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
def test_module_integration():
|
|
168
|
+
"""Test integration between modules."""
|
|
169
|
+
print("\\n🔗 Testing Module Integration")
|
|
170
|
+
print("=" * 40)
|
|
171
|
+
|
|
172
|
+
# Create temporary directory
|
|
173
|
+
test_dir = Path(tempfile.mkdtemp())
|
|
174
|
+
|
|
175
|
+
try:
|
|
176
|
+
# Initialize all three modules with same config
|
|
177
|
+
config = {
|
|
178
|
+
"project": {"name": "Integration Test Project", "type": "web_application"},
|
|
179
|
+
"language": {"conversation_language": "ko", "documentation_language": "ko"},
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
# Initialize modules
|
|
183
|
+
doc_manager = documentation_manager.DocumentationManager(str(test_dir), config)
|
|
184
|
+
lang_init = language_initializer.LanguageInitializer(str(test_dir), config)
|
|
185
|
+
template_opt = template_optimizer.TemplateOptimizer(str(test_dir), config)
|
|
186
|
+
|
|
187
|
+
print("✅ All modules initialized successfully")
|
|
188
|
+
|
|
189
|
+
# Test 1: Language + Documentation integration
|
|
190
|
+
print("\\n🌐📚 Testing Language + Documentation integration...")
|
|
191
|
+
|
|
192
|
+
# Set up language configuration
|
|
193
|
+
lang_result = lang_init.initialize_language_configuration(
|
|
194
|
+
language="ko", user_name="통합 테스트", domains=["backend"]
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
# Create documentation structure
|
|
198
|
+
doc_result = doc_manager.initialize_documentation_structure()
|
|
199
|
+
|
|
200
|
+
# Test multilingual documentation
|
|
201
|
+
multilingual_result = lang_init.create_multilingual_documentation_structure("ko")
|
|
202
|
+
|
|
203
|
+
integration_success = all(
|
|
204
|
+
[
|
|
205
|
+
lang_result["success"],
|
|
206
|
+
doc_result["success"],
|
|
207
|
+
multilingual_result["success"],
|
|
208
|
+
]
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
print(f"✅ Language + Documentation integration: {integration_success}")
|
|
212
|
+
|
|
213
|
+
# Test 2: Template + Documentation integration
|
|
214
|
+
print("\\n⚡📚 Testing Template + Documentation integration...")
|
|
215
|
+
|
|
216
|
+
# Create test templates
|
|
217
|
+
templates_dir = test_dir / "templates"
|
|
218
|
+
templates_dir.mkdir(exist_ok=True)
|
|
219
|
+
|
|
220
|
+
(templates_dir / "docs_template.md").write_text(
|
|
221
|
+
"# Documentation Template\\n\\nContent here...", encoding="utf-8"
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
# Analyze templates
|
|
225
|
+
analysis = template_opt.analyze_project_templates()
|
|
226
|
+
|
|
227
|
+
# Generate documentation using templates
|
|
228
|
+
spec_data = {
|
|
229
|
+
"id": "INTEGRATION-SPEC",
|
|
230
|
+
"title": "통합 테스트 기능",
|
|
231
|
+
"description": "모듈 통합 테스트",
|
|
232
|
+
"requirements": ["요구사항 1", "요구사항 2"],
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
docs_from_spec = doc_manager.generate_documentation_from_spec(spec_data)
|
|
236
|
+
|
|
237
|
+
template_doc_success = analysis["success"] and docs_from_spec["success"]
|
|
238
|
+
|
|
239
|
+
print(f"✅ Template + Documentation integration: {template_doc_success}")
|
|
240
|
+
|
|
241
|
+
# Test 3: All modules together
|
|
242
|
+
print("\\n🔧🌐📚 Testing all modules together...")
|
|
243
|
+
|
|
244
|
+
# Complete workflow
|
|
245
|
+
workflow_success = True
|
|
246
|
+
|
|
247
|
+
# 1. Language setup
|
|
248
|
+
lang_result = lang_init.initialize_language_configuration(language="ja")
|
|
249
|
+
workflow_success &= lang_result["success"]
|
|
250
|
+
|
|
251
|
+
# 2. Documentation initialization
|
|
252
|
+
doc_result = doc_manager.initialize_documentation_structure()
|
|
253
|
+
workflow_success &= doc_result["success"]
|
|
254
|
+
|
|
255
|
+
# 3. Template analysis
|
|
256
|
+
analysis = template_opt.analyze_project_templates()
|
|
257
|
+
workflow_success &= analysis["success"]
|
|
258
|
+
|
|
259
|
+
print(f"✅ Complete workflow: {workflow_success}")
|
|
260
|
+
|
|
261
|
+
return {
|
|
262
|
+
"language_docs_integration": integration_success,
|
|
263
|
+
"template_docs_integration": template_doc_success,
|
|
264
|
+
"complete_workflow": workflow_success,
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
except Exception as e:
|
|
268
|
+
print(f"❌ Integration test error: {e}")
|
|
269
|
+
import traceback
|
|
270
|
+
|
|
271
|
+
traceback.print_exc()
|
|
272
|
+
return {"success": False, "error": str(e)}
|
|
273
|
+
|
|
274
|
+
finally:
|
|
275
|
+
# Cleanup
|
|
276
|
+
import shutil
|
|
277
|
+
|
|
278
|
+
shutil.rmtree(test_dir, ignore_errors=True)
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
def test_performance():
|
|
282
|
+
"""Test performance characteristics."""
|
|
283
|
+
print("\\n📈 Performance Testing")
|
|
284
|
+
print("=" * 30)
|
|
285
|
+
|
|
286
|
+
import time
|
|
287
|
+
|
|
288
|
+
# Create temporary directory
|
|
289
|
+
test_dir = Path(tempfile.mkdtemp())
|
|
290
|
+
|
|
291
|
+
try:
|
|
292
|
+
config = {
|
|
293
|
+
"project": {"name": "Performance Test", "type": "web_application"},
|
|
294
|
+
"language": {"conversation_language": "en"},
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
performance_results = {}
|
|
298
|
+
|
|
299
|
+
# Test module initialization time
|
|
300
|
+
start_time = time.time()
|
|
301
|
+
|
|
302
|
+
doc_manager = documentation_manager.DocumentationManager(str(test_dir), config)
|
|
303
|
+
lang_init = language_initializer.LanguageInitializer(str(test_dir), config)
|
|
304
|
+
template_opt = template_optimizer.TemplateOptimizer(str(test_dir), config)
|
|
305
|
+
|
|
306
|
+
init_time = time.time() - start_time
|
|
307
|
+
performance_results["module_initialization"] = init_time
|
|
308
|
+
|
|
309
|
+
print(f"⏱️ Module initialization: {init_time:.3f}s")
|
|
310
|
+
|
|
311
|
+
# Test documentation generation time
|
|
312
|
+
start_time = time.time()
|
|
313
|
+
|
|
314
|
+
doc_manager.initialize_documentation_structure()
|
|
315
|
+
|
|
316
|
+
doc_time = time.time() - start_time
|
|
317
|
+
performance_results["documentation_generation"] = doc_time
|
|
318
|
+
|
|
319
|
+
print(f"⏱️ Documentation generation: {doc_time:.3f}s")
|
|
320
|
+
|
|
321
|
+
# Test language detection time
|
|
322
|
+
start_time = time.time()
|
|
323
|
+
|
|
324
|
+
# Create some test files
|
|
325
|
+
(test_dir / "test.py").write_text(
|
|
326
|
+
"# Korean comments\\ndef calculate():\\n # 계산 함수\\n return 100",
|
|
327
|
+
encoding="utf-8",
|
|
328
|
+
)
|
|
329
|
+
|
|
330
|
+
lang_init.detect_project_language()
|
|
331
|
+
|
|
332
|
+
lang_time = time.time() - start_time
|
|
333
|
+
performance_results["language_detection"] = lang_time
|
|
334
|
+
|
|
335
|
+
print(f"⏱️ Language detection: {lang_time:.3f}s")
|
|
336
|
+
|
|
337
|
+
# Test template analysis time
|
|
338
|
+
templates_dir = test_dir / "templates"
|
|
339
|
+
templates_dir.mkdir(exist_ok=True)
|
|
340
|
+
|
|
341
|
+
# Create multiple test templates
|
|
342
|
+
for i in range(5):
|
|
343
|
+
(templates_dir / f"template_{i}.md").write_text(
|
|
344
|
+
f"# Template {i}\\n\\nContent for template {i}.", encoding="utf-8"
|
|
345
|
+
)
|
|
346
|
+
|
|
347
|
+
start_time = time.time()
|
|
348
|
+
|
|
349
|
+
template_opt.analyze_project_templates()
|
|
350
|
+
|
|
351
|
+
template_time = time.time() - start_time
|
|
352
|
+
performance_results["template_analysis"] = template_time
|
|
353
|
+
|
|
354
|
+
print(f"⏱️ Template analysis (5 files): {template_time:.3f}s")
|
|
355
|
+
|
|
356
|
+
# Performance benchmarks
|
|
357
|
+
print("\\n📊 Performance Benchmarks:")
|
|
358
|
+
print(f" Module initialization (<1s): {'✅' if init_time < 1.0 else '❌'}")
|
|
359
|
+
print(f" Documentation generation (<3s): {'✅' if doc_time < 3.0 else '❌'}")
|
|
360
|
+
print(f" Language detection (<0.5s): {'✅' if lang_time < 0.5 else '❌'}")
|
|
361
|
+
print(f" Template analysis (<2s): {'✅' if template_time < 2.0 else '❌'}")
|
|
362
|
+
|
|
363
|
+
total_time = sum(performance_results.values())
|
|
364
|
+
print(f"\\n🕐 Total time: {total_time:.3f}s")
|
|
365
|
+
|
|
366
|
+
return performance_results
|
|
367
|
+
|
|
368
|
+
finally:
|
|
369
|
+
# Cleanup
|
|
370
|
+
import shutil
|
|
371
|
+
|
|
372
|
+
shutil.rmtree(test_dir, ignore_errors=True)
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
def main():
|
|
376
|
+
"""Run all integration tests."""
|
|
377
|
+
print("🧪 MoAI Menu Project - Integration Test Suite")
|
|
378
|
+
print("=" * 50)
|
|
379
|
+
print("Testing core functionality and module integration")
|
|
380
|
+
print("=" * 50)
|
|
381
|
+
|
|
382
|
+
try:
|
|
383
|
+
# Run individual module tests
|
|
384
|
+
module_results = test_individual_modules()
|
|
385
|
+
|
|
386
|
+
# Run integration tests
|
|
387
|
+
integration_results = test_module_integration()
|
|
388
|
+
|
|
389
|
+
# Run performance tests
|
|
390
|
+
performance_results = test_performance()
|
|
391
|
+
|
|
392
|
+
# Summary
|
|
393
|
+
print("\\n🎉 Test Summary")
|
|
394
|
+
print("=" * 20)
|
|
395
|
+
|
|
396
|
+
# Module success rates
|
|
397
|
+
total_modules = len(module_results)
|
|
398
|
+
successful_modules = sum(1 for result in module_results.values() if result.get("success", False))
|
|
399
|
+
|
|
400
|
+
print(f"📦 Modules: {successful_modules}/{total_modules} successful")
|
|
401
|
+
|
|
402
|
+
# Integration success rates
|
|
403
|
+
total_integrations = len(integration_results)
|
|
404
|
+
successful_integrations = sum(1 for result in integration_results.values() if result is True)
|
|
405
|
+
|
|
406
|
+
print(f"🔗 Integrations: {successful_integrations}/{total_integrations} successful")
|
|
407
|
+
|
|
408
|
+
# Performance summary
|
|
409
|
+
avg_time = sum(performance_results.values()) / len(performance_results)
|
|
410
|
+
print(f"📈 Average operation time: {avg_time:.3f}s")
|
|
411
|
+
|
|
412
|
+
# Overall assessment
|
|
413
|
+
overall_success = successful_modules == total_modules and successful_integrations == total_integrations
|
|
414
|
+
|
|
415
|
+
print(f"\\n🎯 Overall Result: {'✅ SUCCESS' if overall_success else '❌ ISSUES DETECTED'}")
|
|
416
|
+
|
|
417
|
+
if overall_success:
|
|
418
|
+
print("\\n🚀 MoAI Menu Project system is fully functional!")
|
|
419
|
+
print("✅ All modules working correctly")
|
|
420
|
+
print("✅ Module integration successful")
|
|
421
|
+
print("✅ Performance within acceptable limits")
|
|
422
|
+
else:
|
|
423
|
+
print("\\n⚠️ Some issues detected - review test results")
|
|
424
|
+
|
|
425
|
+
return 0 if overall_success else 1
|
|
426
|
+
|
|
427
|
+
except Exception as e:
|
|
428
|
+
print(f"\\n❌ Test suite failed with error: {e}")
|
|
429
|
+
import traceback
|
|
430
|
+
|
|
431
|
+
traceback.print_exc()
|
|
432
|
+
return 1
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
if __name__ == "__main__":
|
|
436
|
+
sys.exit(main())
|