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,566 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Documentation generation for SPEC-REDESIGN-001
|
|
3
|
+
|
|
4
|
+
Generates:
|
|
5
|
+
- product.md: Project vision and value proposition
|
|
6
|
+
- structure.md: System architecture and components
|
|
7
|
+
- tech.md: Technology stack and trade-offs
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from copy import deepcopy
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
from typing import Any, Dict, List, Optional
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class DocumentationGenerator:
|
|
16
|
+
"""Generates project documentation from brainstorm responses.
|
|
17
|
+
|
|
18
|
+
Produces three complementary markdown documents for agent context:
|
|
19
|
+
- product.md: Project vision, users, value, roadmap
|
|
20
|
+
- structure.md: System architecture and components
|
|
21
|
+
- tech.md: Technology stack, trade-offs, performance, security
|
|
22
|
+
|
|
23
|
+
Used by project-manager, tdd-implementer, and domain expert agents.
|
|
24
|
+
|
|
25
|
+
Example:
|
|
26
|
+
>>> generator = DocumentationGenerator()
|
|
27
|
+
>>> responses = {'project_vision': 'Build fast API', ...}
|
|
28
|
+
>>> docs = generator.generate_all_documents(responses)
|
|
29
|
+
>>> generator.save_all_documents(docs)
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
def __init__(self):
|
|
33
|
+
"""Initialize with built-in documentation templates."""
|
|
34
|
+
self.templates = self._load_templates()
|
|
35
|
+
|
|
36
|
+
@staticmethod
|
|
37
|
+
def _load_templates() -> Dict[str, str]:
|
|
38
|
+
"""Load documentation templates.
|
|
39
|
+
|
|
40
|
+
Returns:
|
|
41
|
+
Dictionary with 'product', 'structure', 'tech' template strings.
|
|
42
|
+
"""
|
|
43
|
+
return {
|
|
44
|
+
"product": """# Project Vision
|
|
45
|
+
|
|
46
|
+
## Vision Statement
|
|
47
|
+
{vision}
|
|
48
|
+
|
|
49
|
+
## Target Users
|
|
50
|
+
{target_users}
|
|
51
|
+
|
|
52
|
+
## Value Proposition
|
|
53
|
+
{value_proposition}
|
|
54
|
+
|
|
55
|
+
## Roadmap
|
|
56
|
+
{roadmap}
|
|
57
|
+
|
|
58
|
+
## AI Analysis Insights
|
|
59
|
+
{ai_insights}
|
|
60
|
+
|
|
61
|
+
**Generated**: This document was auto-generated based on project analysis.
|
|
62
|
+
""",
|
|
63
|
+
"structure": """# System Architecture
|
|
64
|
+
|
|
65
|
+
## Architecture Overview
|
|
66
|
+
{system_architecture}
|
|
67
|
+
|
|
68
|
+
## Core Components
|
|
69
|
+
{core_components}
|
|
70
|
+
|
|
71
|
+
## Component Relationships
|
|
72
|
+
{relationships}
|
|
73
|
+
|
|
74
|
+
## Dependencies
|
|
75
|
+
{dependencies}
|
|
76
|
+
|
|
77
|
+
**Design Notes**: This architecture document provides reference for implementation teams.
|
|
78
|
+
""",
|
|
79
|
+
"tech": """# Technology Stack
|
|
80
|
+
|
|
81
|
+
## Technology Selection
|
|
82
|
+
{technology_selection}
|
|
83
|
+
|
|
84
|
+
## Trade-off Analysis
|
|
85
|
+
{trade_offs}
|
|
86
|
+
|
|
87
|
+
## Performance Considerations
|
|
88
|
+
{performance}
|
|
89
|
+
|
|
90
|
+
## Security Considerations
|
|
91
|
+
{security}
|
|
92
|
+
|
|
93
|
+
## Setup Guide
|
|
94
|
+
{setup_guide}
|
|
95
|
+
|
|
96
|
+
**Version**: Technology stack selection guide, subject to updates.
|
|
97
|
+
""",
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
def generate_product_md(self, responses: Dict[str, Any]) -> str:
|
|
101
|
+
"""Generate product.md from brainstorm responses.
|
|
102
|
+
|
|
103
|
+
Creates marketing and strategic documentation from brainstorm responses.
|
|
104
|
+
Includes vision statement, target users, value proposition, and roadmap.
|
|
105
|
+
|
|
106
|
+
Args:
|
|
107
|
+
responses: Brainstorm response dictionary with keys:
|
|
108
|
+
- project_vision: High-level project vision
|
|
109
|
+
- target_users: Description of target user segment
|
|
110
|
+
- value_proposition: Unique value provided
|
|
111
|
+
- roadmap: Development roadmap
|
|
112
|
+
|
|
113
|
+
Returns:
|
|
114
|
+
Formatted markdown content for product.md
|
|
115
|
+
|
|
116
|
+
Example:
|
|
117
|
+
>>> responses = {
|
|
118
|
+
... 'project_vision': 'Fast API framework',
|
|
119
|
+
... 'target_users': 'Python developers',
|
|
120
|
+
... 'value_proposition': 'Speed and simplicity',
|
|
121
|
+
... 'roadmap': 'v1.0 in Q1 2025',
|
|
122
|
+
... }
|
|
123
|
+
>>> gen = DocumentationGenerator()
|
|
124
|
+
>>> content = gen.generate_product_md(responses)
|
|
125
|
+
>>> 'Vision' in content
|
|
126
|
+
True
|
|
127
|
+
"""
|
|
128
|
+
template = self.templates["product"]
|
|
129
|
+
|
|
130
|
+
content = template.format(
|
|
131
|
+
vision=responses.get("project_vision", ""),
|
|
132
|
+
target_users=responses.get("target_users", ""),
|
|
133
|
+
value_proposition=responses.get("value_proposition", ""),
|
|
134
|
+
roadmap=responses.get("roadmap", ""),
|
|
135
|
+
ai_insights=self._generate_ai_insights(responses),
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
return content.strip()
|
|
139
|
+
|
|
140
|
+
def generate_structure_md(self, responses: Dict[str, Any]) -> str:
|
|
141
|
+
"""Generate structure.md from brainstorm responses.
|
|
142
|
+
|
|
143
|
+
Creates architecture documentation for system design.
|
|
144
|
+
Includes architecture overview, components, relationships, dependencies.
|
|
145
|
+
|
|
146
|
+
Args:
|
|
147
|
+
responses: Brainstorm response dictionary with keys:
|
|
148
|
+
- system_architecture: Architecture overview
|
|
149
|
+
- core_components: List/description of core components
|
|
150
|
+
- relationships: How components interact
|
|
151
|
+
- dependencies: External dependencies
|
|
152
|
+
|
|
153
|
+
Returns:
|
|
154
|
+
Formatted markdown content for structure.md
|
|
155
|
+
|
|
156
|
+
Example:
|
|
157
|
+
>>> responses = {
|
|
158
|
+
... 'system_architecture': 'Microservices',
|
|
159
|
+
... 'core_components': 'API, Database, Cache',
|
|
160
|
+
... 'relationships': 'API calls Database',
|
|
161
|
+
... 'dependencies': 'PostgreSQL, Redis',
|
|
162
|
+
... }
|
|
163
|
+
>>> gen = DocumentationGenerator()
|
|
164
|
+
>>> content = gen.generate_structure_md(responses)
|
|
165
|
+
>>> 'Architecture' in content.lower()
|
|
166
|
+
True
|
|
167
|
+
"""
|
|
168
|
+
template = self.templates["structure"]
|
|
169
|
+
|
|
170
|
+
content = template.format(
|
|
171
|
+
system_architecture=responses.get("system_architecture", ""),
|
|
172
|
+
core_components=responses.get("core_components", ""),
|
|
173
|
+
relationships=responses.get("relationships", ""),
|
|
174
|
+
dependencies=responses.get("dependencies", ""),
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
return content.strip()
|
|
178
|
+
|
|
179
|
+
def generate_tech_md(self, responses: Dict[str, Any]) -> str:
|
|
180
|
+
"""Generate tech.md from brainstorm responses.
|
|
181
|
+
|
|
182
|
+
Creates technical documentation for technology decisions.
|
|
183
|
+
Includes tech stack, trade-offs, performance, security, setup.
|
|
184
|
+
|
|
185
|
+
Args:
|
|
186
|
+
responses: Brainstorm response dictionary with keys:
|
|
187
|
+
- technology_selection: Technologies chosen
|
|
188
|
+
- trade_offs: Trade-offs made in tech selection
|
|
189
|
+
- performance: Performance requirements
|
|
190
|
+
- security: Security considerations
|
|
191
|
+
- setup_guide: How to set up the tech stack
|
|
192
|
+
|
|
193
|
+
Returns:
|
|
194
|
+
Formatted markdown content for tech.md
|
|
195
|
+
|
|
196
|
+
Example:
|
|
197
|
+
>>> responses = {
|
|
198
|
+
... 'technology_selection': 'Python, FastAPI, PostgreSQL',
|
|
199
|
+
... 'trade_offs': 'FastAPI over Django for performance',
|
|
200
|
+
... 'performance': 'Sub-100ms latency',
|
|
201
|
+
... 'security': 'OAuth2, TLS',
|
|
202
|
+
... 'setup_guide': 'pip install -r requirements.txt',
|
|
203
|
+
... }
|
|
204
|
+
>>> gen = DocumentationGenerator()
|
|
205
|
+
>>> content = gen.generate_tech_md(responses)
|
|
206
|
+
>>> 'Technology' in content
|
|
207
|
+
True
|
|
208
|
+
"""
|
|
209
|
+
template = self.templates["tech"]
|
|
210
|
+
|
|
211
|
+
content = template.format(
|
|
212
|
+
technology_selection=responses.get("technology_selection", ""),
|
|
213
|
+
trade_offs=responses.get("trade_offs", ""),
|
|
214
|
+
performance=responses.get("performance", ""),
|
|
215
|
+
security=responses.get("security", ""),
|
|
216
|
+
setup_guide=responses.get("setup_guide", ""),
|
|
217
|
+
)
|
|
218
|
+
|
|
219
|
+
return content.strip()
|
|
220
|
+
|
|
221
|
+
def generate_all_documents(
|
|
222
|
+
self,
|
|
223
|
+
brainstorm_responses: Dict[str, Any],
|
|
224
|
+
) -> Dict[str, str]:
|
|
225
|
+
"""Generate all three documents from brainstorm responses.
|
|
226
|
+
|
|
227
|
+
Produces complete documentation set: product, structure, tech.
|
|
228
|
+
|
|
229
|
+
Args:
|
|
230
|
+
brainstorm_responses: Brainstorm responses with keys for
|
|
231
|
+
product, structure, and tech generation
|
|
232
|
+
|
|
233
|
+
Returns:
|
|
234
|
+
Dictionary with 'product', 'structure', 'tech' keys and
|
|
235
|
+
markdown content as values.
|
|
236
|
+
|
|
237
|
+
Example:
|
|
238
|
+
>>> gen = DocumentationGenerator()
|
|
239
|
+
>>> responses = {...}
|
|
240
|
+
>>> docs = gen.generate_all_documents(responses)
|
|
241
|
+
>>> len(docs)
|
|
242
|
+
3
|
|
243
|
+
"""
|
|
244
|
+
return {
|
|
245
|
+
"product": self.generate_product_md(brainstorm_responses),
|
|
246
|
+
"structure": self.generate_structure_md(brainstorm_responses),
|
|
247
|
+
"tech": self.generate_tech_md(brainstorm_responses),
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
@staticmethod
|
|
251
|
+
def _generate_ai_insights(responses: Dict[str, Any]) -> str:
|
|
252
|
+
"""Generate AI analysis insights from responses.
|
|
253
|
+
|
|
254
|
+
Analyzes brainstorm responses and generates insights about
|
|
255
|
+
completeness and quality.
|
|
256
|
+
|
|
257
|
+
Args:
|
|
258
|
+
responses: Brainstorm response dictionary
|
|
259
|
+
|
|
260
|
+
Returns:
|
|
261
|
+
Formatted insights text with bullet points or status message.
|
|
262
|
+
"""
|
|
263
|
+
# In real implementation, would call AI analysis
|
|
264
|
+
insights = []
|
|
265
|
+
|
|
266
|
+
if "project_vision" in responses:
|
|
267
|
+
insights.append("- Vision is clear and actionable")
|
|
268
|
+
|
|
269
|
+
if "target_users" in responses:
|
|
270
|
+
insights.append("- Target user segment identified")
|
|
271
|
+
|
|
272
|
+
if "value_proposition" in responses:
|
|
273
|
+
insights.append("- Value proposition articulated")
|
|
274
|
+
|
|
275
|
+
return "\n".join(insights) if insights else "AI analysis pending"
|
|
276
|
+
|
|
277
|
+
def save_all_documents(
|
|
278
|
+
self,
|
|
279
|
+
documents: Dict[str, str],
|
|
280
|
+
base_path: Path = Path(".moai/project"),
|
|
281
|
+
) -> None:
|
|
282
|
+
"""Save all generated documents to disk.
|
|
283
|
+
|
|
284
|
+
Writes product.md, structure.md, and tech.md to .moai/project/
|
|
285
|
+
directory. Creates directory if it doesn't exist.
|
|
286
|
+
|
|
287
|
+
Args:
|
|
288
|
+
documents: Dictionary with 'product', 'structure', 'tech' keys
|
|
289
|
+
base_path: Directory to save documents (default: .moai/project)
|
|
290
|
+
|
|
291
|
+
Returns:
|
|
292
|
+
None
|
|
293
|
+
|
|
294
|
+
Example:
|
|
295
|
+
>>> gen = DocumentationGenerator()
|
|
296
|
+
>>> docs = {'product': '...', 'structure': '...', 'tech': '...'}
|
|
297
|
+
>>> gen.save_all_documents(docs)
|
|
298
|
+
>>> (Path('.moai/project') / 'product.md').exists()
|
|
299
|
+
True
|
|
300
|
+
"""
|
|
301
|
+
base_path.mkdir(parents=True, exist_ok=True)
|
|
302
|
+
|
|
303
|
+
file_mapping = {
|
|
304
|
+
"product": "product.md",
|
|
305
|
+
"structure": "structure.md",
|
|
306
|
+
"tech": "tech.md",
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
for doc_type, filename in file_mapping.items():
|
|
310
|
+
if doc_type in documents:
|
|
311
|
+
filepath = base_path / filename
|
|
312
|
+
filepath.write_text(documents[doc_type], encoding="utf-8")
|
|
313
|
+
|
|
314
|
+
def load_document(self, doc_name: str, base_path: Path = Path(".moai/project")) -> Optional[str]:
|
|
315
|
+
"""Load a generated document from disk.
|
|
316
|
+
|
|
317
|
+
Reads markdown document content for use by agents.
|
|
318
|
+
Returns None if file doesn't exist.
|
|
319
|
+
|
|
320
|
+
Args:
|
|
321
|
+
doc_name: Document filename (e.g., 'product.md', 'structure.md', 'tech.md')
|
|
322
|
+
base_path: Directory containing documents (default: .moai/project)
|
|
323
|
+
|
|
324
|
+
Returns:
|
|
325
|
+
Document content as string, or None if file not found.
|
|
326
|
+
|
|
327
|
+
Example:
|
|
328
|
+
>>> gen = DocumentationGenerator()
|
|
329
|
+
>>> content = gen.load_document('product.md')
|
|
330
|
+
>>> 'Vision' in content if content else False
|
|
331
|
+
True
|
|
332
|
+
"""
|
|
333
|
+
filepath = base_path / doc_name
|
|
334
|
+
if filepath.exists():
|
|
335
|
+
return filepath.read_text(encoding="utf-8")
|
|
336
|
+
return None
|
|
337
|
+
|
|
338
|
+
def create_minimal_templates(self, base_path: Path = Path(".moai/project")) -> None:
|
|
339
|
+
"""Create minimal template files for Quick Start mode"""
|
|
340
|
+
base_path.mkdir(parents=True, exist_ok=True)
|
|
341
|
+
|
|
342
|
+
minimal_templates = {
|
|
343
|
+
"product.md": """# Project Vision
|
|
344
|
+
|
|
345
|
+
## Vision Statement
|
|
346
|
+
[Add your project vision here]
|
|
347
|
+
|
|
348
|
+
## Target Users
|
|
349
|
+
[Describe your target users]
|
|
350
|
+
|
|
351
|
+
## Value Proposition
|
|
352
|
+
[Explain the unique value]
|
|
353
|
+
|
|
354
|
+
## Roadmap
|
|
355
|
+
[Outline your development roadmap]
|
|
356
|
+
""",
|
|
357
|
+
"structure.md": """# System Architecture
|
|
358
|
+
|
|
359
|
+
## Architecture Overview
|
|
360
|
+
[Describe the system architecture]
|
|
361
|
+
|
|
362
|
+
## Core Components
|
|
363
|
+
[List and describe core components]
|
|
364
|
+
|
|
365
|
+
## Component Relationships
|
|
366
|
+
[Explain how components interact]
|
|
367
|
+
|
|
368
|
+
## Dependencies
|
|
369
|
+
[Document external dependencies]
|
|
370
|
+
""",
|
|
371
|
+
"tech.md": """# Technology Stack
|
|
372
|
+
|
|
373
|
+
## Technology Selection
|
|
374
|
+
[List selected technologies and frameworks]
|
|
375
|
+
|
|
376
|
+
## Trade-off Analysis
|
|
377
|
+
[Explain trade-offs made]
|
|
378
|
+
|
|
379
|
+
## Performance Considerations
|
|
380
|
+
[Document performance requirements]
|
|
381
|
+
|
|
382
|
+
## Security Considerations
|
|
383
|
+
[Document security measures]
|
|
384
|
+
|
|
385
|
+
## Setup Guide
|
|
386
|
+
[Provide setup instructions]
|
|
387
|
+
""",
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
for filename, content in minimal_templates.items():
|
|
391
|
+
filepath = base_path / filename
|
|
392
|
+
filepath.write_text(content, encoding="utf-8")
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
class BrainstormQuestionGenerator:
|
|
396
|
+
"""Generates brainstorm questions for different depths"""
|
|
397
|
+
|
|
398
|
+
@staticmethod
|
|
399
|
+
def get_quick_questions() -> List[Dict[str, str]]:
|
|
400
|
+
"""Get Quick (5-10 min) brainstorm questions"""
|
|
401
|
+
return [
|
|
402
|
+
{
|
|
403
|
+
"id": "q1_vision",
|
|
404
|
+
"question": "What is your project vision in one sentence?",
|
|
405
|
+
"category": "vision",
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"id": "q2_users",
|
|
409
|
+
"question": "Who are your target users?",
|
|
410
|
+
"category": "vision",
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"id": "q3_architecture",
|
|
414
|
+
"question": "What is the basic system architecture?",
|
|
415
|
+
"category": "architecture",
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"id": "q4_tech",
|
|
419
|
+
"question": "What are your key technologies?",
|
|
420
|
+
"category": "tech",
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"id": "q5_team",
|
|
424
|
+
"question": "What is your team composition?",
|
|
425
|
+
"category": "team",
|
|
426
|
+
},
|
|
427
|
+
]
|
|
428
|
+
|
|
429
|
+
@staticmethod
|
|
430
|
+
def get_standard_questions() -> List[Dict[str, str]]:
|
|
431
|
+
"""Get Standard (10-15 min) brainstorm questions"""
|
|
432
|
+
quick = BrainstormQuestionGenerator.get_quick_questions()
|
|
433
|
+
additional = [
|
|
434
|
+
{
|
|
435
|
+
"id": "q6_tradeoffs_1",
|
|
436
|
+
"question": "What major trade-offs did you make?",
|
|
437
|
+
"category": "tradeoffs",
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"id": "q7_tradeoffs_2",
|
|
441
|
+
"question": "What alternatives did you consider?",
|
|
442
|
+
"category": "tradeoffs",
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"id": "q8_performance",
|
|
446
|
+
"question": "What are your performance requirements?",
|
|
447
|
+
"category": "performance",
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"id": "q9_security",
|
|
451
|
+
"question": "What security considerations are important?",
|
|
452
|
+
"category": "security",
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"id": "q10_scalability",
|
|
456
|
+
"question": "How should the system scale?",
|
|
457
|
+
"category": "scalability",
|
|
458
|
+
},
|
|
459
|
+
]
|
|
460
|
+
return quick + additional
|
|
461
|
+
|
|
462
|
+
@staticmethod
|
|
463
|
+
def get_deep_questions() -> List[Dict[str, str]]:
|
|
464
|
+
"""Get Deep (25-30 min) brainstorm questions"""
|
|
465
|
+
standard = BrainstormQuestionGenerator.get_standard_questions()
|
|
466
|
+
additional = [
|
|
467
|
+
{
|
|
468
|
+
"id": "q11_competitors_1",
|
|
469
|
+
"question": "What competitors exist in this space?",
|
|
470
|
+
"category": "market",
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"id": "q12_competitors_2",
|
|
474
|
+
"question": "How do you differentiate from competitors?",
|
|
475
|
+
"category": "market",
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"id": "q13_market",
|
|
479
|
+
"question": "What market trends are relevant?",
|
|
480
|
+
"category": "market",
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"id": "q14_innovation",
|
|
484
|
+
"question": "What innovative approaches are you using?",
|
|
485
|
+
"category": "innovation",
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"id": "q15_costs",
|
|
489
|
+
"question": "What is your cost model?",
|
|
490
|
+
"category": "business",
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
"id": "q16_best_practices",
|
|
494
|
+
"question": "What best practices are you following?",
|
|
495
|
+
"category": "practices",
|
|
496
|
+
},
|
|
497
|
+
]
|
|
498
|
+
return standard + additional
|
|
499
|
+
|
|
500
|
+
@staticmethod
|
|
501
|
+
def get_questions_by_depth(depth: str) -> List[Dict[str, str]]:
|
|
502
|
+
"""Get questions for specified depth"""
|
|
503
|
+
if depth == "quick":
|
|
504
|
+
return BrainstormQuestionGenerator.get_quick_questions()
|
|
505
|
+
elif depth == "standard":
|
|
506
|
+
return BrainstormQuestionGenerator.get_standard_questions()
|
|
507
|
+
elif depth == "deep":
|
|
508
|
+
return BrainstormQuestionGenerator.get_deep_questions()
|
|
509
|
+
else:
|
|
510
|
+
return BrainstormQuestionGenerator.get_quick_questions()
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
class AgentContextInjector:
|
|
514
|
+
"""Injects project documentation into agent context"""
|
|
515
|
+
|
|
516
|
+
@staticmethod
|
|
517
|
+
def inject_project_manager_context(
|
|
518
|
+
agent_config: Dict[str, Any],
|
|
519
|
+
base_path: Path = Path(".moai/project"),
|
|
520
|
+
) -> Dict[str, Any]:
|
|
521
|
+
"""Inject product.md into project-manager agent"""
|
|
522
|
+
config = deepcopy(agent_config)
|
|
523
|
+
|
|
524
|
+
doc_path = base_path / "product.md"
|
|
525
|
+
if doc_path.exists():
|
|
526
|
+
content = doc_path.read_text(encoding="utf-8")
|
|
527
|
+
if "system_context" not in config:
|
|
528
|
+
config["system_context"] = ""
|
|
529
|
+
config["system_context"] += f"\n\n## Project Documentation\n{content}"
|
|
530
|
+
|
|
531
|
+
return config
|
|
532
|
+
|
|
533
|
+
@staticmethod
|
|
534
|
+
def inject_tdd_implementer_context(
|
|
535
|
+
agent_config: Dict[str, Any],
|
|
536
|
+
base_path: Path = Path(".moai/project"),
|
|
537
|
+
) -> Dict[str, Any]:
|
|
538
|
+
"""Inject structure.md into tdd-implementer agent"""
|
|
539
|
+
config = deepcopy(agent_config)
|
|
540
|
+
|
|
541
|
+
doc_path = base_path / "structure.md"
|
|
542
|
+
if doc_path.exists():
|
|
543
|
+
content = doc_path.read_text(encoding="utf-8")
|
|
544
|
+
if "architecture_context" not in config:
|
|
545
|
+
config["architecture_context"] = ""
|
|
546
|
+
config["architecture_context"] += f"\n\n## Architecture Reference\n{content}"
|
|
547
|
+
|
|
548
|
+
return config
|
|
549
|
+
|
|
550
|
+
@staticmethod
|
|
551
|
+
def inject_domain_expert_context(
|
|
552
|
+
agent_config: Dict[str, Any],
|
|
553
|
+
agent_type: str, # 'backend_expert' or 'frontend_expert'
|
|
554
|
+
base_path: Path = Path(".moai/project"),
|
|
555
|
+
) -> Dict[str, Any]:
|
|
556
|
+
"""Inject tech.md into domain expert agents"""
|
|
557
|
+
config = deepcopy(agent_config)
|
|
558
|
+
|
|
559
|
+
doc_path = base_path / "tech.md"
|
|
560
|
+
if doc_path.exists():
|
|
561
|
+
content = doc_path.read_text(encoding="utf-8")
|
|
562
|
+
if "tech_context" not in config:
|
|
563
|
+
config["tech_context"] = ""
|
|
564
|
+
config["tech_context"] += f"\n\n## Technology Stack Reference\n{content}"
|
|
565
|
+
|
|
566
|
+
return config
|