moai-adk 0.15.1__py3-none-any.whl → 0.25.4__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 +1 -2
- moai_adk/__main__.py +85 -2
- moai_adk/cli/__init__.py +0 -1
- moai_adk/cli/commands/__init__.py +0 -1
- moai_adk/cli/commands/analyze.py +127 -0
- moai_adk/cli/commands/backup.py +5 -3
- moai_adk/cli/commands/doctor.py +35 -11
- moai_adk/cli/commands/improve_user_experience.py +348 -0
- moai_adk/cli/commands/init.py +150 -23
- moai_adk/cli/commands/language.py +269 -0
- moai_adk/cli/commands/migrate.py +158 -0
- moai_adk/cli/commands/status.py +13 -12
- moai_adk/cli/commands/update.py +364 -60
- moai_adk/cli/commands/validate_links.py +118 -0
- moai_adk/cli/main.py +3 -2
- moai_adk/cli/prompts/init_prompts.py +79 -82
- moai_adk/core/__init__.py +0 -1
- moai_adk/core/analysis/__init__.py +9 -0
- moai_adk/core/analysis/session_analyzer.py +439 -0
- moai_adk/core/claude_integration.py +421 -0
- moai_adk/core/command_helpers.py +270 -0
- moai_adk/core/config/__init__.py +6 -0
- moai_adk/core/config/auto_spec_config.py +346 -0
- moai_adk/core/config/migration.py +133 -12
- moai_adk/core/context_manager.py +279 -0
- moai_adk/core/diagnostics/slash_commands.py +0 -1
- moai_adk/core/error_recovery_system.py +1289 -0
- moai_adk/core/git/__init__.py +0 -1
- moai_adk/core/git/branch.py +0 -1
- moai_adk/core/git/branch_manager.py +4 -4
- moai_adk/core/git/checkpoint.py +1 -5
- moai_adk/core/git/commit.py +0 -1
- moai_adk/core/git/event_detector.py +3 -5
- moai_adk/core/git/manager.py +0 -1
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +925 -0
- moai_adk/core/integration/__init__.py +22 -0
- moai_adk/core/integration/engine.py +169 -0
- moai_adk/core/integration/integration_tester.py +225 -0
- moai_adk/core/integration/models.py +88 -0
- moai_adk/core/integration/utils.py +211 -0
- moai_adk/core/issue_creator.py +28 -18
- moai_adk/core/language_config.py +202 -0
- moai_adk/core/language_validator.py +556 -0
- moai_adk/core/mcp/setup.py +113 -0
- moai_adk/core/migration/__init__.py +18 -0
- moai_adk/core/migration/backup_manager.py +208 -0
- moai_adk/core/migration/file_migrator.py +218 -0
- moai_adk/core/migration/version_detector.py +143 -0
- moai_adk/core/migration/version_migrator.py +228 -0
- moai_adk/core/performance/__init__.py +6 -0
- moai_adk/core/performance/cache_system.py +318 -0
- moai_adk/core/performance/parallel_processor.py +116 -0
- moai_adk/core/project/__init__.py +0 -1
- moai_adk/core/project/backup_utils.py +2 -7
- moai_adk/core/project/checker.py +3 -3
- moai_adk/core/project/detector.py +20 -40
- moai_adk/core/project/initializer.py +42 -17
- moai_adk/core/project/phase_executor.py +415 -58
- moai_adk/core/project/validator.py +6 -25
- moai_adk/core/quality/__init__.py +1 -1
- moai_adk/core/quality/trust_checker.py +64 -110
- moai_adk/core/quality/validators/__init__.py +1 -1
- moai_adk/core/quality/validators/base_validator.py +1 -1
- moai_adk/core/rollback_manager.py +993 -0
- moai_adk/core/session_manager.py +667 -0
- moai_adk/core/spec/confidence_scoring.py +749 -0
- moai_adk/core/spec/ears_template_engine.py +1182 -0
- moai_adk/core/spec/quality_validator.py +721 -0
- moai_adk/core/spec_status_manager.py +488 -0
- moai_adk/core/template/__init__.py +0 -1
- moai_adk/core/template/backup.py +41 -1
- moai_adk/core/template/config.py +11 -12
- moai_adk/core/template/languages.py +0 -1
- moai_adk/core/template/merger.py +79 -22
- moai_adk/core/template/processor.py +614 -40
- moai_adk/core/template_engine.py +36 -27
- moai_adk/foundation/git/commit_templates.py +565 -0
- moai_adk/foundation/trust/trust_principles.py +725 -0
- moai_adk/foundation/trust/validation_checklist.py +1678 -0
- moai_adk/statusline/__init__.py +38 -0
- moai_adk/statusline/alfred_detector.py +107 -0
- moai_adk/statusline/config.py +364 -0
- moai_adk/statusline/enhanced_output_style_detector.py +364 -0
- moai_adk/statusline/git_collector.py +190 -0
- moai_adk/statusline/main.py +228 -0
- moai_adk/statusline/metrics_tracker.py +78 -0
- moai_adk/statusline/renderer.py +327 -0
- moai_adk/statusline/update_checker.py +135 -0
- moai_adk/statusline/version_reader.py +647 -0
- moai_adk/templates/.git-hooks/pre-commit +66 -0
- moai_adk/templates/.git-hooks/pre-push +116 -4
- moai_adk/templates/.github/workflows/moai-gitflow.yml +1 -7
- moai_adk/templates/.github/workflows/spec-issue-sync.yml +0 -1
- moai_adk/templates/.gitignore +44 -0
- moai_adk/templates/.mcp.json +22 -0
- moai_adk/templates/CLAUDE.md +450 -1071
- moai_adk/utils/__init__.py +0 -1
- moai_adk/utils/banner.py +0 -1
- moai_adk/utils/common.py +308 -0
- moai_adk/utils/link_validator.py +249 -0
- moai_adk/utils/logger.py +4 -9
- moai_adk/utils/safe_file_reader.py +210 -0
- moai_adk/utils/user_experience.py +531 -0
- moai_adk-0.25.4.dist-info/METADATA +2279 -0
- moai_adk-0.25.4.dist-info/RECORD +112 -0
- moai_adk/core/tags/__init__.py +0 -86
- moai_adk/core/tags/ci_validator.py +0 -463
- moai_adk/core/tags/cli.py +0 -283
- moai_adk/core/tags/generator.py +0 -109
- moai_adk/core/tags/inserter.py +0 -99
- moai_adk/core/tags/mapper.py +0 -126
- moai_adk/core/tags/parser.py +0 -76
- moai_adk/core/tags/pre_commit_validator.py +0 -393
- moai_adk/core/tags/reporter.py +0 -956
- moai_adk/core/tags/tags.py +0 -149
- moai_adk/core/tags/validator.py +0 -897
- moai_adk/templates/.claude/agents/alfred/backend-expert.md +0 -319
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -316
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -208
- moai_adk/templates/.claude/agents/alfred/devops-expert.md +0 -464
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -214
- moai_adk/templates/.claude/agents/alfred/frontend-expert.md +0 -357
- moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -406
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -423
- moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -312
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -343
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -865
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -426
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -361
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -428
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -375
- moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +0 -571
- moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1854
- moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -880
- moai_adk/templates/.claude/commands/alfred/2-run.md +0 -793
- moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -1084
- moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -149
- moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -748
- moai_adk/templates/.claude/hooks/alfred/core/timeout.py +0 -136
- moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +0 -108
- moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +0 -29
- moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +0 -100
- moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +0 -170
- moai_adk/templates/.claude/hooks/alfred/shared/core/checkpoint.py +0 -271
- moai_adk/templates/.claude/hooks/alfred/shared/core/context.py +0 -67
- moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +0 -749
- moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +0 -230
- moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +0 -21
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +0 -154
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +0 -174
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +0 -87
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +0 -61
- moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +0 -112
- moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +0 -1
- moai_adk/templates/.claude/hooks/alfred/utils/timeout.py +0 -161
- moai_adk/templates/.claude/settings.json +0 -144
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +0 -70
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +0 -62
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +0 -242
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +0 -56
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +0 -444
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +0 -62
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +0 -405
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +0 -51
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +0 -355
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +0 -239
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +0 -323
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +0 -286
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +0 -126
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/SKILL.md +0 -74
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/reference.md +0 -269
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +0 -150
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/SKILL.md +0 -198
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/examples.md +0 -431
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/reference.md +0 -141
- moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +0 -89
- moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +0 -122
- moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +0 -369
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +0 -508
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +0 -481
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +0 -100
- moai_adk/templates/.claude/skills/moai-alfred-reporting/SKILL.md +0 -273
- moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +0 -77
- moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +0 -265
- moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +0 -539
- moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +0 -84
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +0 -137
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +0 -219
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +0 -161
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +0 -541
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +0 -622
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/SKILL.md +0 -115
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/reference.md +0 -348
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +0 -211
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +0 -288
- moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
- moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
- moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
- moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
- moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
- moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
- moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
- moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
- moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
- moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/reference.md +0 -218
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +0 -482
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +0 -278
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +0 -477
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +0 -271
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +0 -583
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +0 -526
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +0 -465
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +0 -328
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +0 -312
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +0 -285
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +0 -278
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +0 -303
- moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
- moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
- moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +0 -802
- moai_adk/templates/.claude/skills/moai-design-systems/examples.md +0 -1238
- moai_adk/templates/.claude/skills/moai-design-systems/reference.md +0 -673
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -290
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -1633
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -660
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -128
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
- moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
- moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -116
- moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -127
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -126
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -126
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -433
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -624
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -316
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -127
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -125
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -133
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -34
- moai_adk/templates/.claude/skills/moai-project-documentation.md +0 -622
- moai_adk/templates/.github/workflows/c-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/cpp-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/csharp-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/dart-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/go-tag-validation.yml +0 -130
- moai_adk/templates/.github/workflows/java-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/javascript-tag-validation.yml +0 -135
- moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/php-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/python-tag-validation.yml +0 -118
- moai_adk/templates/.github/workflows/release.yml +0 -118
- moai_adk/templates/.github/workflows/ruby-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/rust-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/shell-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/swift-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/tag-report.yml +0 -269
- moai_adk/templates/.github/workflows/tag-validation.yml +0 -186
- moai_adk/templates/.github/workflows/typescript-tag-validation.yml +0 -154
- moai_adk/templates/.moai/config.json +0 -115
- moai_adk/templates/workflows/go-tag-validation.yml +0 -30
- moai_adk/templates/workflows/javascript-tag-validation.yml +0 -41
- moai_adk/templates/workflows/python-tag-validation.yml +0 -42
- moai_adk/templates/workflows/typescript-tag-validation.yml +0 -31
- moai_adk-0.15.1.dist-info/METADATA +0 -3094
- moai_adk-0.15.1.dist-info/RECORD +0 -365
- {moai_adk-0.15.1.dist-info → moai_adk-0.25.4.dist-info}/WHEEL +0 -0
- {moai_adk-0.15.1.dist-info → moai_adk-0.25.4.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.15.1.dist-info → moai_adk-0.25.4.dist-info}/licenses/LICENSE +0 -0
moai_adk/__init__.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# @CODE:PY314-001 | SPEC: SPEC-PY314-001.md | TEST: tests/unit/test_foundation.py
|
|
2
1
|
"""MoAI Agentic Development Kit
|
|
3
2
|
|
|
4
3
|
SPEC-First TDD Framework with Alfred SuperAgent
|
|
@@ -9,6 +8,6 @@ from importlib.metadata import PackageNotFoundError, version
|
|
|
9
8
|
try:
|
|
10
9
|
__version__ = version("moai-adk")
|
|
11
10
|
except PackageNotFoundError:
|
|
12
|
-
__version__ = "0.
|
|
11
|
+
__version__ = "0.23.0-dev"
|
|
13
12
|
|
|
14
13
|
__all__ = ["__version__"]
|
moai_adk/__main__.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# type: ignore
|
|
2
2
|
"""MoAI-ADK CLI Entry Point
|
|
3
3
|
|
|
4
4
|
Implements the CLI entry point:
|
|
@@ -19,6 +19,7 @@ from moai_adk import __version__
|
|
|
19
19
|
from moai_adk.cli.commands.backup import backup
|
|
20
20
|
from moai_adk.cli.commands.doctor import doctor
|
|
21
21
|
from moai_adk.cli.commands.init import init
|
|
22
|
+
from moai_adk.cli.commands.migrate import migrate
|
|
22
23
|
from moai_adk.cli.commands.status import status
|
|
23
24
|
from moai_adk.cli.commands.update import update
|
|
24
25
|
|
|
@@ -32,7 +33,10 @@ def show_logo() -> None:
|
|
|
32
33
|
|
|
33
34
|
# Print with Rich styling
|
|
34
35
|
console.print(logo, style="cyan bold", highlight=False)
|
|
35
|
-
console.print(
|
|
36
|
+
console.print(
|
|
37
|
+
" Modu-AI's Agentic Development Kit w/ SuperAgent 🎩 Alfred",
|
|
38
|
+
style="yellow bold",
|
|
39
|
+
)
|
|
36
40
|
console.print()
|
|
37
41
|
console.print(" Version: ", style="green", end="")
|
|
38
42
|
console.print(__version__, style="cyan bold")
|
|
@@ -54,13 +58,92 @@ def cli(ctx: click.Context) -> None:
|
|
|
54
58
|
if ctx.invoked_subcommand is None:
|
|
55
59
|
show_logo()
|
|
56
60
|
|
|
61
|
+
|
|
57
62
|
cli.add_command(init)
|
|
58
63
|
cli.add_command(doctor)
|
|
59
64
|
cli.add_command(status)
|
|
60
65
|
cli.add_command(backup)
|
|
66
|
+
cli.add_command(migrate)
|
|
61
67
|
cli.add_command(update)
|
|
62
68
|
|
|
63
69
|
|
|
70
|
+
# 링크 검증 명령
|
|
71
|
+
@click.command(name="validate-links")
|
|
72
|
+
@click.option(
|
|
73
|
+
"--file",
|
|
74
|
+
"-f",
|
|
75
|
+
default="README.ko.md",
|
|
76
|
+
help="검증할 파일 경로 (기본값: README.ko.md)",
|
|
77
|
+
)
|
|
78
|
+
@click.option(
|
|
79
|
+
"--max-concurrent",
|
|
80
|
+
"-c",
|
|
81
|
+
type=int,
|
|
82
|
+
default=3,
|
|
83
|
+
help="동시에 검증할 최대 링크 수 (기본값: 3)",
|
|
84
|
+
)
|
|
85
|
+
@click.option(
|
|
86
|
+
"--timeout", "-t", type=int, default=8, help="요청 타임아웃 (초) (기본값: 8)"
|
|
87
|
+
)
|
|
88
|
+
@click.option("--output", "-o", help="결과를 저장할 파일 경로")
|
|
89
|
+
@click.option("--verbose", "-v", is_flag=True, help="상세한 진행 상황 표시")
|
|
90
|
+
def validate_links(file, max_concurrent, timeout, output, verbose):
|
|
91
|
+
"""온라인 문서 링크 검증"""
|
|
92
|
+
from moai_adk.cli.commands.validate_links import run_command as validate_links_run
|
|
93
|
+
|
|
94
|
+
# CLI 명령 실행
|
|
95
|
+
sys.exit(validate_links_run(locals()))
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
# 사용자 경험 개선 명령
|
|
99
|
+
@click.command(name="improve-ux")
|
|
100
|
+
@click.option(
|
|
101
|
+
"--url",
|
|
102
|
+
"-u",
|
|
103
|
+
default="https://adk.mo.ai.kr",
|
|
104
|
+
help="분석할 URL (기본값: https://adk.mo.ai.kr)",
|
|
105
|
+
)
|
|
106
|
+
@click.option("--output", "-o", help="분석 결과를 저장할 파일 경로")
|
|
107
|
+
@click.option(
|
|
108
|
+
"--format",
|
|
109
|
+
"-f",
|
|
110
|
+
type=click.Choice(["json", "markdown", "text"]),
|
|
111
|
+
default="markdown",
|
|
112
|
+
help="출력 형식 (기본값: markdown)",
|
|
113
|
+
)
|
|
114
|
+
@click.option("--verbose", "-v", is_flag=True, help="상세한 진행 상황 표시")
|
|
115
|
+
@click.option(
|
|
116
|
+
"--max-workers",
|
|
117
|
+
"-w",
|
|
118
|
+
type=int,
|
|
119
|
+
default=5,
|
|
120
|
+
help="동시에 처리할 최대 작업 수 (기본값: 5)",
|
|
121
|
+
)
|
|
122
|
+
def improve_ux(url, output, format, verbose, max_workers):
|
|
123
|
+
"""사용자 경험 개선 분석"""
|
|
124
|
+
|
|
125
|
+
# 임시 args 객체 생성
|
|
126
|
+
class Args:
|
|
127
|
+
def __init__(self, **kwargs):
|
|
128
|
+
for key, value in kwargs.items():
|
|
129
|
+
setattr(self, key, value)
|
|
130
|
+
|
|
131
|
+
args = Args(
|
|
132
|
+
url=url, output=output, format=format, verbose=verbose, max_workers=max_workers
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
# CLI 명령 실행
|
|
136
|
+
from moai_adk.cli.commands.improve_user_experience import (
|
|
137
|
+
run_command as improve_ux_run,
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
sys.exit(improve_ux_run(args))
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
cli.add_command(validate_links)
|
|
144
|
+
cli.add_command(improve_ux)
|
|
145
|
+
|
|
146
|
+
|
|
64
147
|
def main() -> int:
|
|
65
148
|
"""CLI entry point"""
|
|
66
149
|
try:
|
moai_adk/cli/__init__.py
CHANGED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Analyze command for MoAI-ADK
|
|
4
|
+
|
|
5
|
+
Analyze Claude Code sessions and generate improvement suggestions.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
from typing import Optional
|
|
11
|
+
|
|
12
|
+
import click
|
|
13
|
+
from rich.console import Console
|
|
14
|
+
from rich.table import Table
|
|
15
|
+
|
|
16
|
+
from moai_adk.core.analysis.session_analyzer import SessionAnalyzer
|
|
17
|
+
|
|
18
|
+
console = Console()
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@click.command()
|
|
22
|
+
@click.option("--days", "-d", default=7, help="Number of days to analyze (default: 7)")
|
|
23
|
+
@click.option("--output", "-o", type=click.Path(), help="Output file path")
|
|
24
|
+
@click.option("--verbose", "-v", is_flag=True, help="Verbose output")
|
|
25
|
+
@click.option(
|
|
26
|
+
"--report-only", "-r", is_flag=True, help="Generate report only (no console output)"
|
|
27
|
+
)
|
|
28
|
+
@click.option(
|
|
29
|
+
"--project-path",
|
|
30
|
+
"-p",
|
|
31
|
+
type=click.Path(),
|
|
32
|
+
help="Project root path (default: current directory)",
|
|
33
|
+
)
|
|
34
|
+
def analyze(
|
|
35
|
+
days: int,
|
|
36
|
+
output: Optional[Path],
|
|
37
|
+
verbose: bool,
|
|
38
|
+
report_only: bool,
|
|
39
|
+
project_path: Optional[Path],
|
|
40
|
+
):
|
|
41
|
+
"""
|
|
42
|
+
Analyze Claude Code sessions from the last N days
|
|
43
|
+
|
|
44
|
+
Analyzes Claude Code session logs to identify usage patterns,
|
|
45
|
+
error frequencies, and generate improvement suggestions.
|
|
46
|
+
|
|
47
|
+
Examples:
|
|
48
|
+
moai-adk analyze session
|
|
49
|
+
moai-adk analyze session --days 14 --verbose
|
|
50
|
+
moai-adk analyze session --output /path/to/report.md
|
|
51
|
+
"""
|
|
52
|
+
if project_path is None:
|
|
53
|
+
project_path = Path.cwd()
|
|
54
|
+
|
|
55
|
+
# Validate project path
|
|
56
|
+
if not (project_path / ".moai").exists():
|
|
57
|
+
console.print(
|
|
58
|
+
"[red]Error:[/red] Not a MoAI-ADK project (missing .moai directory)"
|
|
59
|
+
)
|
|
60
|
+
console.print(f"[blue]Current path:[/blue] {project_path}")
|
|
61
|
+
return
|
|
62
|
+
|
|
63
|
+
# Initialize analyzer
|
|
64
|
+
analyzer = SessionAnalyzer(days_back=days, verbose=verbose)
|
|
65
|
+
|
|
66
|
+
if not report_only:
|
|
67
|
+
console.print(f"[blue]📊 Analyzing sessions from last {days} days...[/blue]")
|
|
68
|
+
|
|
69
|
+
# Parse sessions
|
|
70
|
+
patterns = analyzer.parse_sessions()
|
|
71
|
+
|
|
72
|
+
if not report_only:
|
|
73
|
+
console.print(
|
|
74
|
+
f"[green]✅ Analyzed {patterns['total_sessions']} sessions[/green]"
|
|
75
|
+
)
|
|
76
|
+
console.print(f"[blue] Total events: {patterns['total_events']}[/blue]")
|
|
77
|
+
|
|
78
|
+
# Display summary table
|
|
79
|
+
table = Table(title="Session Summary")
|
|
80
|
+
table.add_column("Metric", style="cyan")
|
|
81
|
+
table.add_column("Value", style="green")
|
|
82
|
+
|
|
83
|
+
table.add_row("Total Sessions", str(patterns["total_sessions"]))
|
|
84
|
+
table.add_row("Total Events", str(patterns["total_events"]))
|
|
85
|
+
table.add_row("Failed Sessions", str(patterns["failed_sessions"]))
|
|
86
|
+
table.add_row("Success Rate", f"{patterns.get('success_rate', 0):.1f}%")
|
|
87
|
+
|
|
88
|
+
console.print(table)
|
|
89
|
+
|
|
90
|
+
# Show top tools
|
|
91
|
+
if patterns["tool_usage"]:
|
|
92
|
+
console.print("\n[bold]🔧 Top Tools Used:[/bold]")
|
|
93
|
+
top_tools = sorted(
|
|
94
|
+
patterns["tool_usage"].items(), key=lambda x: x[1], reverse=True
|
|
95
|
+
)[:10]
|
|
96
|
+
|
|
97
|
+
tools_table = Table()
|
|
98
|
+
tools_table.add_column("Tool", style="cyan")
|
|
99
|
+
tools_table.add_column("Usage", style="green")
|
|
100
|
+
|
|
101
|
+
for tool, count in top_tools:
|
|
102
|
+
tools_table.add_row(f"`{tool}`", str(count))
|
|
103
|
+
|
|
104
|
+
console.print(tools_table)
|
|
105
|
+
|
|
106
|
+
# Save report
|
|
107
|
+
output_path_obj = Path(output) if output else None
|
|
108
|
+
report_path = analyzer.save_report(output_path_obj, project_path)
|
|
109
|
+
|
|
110
|
+
if not report_only:
|
|
111
|
+
console.print(f"\n[green]📄 Report saved: {report_path}[/green]")
|
|
112
|
+
|
|
113
|
+
# Show key suggestions
|
|
114
|
+
report_content = analyzer.generate_report()
|
|
115
|
+
if "💡 Improvement Suggestions" in report_content:
|
|
116
|
+
console.print("\n[bold yellow]💡 Key Suggestions:[/bold yellow]")
|
|
117
|
+
# Extract suggestions section
|
|
118
|
+
suggestions_start = report_content.find("💡 Improvement Suggestions")
|
|
119
|
+
if suggestions_start != -1:
|
|
120
|
+
suggestions_section = report_content[suggestions_start:]
|
|
121
|
+
# Extract first few suggestions
|
|
122
|
+
lines = suggestions_section.split("\n")[
|
|
123
|
+
2:
|
|
124
|
+
] # Skip header and empty line
|
|
125
|
+
for line in lines[:10]: # Show first 10 lines
|
|
126
|
+
if line.strip() and not line.startswith("---"):
|
|
127
|
+
console.print(line)
|
moai_adk/cli/commands/backup.py
CHANGED
|
@@ -20,9 +20,9 @@ Backup location: .moai-backups/YYYYMMDD-HHMMSS/
|
|
|
20
20
|
- Tag backup with feature branch name for easier recovery
|
|
21
21
|
|
|
22
22
|
2. **After restoration from backup**:
|
|
23
|
-
- Verify with `Skill("moai-foundation-tags")` that TAGs are intact
|
|
24
23
|
- Run `Skill("moai-foundation-trust")` to validate toolchain
|
|
25
24
|
"""
|
|
25
|
+
|
|
26
26
|
from pathlib import Path
|
|
27
27
|
|
|
28
28
|
import click
|
|
@@ -38,7 +38,7 @@ console = Console()
|
|
|
38
38
|
"--path",
|
|
39
39
|
type=click.Path(exists=True),
|
|
40
40
|
default=".",
|
|
41
|
-
help="Project path (default: current directory)"
|
|
41
|
+
help="Project path (default: current directory)",
|
|
42
42
|
)
|
|
43
43
|
def backup(path: str) -> None:
|
|
44
44
|
"""Create a backup of the current project.
|
|
@@ -64,7 +64,9 @@ def backup(path: str) -> None:
|
|
|
64
64
|
backup_path = processor.create_backup()
|
|
65
65
|
|
|
66
66
|
# Success message
|
|
67
|
-
console.print(
|
|
67
|
+
console.print(
|
|
68
|
+
f"[green]✓ Backup completed: {backup_path.relative_to(project_path)}[/green]"
|
|
69
|
+
)
|
|
68
70
|
|
|
69
71
|
# Show backup contents
|
|
70
72
|
backup_items = list(backup_path.iterdir())
|
moai_adk/cli/commands/doctor.py
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# @CODE:CLI-001 | SPEC: SPEC-CLI-001/spec.md | TEST: tests/unit/test_doctor.py
|
|
2
|
-
# @CODE:CLAUDE-COMMANDS-001:CLI | SPEC: SPEC-CLAUDE-COMMANDS-001/spec.md | TEST: tests/unit/test_slash_commands.py
|
|
3
1
|
"""MoAI-ADK doctor command
|
|
4
2
|
|
|
5
3
|
System diagnostics command:
|
|
@@ -49,12 +47,25 @@ console = Console()
|
|
|
49
47
|
|
|
50
48
|
|
|
51
49
|
@click.command()
|
|
52
|
-
@click.option(
|
|
50
|
+
@click.option(
|
|
51
|
+
"--verbose",
|
|
52
|
+
"-v",
|
|
53
|
+
is_flag=True,
|
|
54
|
+
help="Show detailed tool versions and language detection",
|
|
55
|
+
)
|
|
53
56
|
@click.option("--fix", is_flag=True, help="Suggest fixes for missing tools")
|
|
54
57
|
@click.option("--export", type=click.Path(), help="Export diagnostics to JSON file")
|
|
55
58
|
@click.option("--check", type=str, help="Check specific tool only")
|
|
56
|
-
@click.option(
|
|
57
|
-
|
|
59
|
+
@click.option(
|
|
60
|
+
"--check-commands", is_flag=True, help="Diagnose slash command loading issues"
|
|
61
|
+
)
|
|
62
|
+
def doctor(
|
|
63
|
+
verbose: bool,
|
|
64
|
+
fix: bool,
|
|
65
|
+
export: str | None,
|
|
66
|
+
check: str | None,
|
|
67
|
+
check_commands: bool,
|
|
68
|
+
) -> None:
|
|
58
69
|
"""Check system requirements and project health
|
|
59
70
|
|
|
60
71
|
Verifies:
|
|
@@ -81,7 +92,9 @@ def doctor(verbose: bool, fix: bool, export: str | None, check: str | None, chec
|
|
|
81
92
|
diagnostics_data["detected_language"] = language
|
|
82
93
|
|
|
83
94
|
if verbose:
|
|
84
|
-
console.print(
|
|
95
|
+
console.print(
|
|
96
|
+
f"[dim]Detected language: {language or 'Unknown'}[/dim]\n"
|
|
97
|
+
)
|
|
85
98
|
|
|
86
99
|
if language:
|
|
87
100
|
checker = SystemChecker()
|
|
@@ -110,7 +123,10 @@ def doctor(verbose: bool, fix: bool, export: str | None, check: str | None, chec
|
|
|
110
123
|
|
|
111
124
|
# In fix mode, suggest installation commands for missing tools
|
|
112
125
|
if fix and "language_tools" in diagnostics_data:
|
|
113
|
-
_suggest_fixes(
|
|
126
|
+
_suggest_fixes(
|
|
127
|
+
diagnostics_data["language_tools"],
|
|
128
|
+
diagnostics_data.get("detected_language"),
|
|
129
|
+
)
|
|
114
130
|
|
|
115
131
|
# When exporting, write diagnostics to JSON
|
|
116
132
|
if export:
|
|
@@ -122,16 +138,22 @@ def doctor(verbose: bool, fix: bool, export: str | None, check: str | None, chec
|
|
|
122
138
|
console.print("\n[green]✓ All checks passed[/green]")
|
|
123
139
|
else:
|
|
124
140
|
console.print("\n[yellow]⚠ Some checks failed[/yellow]")
|
|
125
|
-
console.print(
|
|
141
|
+
console.print(
|
|
142
|
+
"[dim]Run [cyan]python -m moai_adk doctor --verbose[/cyan] for detailed diagnostics[/dim]"
|
|
143
|
+
)
|
|
126
144
|
|
|
127
145
|
except Exception as e:
|
|
128
146
|
console.print(f"[red]✗ Diagnostic failed: {e}[/red]")
|
|
129
147
|
raise
|
|
130
148
|
|
|
131
149
|
|
|
132
|
-
def _display_language_tools(
|
|
150
|
+
def _display_language_tools(
|
|
151
|
+
language: str, tools: dict[str, bool], checker: SystemChecker
|
|
152
|
+
) -> None:
|
|
133
153
|
"""Display a table of language-specific tools (helper)"""
|
|
134
|
-
table = Table(
|
|
154
|
+
table = Table(
|
|
155
|
+
show_header=True, header_style="bold cyan", title=f"{language.title()} Tools"
|
|
156
|
+
)
|
|
135
157
|
table.add_column("Tool", style="dim")
|
|
136
158
|
table.add_column("Status", justify="center")
|
|
137
159
|
table.add_column("Version", style="blue")
|
|
@@ -256,5 +278,7 @@ def _check_slash_commands() -> None:
|
|
|
256
278
|
elif total == 0:
|
|
257
279
|
console.print("[yellow]⚠ No command files found in .claude/commands/[/yellow]")
|
|
258
280
|
else:
|
|
259
|
-
console.print(
|
|
281
|
+
console.print(
|
|
282
|
+
f"[yellow]⚠ Only {valid}/{total} command files are valid[/yellow]"
|
|
283
|
+
)
|
|
260
284
|
console.print("[dim]Fix the issues above to enable slash commands[/dim]")
|