claude-mpm 4.20.3__py3-none-any.whl → 4.25.10__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 claude-mpm might be problematic. Click here for more details.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/BASE_PM.md +23 -6
- claude_mpm/agents/OUTPUT_STYLE.md +3 -48
- claude_mpm/agents/PM_INSTRUCTIONS.md +1783 -34
- claude_mpm/agents/WORKFLOW.md +75 -2
- claude_mpm/agents/base_agent.json +6 -3
- claude_mpm/agents/frontmatter_validator.py +1 -1
- claude_mpm/agents/templates/api_qa.json +5 -2
- claude_mpm/agents/templates/circuit_breakers.md +108 -2
- claude_mpm/agents/templates/documentation.json +33 -6
- claude_mpm/agents/templates/javascript_engineer_agent.json +380 -0
- claude_mpm/agents/templates/php-engineer.json +10 -4
- claude_mpm/agents/templates/pm_red_flags.md +89 -19
- claude_mpm/agents/templates/project_organizer.json +7 -3
- claude_mpm/agents/templates/qa.json +2 -1
- claude_mpm/agents/templates/react_engineer.json +1 -0
- claude_mpm/agents/templates/research.json +82 -12
- claude_mpm/agents/templates/security.json +4 -4
- claude_mpm/agents/templates/tauri_engineer.json +274 -0
- claude_mpm/agents/templates/ticketing.json +10 -6
- claude_mpm/agents/templates/version_control.json +4 -2
- claude_mpm/agents/templates/web_qa.json +2 -1
- claude_mpm/cli/README.md +253 -0
- claude_mpm/cli/__init__.py +11 -1
- claude_mpm/cli/commands/aggregate.py +1 -1
- claude_mpm/cli/commands/analyze.py +3 -3
- claude_mpm/cli/commands/cleanup.py +1 -1
- claude_mpm/cli/commands/configure_agent_display.py +4 -4
- claude_mpm/cli/commands/debug.py +12 -12
- claude_mpm/cli/commands/hook_errors.py +277 -0
- claude_mpm/cli/commands/mcp_install_commands.py +1 -1
- claude_mpm/cli/commands/mcp_install_commands.py.backup +284 -0
- claude_mpm/cli/commands/mpm_init/README.md +365 -0
- claude_mpm/cli/commands/mpm_init/__init__.py +73 -0
- claude_mpm/cli/commands/mpm_init/core.py +573 -0
- claude_mpm/cli/commands/mpm_init/display.py +341 -0
- claude_mpm/cli/commands/mpm_init/git_activity.py +427 -0
- claude_mpm/cli/commands/mpm_init/modes.py +397 -0
- claude_mpm/cli/commands/mpm_init/prompts.py +442 -0
- claude_mpm/cli/commands/mpm_init_cli.py +396 -0
- claude_mpm/cli/commands/mpm_init_handler.py +67 -1
- claude_mpm/cli/commands/run.py +124 -128
- claude_mpm/cli/commands/skills.py +522 -34
- claude_mpm/cli/executor.py +56 -0
- claude_mpm/cli/interactive/agent_wizard.py +5 -5
- claude_mpm/cli/parsers/base_parser.py +28 -0
- claude_mpm/cli/parsers/mpm_init_parser.py +42 -0
- claude_mpm/cli/parsers/skills_parser.py +138 -0
- claude_mpm/cli/startup.py +111 -8
- claude_mpm/cli/startup_display.py +480 -0
- claude_mpm/cli/utils.py +1 -1
- claude_mpm/cli_module/commands.py +1 -1
- claude_mpm/cli_module/refactoring_guide.md +253 -0
- claude_mpm/commands/mpm-help.md +3 -0
- claude_mpm/commands/mpm-init.md +19 -3
- claude_mpm/commands/mpm-resume.md +372 -0
- claude_mpm/commands/mpm-tickets.md +56 -7
- claude_mpm/commands/mpm.md +1 -0
- claude_mpm/config/agent_capabilities.yaml +658 -0
- claude_mpm/config/async_logging_config.yaml +145 -0
- claude_mpm/constants.py +12 -0
- claude_mpm/core/.claude-mpm/logs/hooks_20250730.log +34 -0
- claude_mpm/core/api_validator.py +1 -1
- claude_mpm/core/claude_runner.py +14 -1
- claude_mpm/core/config.py +8 -0
- claude_mpm/core/constants.py +1 -1
- claude_mpm/core/framework/processors/metadata_processor.py +1 -1
- claude_mpm/core/hook_error_memory.py +381 -0
- claude_mpm/core/hook_manager.py +41 -2
- claude_mpm/core/interactive_session.py +48 -3
- claude_mpm/core/interfaces.py +56 -1
- claude_mpm/core/logger.py +3 -1
- claude_mpm/core/oneshot_session.py +39 -0
- claude_mpm/d2/.gitignore +22 -0
- claude_mpm/d2/ARCHITECTURE_COMPARISON.md +273 -0
- claude_mpm/d2/FLASK_INTEGRATION.md +156 -0
- claude_mpm/d2/IMPLEMENTATION_SUMMARY.md +452 -0
- claude_mpm/d2/QUICKSTART.md +186 -0
- claude_mpm/d2/README.md +232 -0
- claude_mpm/d2/STORE_FIX_SUMMARY.md +167 -0
- claude_mpm/d2/SVELTE5_STORES_GUIDE.md +180 -0
- claude_mpm/d2/TESTING.md +288 -0
- claude_mpm/d2/index.html +118 -0
- claude_mpm/d2/package.json +19 -0
- claude_mpm/d2/src/App.svelte +110 -0
- claude_mpm/d2/src/components/Header.svelte +153 -0
- claude_mpm/d2/src/components/MainContent.svelte +74 -0
- claude_mpm/d2/src/components/Sidebar.svelte +85 -0
- claude_mpm/d2/src/components/tabs/EventsTab.svelte +326 -0
- claude_mpm/d2/src/lib/socketio.js +144 -0
- claude_mpm/d2/src/main.js +7 -0
- claude_mpm/d2/src/stores/events.js +114 -0
- claude_mpm/d2/src/stores/socket.js +108 -0
- claude_mpm/d2/src/stores/theme.js +65 -0
- claude_mpm/d2/svelte.config.js +12 -0
- claude_mpm/d2/vite.config.js +15 -0
- claude_mpm/dashboard/.claude-mpm/memories/README.md +36 -0
- claude_mpm/dashboard/BUILD_NUMBER +1 -0
- claude_mpm/dashboard/README.md +121 -0
- claude_mpm/dashboard/VERSION +1 -0
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.tsx +273 -0
- claude_mpm/dashboard/react/components/ErrorBoundary.tsx +75 -0
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.tsx +141 -0
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.tsx +36 -0
- claude_mpm/dashboard/react/components/shared/FilterBar.tsx +89 -0
- claude_mpm/dashboard/react/contexts/DashboardContext.tsx +215 -0
- claude_mpm/dashboard/react/entries/events.tsx +165 -0
- claude_mpm/dashboard/react/hooks/useEvents.ts +191 -0
- claude_mpm/dashboard/react/hooks/useSocket.ts +225 -0
- claude_mpm/dashboard/static/built/REFACTORING_SUMMARY.md +170 -0
- claude_mpm/dashboard/static/built/components/activity-tree.js.map +1 -0
- claude_mpm/dashboard/static/built/components/agent-hierarchy.js +101 -101
- claude_mpm/dashboard/static/built/components/agent-inference.js.map +1 -0
- claude_mpm/dashboard/static/built/components/build-tracker.js +59 -59
- claude_mpm/dashboard/static/built/components/code-simple.js +107 -107
- claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +29 -29
- claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +24 -24
- claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +27 -27
- claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +25 -25
- claude_mpm/dashboard/static/built/components/code-tree.js.map +1 -0
- claude_mpm/dashboard/static/built/components/code-viewer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/connection-debug.js +101 -101
- claude_mpm/dashboard/static/built/components/diff-viewer.js +113 -113
- claude_mpm/dashboard/static/built/components/event-processor.js.map +1 -0
- claude_mpm/dashboard/static/built/components/event-viewer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/export-manager.js.map +1 -0
- claude_mpm/dashboard/static/built/components/file-change-tracker.js +57 -57
- claude_mpm/dashboard/static/built/components/file-change-viewer.js +74 -74
- claude_mpm/dashboard/static/built/components/file-tool-tracker.js.map +1 -0
- claude_mpm/dashboard/static/built/components/file-viewer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/hud-library-loader.js.map +1 -0
- claude_mpm/dashboard/static/built/components/hud-manager.js.map +1 -0
- claude_mpm/dashboard/static/built/components/hud-visualizer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/module-viewer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/session-manager.js.map +1 -0
- claude_mpm/dashboard/static/built/components/socket-manager.js.map +1 -0
- claude_mpm/dashboard/static/built/components/ui-state-manager.js.map +1 -0
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js.map +1 -0
- claude_mpm/dashboard/static/built/components/working-directory.js.map +1 -0
- claude_mpm/dashboard/static/built/connection-manager.js +76 -76
- claude_mpm/dashboard/static/built/dashboard.js.map +1 -0
- claude_mpm/dashboard/static/built/extension-error-handler.js +22 -22
- claude_mpm/dashboard/static/built/react/events.js.map +1 -0
- claude_mpm/dashboard/static/built/shared/dom-helpers.js +9 -9
- claude_mpm/dashboard/static/built/shared/event-bus.js +5 -5
- claude_mpm/dashboard/static/built/shared/logger.js +16 -16
- claude_mpm/dashboard/static/built/shared/tooltip-service.js +6 -6
- claude_mpm/dashboard/static/built/socket-client.js.map +1 -0
- claude_mpm/dashboard/static/css/activity.css +69 -69
- claude_mpm/dashboard/static/css/connection-status.css +10 -10
- claude_mpm/dashboard/static/css/dashboard.css +15 -15
- claude_mpm/dashboard/static/index.html +22 -22
- claude_mpm/dashboard/static/js/REFACTORING_SUMMARY.md +170 -0
- claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
- claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
- claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
- claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
- claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
- claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
- claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
- claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
- claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
- claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
- claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
- claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
- claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
- claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
- claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
- claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
- claude_mpm/dashboard/static/js/connection-manager.js +76 -76
- claude_mpm/dashboard/static/js/dashboard.js +76 -58
- claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
- claude_mpm/dashboard/static/js/shared/dom-helpers.js +9 -9
- claude_mpm/dashboard/static/js/shared/event-bus.js +5 -5
- claude_mpm/dashboard/static/js/shared/logger.js +16 -16
- claude_mpm/dashboard/static/js/shared/tooltip-service.js +6 -6
- claude_mpm/dashboard/static/js/socket-client.js +138 -121
- claude_mpm/dashboard/static/navigation-test-results.md +118 -0
- claude_mpm/dashboard/static/production/main.html +21 -21
- claude_mpm/dashboard/static/test-archive/dashboard.html +22 -22
- claude_mpm/dashboard/templates/.claude-mpm/memories/README.md +36 -0
- claude_mpm/dashboard/templates/.claude-mpm/memories/engineer_agent.md +39 -0
- claude_mpm/dashboard/templates/.claude-mpm/memories/version_control_agent.md +38 -0
- claude_mpm/dashboard/templates/code_simple.html +23 -23
- claude_mpm/dashboard/templates/index.html +18 -18
- claude_mpm/hooks/README.md +143 -0
- claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
- claude_mpm/hooks/claude_hooks/hook_handler.py +24 -7
- claude_mpm/hooks/claude_hooks/installer.py +45 -0
- claude_mpm/hooks/templates/README.md +180 -0
- claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
- claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
- claude_mpm/hooks/templates/settings.json.example +147 -0
- claude_mpm/schemas/agent_schema.json +596 -0
- claude_mpm/schemas/frontmatter_schema.json +165 -0
- claude_mpm/scripts/claude-hook-handler.sh +3 -3
- claude_mpm/scripts/start_activity_logging.py +3 -1
- claude_mpm/services/agents/deployment/agent_format_converter.py +1 -1
- claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
- claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
- claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
- claude_mpm/services/agents/loading/framework_agent_loader.py +8 -8
- claude_mpm/services/agents/local_template_manager.py +3 -1
- claude_mpm/services/cli/session_pause_manager.py +504 -0
- claude_mpm/services/cli/session_resume_helper.py +36 -16
- claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
- claude_mpm/services/core/base.py +26 -11
- claude_mpm/services/core/interfaces.py +56 -1
- claude_mpm/services/core/models/agent_config.py +3 -0
- claude_mpm/services/core/models/process.py +4 -0
- claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
- claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
- claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
- claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
- claude_mpm/services/diagnostics/doctor_reporter.py +6 -4
- claude_mpm/services/diagnostics/models.py +21 -0
- claude_mpm/services/event_bus/README.md +244 -0
- claude_mpm/services/event_bus/direct_relay.py +3 -3
- claude_mpm/services/event_bus/event_bus.py +36 -3
- claude_mpm/services/event_bus/relay.py +23 -7
- claude_mpm/services/events/README.md +303 -0
- claude_mpm/services/events/consumers/logging.py +1 -2
- claude_mpm/services/framework_claude_md_generator/README.md +119 -0
- claude_mpm/services/infrastructure/monitoring/resources.py +1 -1
- claude_mpm/services/local_ops/__init__.py +2 -0
- claude_mpm/services/local_ops/process_manager.py +1 -1
- claude_mpm/services/local_ops/resource_monitor.py +2 -2
- claude_mpm/services/mcp_gateway/README.md +185 -0
- claude_mpm/services/mcp_gateway/auto_configure.py +31 -25
- claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
- claude_mpm/services/mcp_gateway/core/process_pool.py +19 -10
- claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
- claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
- claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +26 -21
- claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
- claude_mpm/services/memory/failure_tracker.py +19 -4
- claude_mpm/services/memory/optimizer.py +1 -1
- claude_mpm/services/model/model_router.py +8 -9
- claude_mpm/services/monitor/daemon.py +1 -1
- claude_mpm/services/monitor/server.py +2 -2
- claude_mpm/services/native_agent_converter.py +356 -0
- claude_mpm/services/port_manager.py +1 -1
- claude_mpm/services/project/documentation_manager.py +2 -1
- claude_mpm/services/project/toolchain_analyzer.py +3 -1
- claude_mpm/services/runner_configuration_service.py +1 -0
- claude_mpm/services/self_upgrade_service.py +165 -7
- claude_mpm/services/skills_config.py +547 -0
- claude_mpm/services/skills_deployer.py +955 -0
- claude_mpm/services/socketio/handlers/connection.py +1 -1
- claude_mpm/services/socketio/handlers/connection.py.backup +217 -0
- claude_mpm/services/socketio/handlers/git.py +2 -2
- claude_mpm/services/socketio/handlers/hook.py.backup +154 -0
- claude_mpm/services/static/.gitkeep +2 -0
- claude_mpm/services/system_instructions_service.py +1 -3
- claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
- claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
- claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +1 -1
- claude_mpm/services/version_control/VERSION +1 -0
- claude_mpm/services/version_control/conflict_resolution.py +6 -4
- claude_mpm/services/visualization/mermaid_generator.py +2 -3
- claude_mpm/skills/__init__.py +3 -3
- claude_mpm/skills/agent_skills_injector.py +42 -49
- claude_mpm/skills/bundled/.gitkeep +2 -0
- claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +4 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +108 -114
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +577 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +467 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +537 -0
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +730 -0
- claude_mpm/skills/bundled/collaboration/git-worktrees.md +317 -0
- claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +46 -41
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +412 -0
- claude_mpm/skills/bundled/collaboration/stacked-prs.md +251 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +36 -73
- claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +362 -0
- claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +312 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +100 -125
- claude_mpm/skills/bundled/debugging/root-cause-tracing/find-polluter.sh +63 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +668 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +587 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +438 -0
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +391 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +28 -72
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +11 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +490 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +425 -0
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +272 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/INTEGRATION.md +611 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/README.md +596 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/SKILL.md +260 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/examples/nextjs-env-structure.md +315 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/frameworks.md +436 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/security.md +433 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/synchronization.md +452 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/troubleshooting.md +404 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/references/validation.md +420 -0
- claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
- claude_mpm/skills/bundled/main/artifacts-builder/LICENSE.txt +202 -0
- claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +13 -1
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/init-artifact.sh +322 -0
- claude_mpm/skills/bundled/main/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- claude_mpm/skills/bundled/main/internal-comms/LICENSE.txt +202 -0
- claude_mpm/skills/bundled/main/internal-comms/SKILL.md +11 -0
- claude_mpm/skills/bundled/main/mcp-builder/LICENSE.txt +202 -0
- claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +109 -277
- claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +412 -0
- claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +1237 -0
- claude_mpm/skills/bundled/main/mcp-builder/scripts/connections.py +17 -10
- claude_mpm/skills/bundled/main/mcp-builder/scripts/evaluation.py +92 -39
- claude_mpm/skills/bundled/main/mcp-builder/scripts/example_evaluation.xml +22 -0
- claude_mpm/skills/bundled/main/mcp-builder/scripts/requirements.txt +2 -0
- claude_mpm/skills/bundled/main/skill-creator/LICENSE.txt +202 -0
- claude_mpm/skills/bundled/main/skill-creator/SKILL.md +135 -155
- claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +500 -0
- claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +464 -0
- claude_mpm/skills/bundled/main/skill-creator/references/examples.md +619 -0
- claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +437 -0
- claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +231 -0
- claude_mpm/skills/bundled/main/skill-creator/scripts/init_skill.py +13 -12
- claude_mpm/skills/bundled/main/skill-creator/scripts/package_skill.py +5 -3
- claude_mpm/skills/bundled/main/skill-creator/scripts/quick_validate.py +19 -12
- claude_mpm/skills/bundled/performance-profiling.md +6 -0
- claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +170 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +602 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +821 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +742 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +726 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +764 -0
- claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +831 -0
- claude_mpm/skills/bundled/react/flexlayout-react.md +742 -0
- claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +226 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +901 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +775 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +937 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +770 -0
- claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +961 -0
- claude_mpm/skills/bundled/tauri/tauri-async-patterns.md +495 -0
- claude_mpm/skills/bundled/tauri/tauri-build-deploy.md +599 -0
- claude_mpm/skills/bundled/tauri/tauri-command-patterns.md +535 -0
- claude_mpm/skills/bundled/tauri/tauri-error-handling.md +613 -0
- claude_mpm/skills/bundled/tauri/tauri-event-system.md +648 -0
- claude_mpm/skills/bundled/tauri/tauri-file-system.md +673 -0
- claude_mpm/skills/bundled/tauri/tauri-frontend-integration.md +767 -0
- claude_mpm/skills/bundled/tauri/tauri-performance.md +669 -0
- claude_mpm/skills/bundled/tauri/tauri-state-management.md +573 -0
- claude_mpm/skills/bundled/tauri/tauri-testing.md +384 -0
- claude_mpm/skills/bundled/tauri/tauri-window-management.md +628 -0
- claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +21 -25
- claude_mpm/skills/bundled/testing/condition-based-waiting/example.ts +158 -0
- claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +253 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/SKILL.md +458 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/examples/example-inspection-report.md +411 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/assertion-quality.md +317 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/inspection-checklist.md +270 -0
- claude_mpm/skills/bundled/testing/test-quality-inspector/references/red-flags.md +436 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +86 -250
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +572 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +411 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +569 -0
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +695 -0
- claude_mpm/skills/bundled/testing/webapp-testing/LICENSE.txt +202 -0
- claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +145 -57
- claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +459 -0
- claude_mpm/skills/bundled/testing/webapp-testing/examples/console_logging.py +6 -6
- claude_mpm/skills/bundled/testing/webapp-testing/examples/element_discovery.py +13 -9
- claude_mpm/skills/bundled/testing/webapp-testing/examples/static_html_automation.py +8 -8
- claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +479 -0
- claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +687 -0
- claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +37 -15
- claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +758 -0
- claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +868 -0
- claude_mpm/skills/skills_registry.py +44 -48
- claude_mpm/skills/skills_service.py +117 -108
- claude_mpm/templates/questions/EXAMPLES.md +501 -0
- claude_mpm/templates/questions/__init__.py +43 -0
- claude_mpm/templates/questions/base.py +193 -0
- claude_mpm/templates/questions/pr_strategy.py +314 -0
- claude_mpm/templates/questions/project_init.py +388 -0
- claude_mpm/templates/questions/ticket_mgmt.py +397 -0
- claude_mpm/tools/README_SOCKETIO_DEBUG.md +224 -0
- claude_mpm/tools/__main__.py +8 -8
- claude_mpm/tools/code_tree_analyzer/README.md +64 -0
- claude_mpm/tools/code_tree_analyzer/__init__.py +45 -0
- claude_mpm/tools/code_tree_analyzer/analysis.py +299 -0
- claude_mpm/tools/code_tree_analyzer/cache.py +131 -0
- claude_mpm/tools/code_tree_analyzer/core.py +380 -0
- claude_mpm/tools/code_tree_analyzer/discovery.py +403 -0
- claude_mpm/tools/code_tree_analyzer/events.py +168 -0
- claude_mpm/tools/code_tree_analyzer/gitignore.py +308 -0
- claude_mpm/tools/code_tree_analyzer/models.py +39 -0
- claude_mpm/tools/code_tree_analyzer/multilang_analyzer.py +224 -0
- claude_mpm/tools/code_tree_analyzer/python_analyzer.py +284 -0
- claude_mpm/utils/agent_dependency_loader.py +3 -3
- claude_mpm/utils/dependency_cache.py +3 -1
- claude_mpm/utils/gitignore.py +241 -0
- claude_mpm/utils/log_cleanup.py +3 -3
- claude_mpm/utils/robust_installer.py +3 -5
- claude_mpm/utils/structured_questions.py +619 -0
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/METADATA +218 -31
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/RECORD +409 -246
- claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
- claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
- claude_mpm/cli/commands/mpm_init.py +0 -2093
- claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
- claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
- claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
- claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
- claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
- claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
- claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
- claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
- claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
- claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
- claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
- claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
- claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
- claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
- claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
- claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
- claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/dist/dashboard.js +0 -2
- claude_mpm/dashboard/static/dist/react/events.js +0 -30
- claude_mpm/dashboard/static/dist/socket-client.js +0 -2
- claude_mpm/dashboard/static/test-archive/test_debug.html +0 -25
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/common-failures.md +0 -213
- claude_mpm/tools/code_tree_analyzer.py +0 -1825
- /claude_mpm/skills/bundled/collaboration/requesting-code-review/{code-reviewer.md → references/code-reviewer-template.md} +0 -0
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/WHEEL +0 -0
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.20.3.dist-info → claude_mpm-4.25.10.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
"""Project initialization question templates.
|
|
2
|
+
|
|
3
|
+
This module provides templates for gathering information during project setup,
|
|
4
|
+
including project type, language, frameworks, and development workflow preferences.
|
|
5
|
+
|
|
6
|
+
Templates:
|
|
7
|
+
- ProjectTypeTemplate: Project type and primary language selection
|
|
8
|
+
- DevelopmentWorkflowTemplate: Testing, CI/CD, and development preferences
|
|
9
|
+
- FrameworkTemplate: Framework and library selection
|
|
10
|
+
|
|
11
|
+
These templates help PM gather necessary context during /mpm-init or new project setup.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
from typing import TYPE_CHECKING
|
|
17
|
+
|
|
18
|
+
from claude_mpm.templates.questions.base import ConditionalTemplate
|
|
19
|
+
from claude_mpm.utils.structured_questions import (
|
|
20
|
+
QuestionBuilder,
|
|
21
|
+
QuestionSet,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
if TYPE_CHECKING:
|
|
25
|
+
from claude_mpm.utils.structured_questions import StructuredQuestion
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class ProjectTypeTemplate(ConditionalTemplate):
|
|
29
|
+
"""Template for project type and language selection.
|
|
30
|
+
|
|
31
|
+
Asks about:
|
|
32
|
+
- Project type (web app, API, library, etc.)
|
|
33
|
+
- Primary programming language
|
|
34
|
+
- Target deployment environment (optional, based on type)
|
|
35
|
+
|
|
36
|
+
Context Parameters:
|
|
37
|
+
existing_files (bool): Whether project has existing files
|
|
38
|
+
detected_language (str): Auto-detected language if any
|
|
39
|
+
|
|
40
|
+
Example:
|
|
41
|
+
>>> template = ProjectTypeTemplate(existing_files=False)
|
|
42
|
+
>>> question_set = template.build()
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
def __init__(
|
|
46
|
+
self,
|
|
47
|
+
existing_files: bool = False,
|
|
48
|
+
detected_language: str | None = None,
|
|
49
|
+
**context,
|
|
50
|
+
):
|
|
51
|
+
"""Initialize project type template.
|
|
52
|
+
|
|
53
|
+
Args:
|
|
54
|
+
existing_files: Whether project directory has existing files
|
|
55
|
+
detected_language: Language auto-detected from existing files
|
|
56
|
+
**context: Additional context values
|
|
57
|
+
"""
|
|
58
|
+
super().__init__(
|
|
59
|
+
existing_files=existing_files,
|
|
60
|
+
detected_language=detected_language,
|
|
61
|
+
**context,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
def build(self) -> QuestionSet:
|
|
65
|
+
"""Build project type questions.
|
|
66
|
+
|
|
67
|
+
Returns:
|
|
68
|
+
QuestionSet with project type questions
|
|
69
|
+
"""
|
|
70
|
+
detected_language = self.get_context("detected_language")
|
|
71
|
+
|
|
72
|
+
questions: list[StructuredQuestion] = []
|
|
73
|
+
|
|
74
|
+
# Question 1: Project type
|
|
75
|
+
type_question = (
|
|
76
|
+
QuestionBuilder()
|
|
77
|
+
.ask("What type of project is this?")
|
|
78
|
+
.header("Project Type")
|
|
79
|
+
.add_option(
|
|
80
|
+
"Web Application",
|
|
81
|
+
"Full-stack web app with frontend and backend",
|
|
82
|
+
)
|
|
83
|
+
.add_option(
|
|
84
|
+
"API Service",
|
|
85
|
+
"Backend API or microservice",
|
|
86
|
+
)
|
|
87
|
+
.add_option(
|
|
88
|
+
"Library/Package",
|
|
89
|
+
"Reusable library or package for distribution",
|
|
90
|
+
)
|
|
91
|
+
.add_option(
|
|
92
|
+
"CLI Tool",
|
|
93
|
+
"Command-line application or tool",
|
|
94
|
+
)
|
|
95
|
+
.build()
|
|
96
|
+
)
|
|
97
|
+
questions.append(type_question)
|
|
98
|
+
|
|
99
|
+
# Question 2: Primary language (only if not detected)
|
|
100
|
+
if not detected_language:
|
|
101
|
+
language_question = (
|
|
102
|
+
QuestionBuilder()
|
|
103
|
+
.ask("What is the primary programming language?")
|
|
104
|
+
.header("Language")
|
|
105
|
+
.add_option(
|
|
106
|
+
"Python",
|
|
107
|
+
"Python 3.8+ for backend, scripts, or data processing",
|
|
108
|
+
)
|
|
109
|
+
.add_option(
|
|
110
|
+
"JavaScript/TypeScript",
|
|
111
|
+
"JavaScript or TypeScript for Node.js or full-stack",
|
|
112
|
+
)
|
|
113
|
+
.add_option(
|
|
114
|
+
"Go",
|
|
115
|
+
"Go for high-performance services and tools",
|
|
116
|
+
)
|
|
117
|
+
.add_option(
|
|
118
|
+
"Rust",
|
|
119
|
+
"Rust for systems programming and performance-critical code",
|
|
120
|
+
)
|
|
121
|
+
.build()
|
|
122
|
+
)
|
|
123
|
+
questions.append(language_question)
|
|
124
|
+
|
|
125
|
+
return QuestionSet(questions)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
class DevelopmentWorkflowTemplate(ConditionalTemplate):
|
|
129
|
+
"""Template for development workflow preferences.
|
|
130
|
+
|
|
131
|
+
Asks about:
|
|
132
|
+
- Testing framework and coverage requirements
|
|
133
|
+
- CI/CD setup preferences
|
|
134
|
+
- Code quality tools
|
|
135
|
+
- Documentation approach
|
|
136
|
+
|
|
137
|
+
Context Parameters:
|
|
138
|
+
project_type (str): Type of project (from ProjectTypeTemplate)
|
|
139
|
+
language (str): Primary language (affects tool choices)
|
|
140
|
+
|
|
141
|
+
Example:
|
|
142
|
+
>>> template = DevelopmentWorkflowTemplate(
|
|
143
|
+
... project_type="API Service",
|
|
144
|
+
... language="Python"
|
|
145
|
+
... )
|
|
146
|
+
>>> question_set = template.build()
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
def __init__(
|
|
150
|
+
self,
|
|
151
|
+
project_type: str | None = None,
|
|
152
|
+
language: str | None = None,
|
|
153
|
+
**context,
|
|
154
|
+
):
|
|
155
|
+
"""Initialize development workflow template.
|
|
156
|
+
|
|
157
|
+
Args:
|
|
158
|
+
project_type: Type of project being set up
|
|
159
|
+
language: Primary programming language
|
|
160
|
+
**context: Additional context values
|
|
161
|
+
"""
|
|
162
|
+
super().__init__(project_type=project_type, language=language, **context)
|
|
163
|
+
|
|
164
|
+
def build(self) -> QuestionSet:
|
|
165
|
+
"""Build development workflow questions.
|
|
166
|
+
|
|
167
|
+
Returns:
|
|
168
|
+
QuestionSet with workflow questions
|
|
169
|
+
"""
|
|
170
|
+
language = self.get_context("language", "").lower()
|
|
171
|
+
|
|
172
|
+
questions: list[StructuredQuestion] = []
|
|
173
|
+
|
|
174
|
+
# Question 1: Testing approach
|
|
175
|
+
if "python" in language:
|
|
176
|
+
testing_question = (
|
|
177
|
+
QuestionBuilder()
|
|
178
|
+
.ask("What testing framework should we use?")
|
|
179
|
+
.header("Testing")
|
|
180
|
+
.add_option(
|
|
181
|
+
"pytest",
|
|
182
|
+
"Modern, feature-rich testing with fixtures and plugins",
|
|
183
|
+
)
|
|
184
|
+
.add_option(
|
|
185
|
+
"unittest",
|
|
186
|
+
"Python's built-in testing framework (standard library)",
|
|
187
|
+
)
|
|
188
|
+
.build()
|
|
189
|
+
)
|
|
190
|
+
elif "javascript" in language or "typescript" in language:
|
|
191
|
+
testing_question = (
|
|
192
|
+
QuestionBuilder()
|
|
193
|
+
.ask("What testing framework should we use?")
|
|
194
|
+
.header("Testing")
|
|
195
|
+
.add_option(
|
|
196
|
+
"Jest",
|
|
197
|
+
"Popular, batteries-included testing framework",
|
|
198
|
+
)
|
|
199
|
+
.add_option(
|
|
200
|
+
"Vitest",
|
|
201
|
+
"Fast, modern testing with native ESM support",
|
|
202
|
+
)
|
|
203
|
+
.build()
|
|
204
|
+
)
|
|
205
|
+
else:
|
|
206
|
+
# Generic testing question
|
|
207
|
+
testing_question = (
|
|
208
|
+
QuestionBuilder()
|
|
209
|
+
.ask("What level of test coverage should we target?")
|
|
210
|
+
.header("Testing")
|
|
211
|
+
.add_option(
|
|
212
|
+
"High coverage (80%+)",
|
|
213
|
+
"Comprehensive testing with strict coverage requirements",
|
|
214
|
+
)
|
|
215
|
+
.add_option(
|
|
216
|
+
"Moderate coverage (60%+)",
|
|
217
|
+
"Good testing balance between speed and thoroughness",
|
|
218
|
+
)
|
|
219
|
+
.build()
|
|
220
|
+
)
|
|
221
|
+
questions.append(testing_question)
|
|
222
|
+
|
|
223
|
+
# Question 2: CI/CD setup
|
|
224
|
+
cicd_question = (
|
|
225
|
+
QuestionBuilder()
|
|
226
|
+
.ask("Should we set up CI/CD from the start?")
|
|
227
|
+
.header("CI/CD")
|
|
228
|
+
.add_option(
|
|
229
|
+
"Yes, with GitHub Actions",
|
|
230
|
+
"Automated testing and deployment using GitHub Actions",
|
|
231
|
+
)
|
|
232
|
+
.add_option(
|
|
233
|
+
"Yes, with GitLab CI",
|
|
234
|
+
"Automated testing and deployment using GitLab CI",
|
|
235
|
+
)
|
|
236
|
+
.add_option(
|
|
237
|
+
"Not yet",
|
|
238
|
+
"Set up CI/CD later when project is more mature",
|
|
239
|
+
)
|
|
240
|
+
.build()
|
|
241
|
+
)
|
|
242
|
+
questions.append(cicd_question)
|
|
243
|
+
|
|
244
|
+
return QuestionSet(questions)
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
class FrameworkTemplate(ConditionalTemplate):
|
|
248
|
+
"""Template for framework and library selection.
|
|
249
|
+
|
|
250
|
+
Asks about specific frameworks based on project type and language.
|
|
251
|
+
|
|
252
|
+
Context Parameters:
|
|
253
|
+
project_type (str): Type of project
|
|
254
|
+
language (str): Primary language
|
|
255
|
+
|
|
256
|
+
Example:
|
|
257
|
+
>>> template = FrameworkTemplate(
|
|
258
|
+
... project_type="Web Application",
|
|
259
|
+
... language="Python"
|
|
260
|
+
... )
|
|
261
|
+
>>> question_set = template.build()
|
|
262
|
+
"""
|
|
263
|
+
|
|
264
|
+
def __init__(
|
|
265
|
+
self,
|
|
266
|
+
project_type: str | None = None,
|
|
267
|
+
language: str | None = None,
|
|
268
|
+
**context,
|
|
269
|
+
):
|
|
270
|
+
"""Initialize framework template.
|
|
271
|
+
|
|
272
|
+
Args:
|
|
273
|
+
project_type: Type of project being set up
|
|
274
|
+
language: Primary programming language
|
|
275
|
+
**context: Additional context values
|
|
276
|
+
"""
|
|
277
|
+
super().__init__(project_type=project_type, language=language, **context)
|
|
278
|
+
|
|
279
|
+
def build(self) -> QuestionSet:
|
|
280
|
+
"""Build framework selection questions.
|
|
281
|
+
|
|
282
|
+
Returns:
|
|
283
|
+
QuestionSet with framework questions
|
|
284
|
+
"""
|
|
285
|
+
language = self.get_context("language", "").lower()
|
|
286
|
+
project_type = self.get_context("project_type", "").lower()
|
|
287
|
+
|
|
288
|
+
questions: list[StructuredQuestion] = []
|
|
289
|
+
|
|
290
|
+
# Python web frameworks
|
|
291
|
+
if "python" in language and ("web" in project_type or "api" in project_type):
|
|
292
|
+
framework_question = (
|
|
293
|
+
QuestionBuilder()
|
|
294
|
+
.ask("Which Python web framework should we use?")
|
|
295
|
+
.header("Framework")
|
|
296
|
+
.add_option(
|
|
297
|
+
"FastAPI",
|
|
298
|
+
"Modern, fast framework with automatic API documentation",
|
|
299
|
+
)
|
|
300
|
+
.add_option(
|
|
301
|
+
"Flask",
|
|
302
|
+
"Lightweight, flexible micro-framework",
|
|
303
|
+
)
|
|
304
|
+
.add_option(
|
|
305
|
+
"Django",
|
|
306
|
+
"Full-featured framework with batteries included",
|
|
307
|
+
)
|
|
308
|
+
.build()
|
|
309
|
+
)
|
|
310
|
+
questions.append(framework_question)
|
|
311
|
+
|
|
312
|
+
# JavaScript/TypeScript frameworks
|
|
313
|
+
elif (
|
|
314
|
+
"javascript" in language or "typescript" in language
|
|
315
|
+
) and "web" in project_type:
|
|
316
|
+
framework_question = (
|
|
317
|
+
QuestionBuilder()
|
|
318
|
+
.ask("Which frontend framework should we use?")
|
|
319
|
+
.header("Framework")
|
|
320
|
+
.add_option(
|
|
321
|
+
"React",
|
|
322
|
+
"Popular, component-based UI library with large ecosystem",
|
|
323
|
+
)
|
|
324
|
+
.add_option(
|
|
325
|
+
"Vue",
|
|
326
|
+
"Progressive framework with gentle learning curve",
|
|
327
|
+
)
|
|
328
|
+
.add_option(
|
|
329
|
+
"Next.js",
|
|
330
|
+
"React framework with SSR, routing, and optimization",
|
|
331
|
+
)
|
|
332
|
+
.add_option(
|
|
333
|
+
"Svelte",
|
|
334
|
+
"Compiled framework with minimal runtime overhead",
|
|
335
|
+
)
|
|
336
|
+
.build()
|
|
337
|
+
)
|
|
338
|
+
questions.append(framework_question)
|
|
339
|
+
|
|
340
|
+
# Database selection for API/web projects
|
|
341
|
+
if "api" in project_type or "web" in project_type:
|
|
342
|
+
database_question = (
|
|
343
|
+
QuestionBuilder()
|
|
344
|
+
.ask("What database should we use?")
|
|
345
|
+
.header("Database")
|
|
346
|
+
.add_option(
|
|
347
|
+
"PostgreSQL",
|
|
348
|
+
"Robust relational database with advanced features",
|
|
349
|
+
)
|
|
350
|
+
.add_option(
|
|
351
|
+
"MongoDB",
|
|
352
|
+
"Flexible NoSQL document database",
|
|
353
|
+
)
|
|
354
|
+
.add_option(
|
|
355
|
+
"SQLite",
|
|
356
|
+
"Lightweight embedded database (good for prototypes)",
|
|
357
|
+
)
|
|
358
|
+
.add_option(
|
|
359
|
+
"Redis",
|
|
360
|
+
"In-memory data store for caching and real-time features",
|
|
361
|
+
)
|
|
362
|
+
.build()
|
|
363
|
+
)
|
|
364
|
+
questions.append(database_question)
|
|
365
|
+
|
|
366
|
+
# Fallback if no specific framework questions
|
|
367
|
+
if not questions:
|
|
368
|
+
tooling_question = (
|
|
369
|
+
QuestionBuilder()
|
|
370
|
+
.ask("What development tools should we prioritize?")
|
|
371
|
+
.header("Tooling")
|
|
372
|
+
.add_option(
|
|
373
|
+
"Code quality",
|
|
374
|
+
"Linters, formatters, and static analysis tools",
|
|
375
|
+
)
|
|
376
|
+
.add_option(
|
|
377
|
+
"Testing",
|
|
378
|
+
"Comprehensive testing framework and coverage tools",
|
|
379
|
+
)
|
|
380
|
+
.add_option(
|
|
381
|
+
"Documentation",
|
|
382
|
+
"API docs, code docs, and documentation generators",
|
|
383
|
+
)
|
|
384
|
+
.build()
|
|
385
|
+
)
|
|
386
|
+
questions.append(tooling_question)
|
|
387
|
+
|
|
388
|
+
return QuestionSet(questions)
|