devsquad 4.5.19__tar.gz → 4.5.21__tar.gz
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.
- devsquad-4.5.21/PKG-INFO +824 -0
- devsquad-4.5.21/README.md +726 -0
- devsquad-4.5.21/devsquad.egg-info/PKG-INFO +824 -0
- devsquad-4.5.21/devsquad.egg-info/SOURCES.txt +539 -0
- devsquad-4.5.21/devsquad.egg-info/requires.txt +81 -0
- devsquad-4.5.21/pyproject.toml +296 -0
- devsquad-4.5.21/scripts/api/rate_limit.py +301 -0
- devsquad-4.5.21/scripts/api/routes/dispatch.py +504 -0
- devsquad-4.5.21/scripts/api/routes/lifecycle.py +401 -0
- devsquad-4.5.21/scripts/api/routes/metrics_gates.py +393 -0
- devsquad-4.5.21/scripts/auth.py +563 -0
- devsquad-4.5.21/scripts/benchmark_async_dispatch.py +125 -0
- devsquad-4.5.21/scripts/benchmark_ponytail_smart.py +487 -0
- devsquad-4.5.21/scripts/benchmark_real_llm.py +142 -0
- devsquad-4.5.21/scripts/check_async_coverage.py +387 -0
- devsquad-4.5.21/scripts/check_bandit.py +184 -0
- devsquad-4.5.21/scripts/check_config_consistency.py +479 -0
- devsquad-4.5.21/scripts/check_constructor_params.py +198 -0
- devsquad-4.5.21/scripts/check_dependency_lock.py +386 -0
- devsquad-4.5.21/scripts/check_dispatcher_size.py +203 -0
- devsquad-4.5.21/scripts/check_hidden_content.py +528 -0
- devsquad-4.5.21/scripts/check_module_activation.py +617 -0
- devsquad-4.5.21/scripts/check_module_activation_probes.py +577 -0
- devsquad-4.5.21/scripts/check_skill_contract.py +297 -0
- devsquad-4.5.21/scripts/check_test_pyramid.py +332 -0
- devsquad-4.5.21/scripts/check_test_quality.py +193 -0
- devsquad-4.5.21/scripts/check_version_consistency.py +816 -0
- devsquad-4.5.21/scripts/check_version_consistency_content_diff.py +184 -0
- devsquad-4.5.21/scripts/check_version_consistency_types.py +24 -0
- devsquad-4.5.21/scripts/cli.py +779 -0
- devsquad-4.5.21/scripts/cli_audit.py +258 -0
- devsquad-4.5.21/scripts/cli_dispatch.py +480 -0
- devsquad-4.5.21/scripts/cli_doctor.py +264 -0
- devsquad-4.5.21/scripts/cli_lifecycle.py +343 -0
- devsquad-4.5.21/scripts/cli_metrics.py +266 -0
- devsquad-4.5.21/scripts/cli_modules.py +166 -0
- devsquad-4.5.21/scripts/cli_risks.py +537 -0
- devsquad-4.5.21/scripts/cli_rules.py +47 -0
- devsquad-4.5.21/scripts/cli_sessions.py +139 -0
- devsquad-4.5.21/scripts/cli_utils.py +375 -0
- devsquad-4.5.21/scripts/collaboration/_version.py +2 -0
- devsquad-4.5.21/scripts/collaboration/adversarial_verify.py +382 -0
- devsquad-4.5.21/scripts/collaboration/approval_gate.py +199 -0
- devsquad-4.5.21/scripts/collaboration/artifact_store.py +448 -0
- devsquad-4.5.21/scripts/collaboration/async_adapter.py +325 -0
- devsquad-4.5.21/scripts/collaboration/async_coeffect_resolver.py +259 -0
- devsquad-4.5.21/scripts/collaboration/async_coordinator.py +917 -0
- devsquad-4.5.21/scripts/collaboration/async_llm_backend.py +821 -0
- devsquad-4.5.21/scripts/collaboration/audit_logger.py +909 -0
- devsquad-4.5.21/scripts/collaboration/autonomous/loop_controller.py +542 -0
- devsquad-4.5.21/scripts/collaboration/autonomous/notes_memory.py +102 -0
- devsquad-4.5.21/scripts/collaboration/autonomous/smart_confirmation.py +200 -0
- devsquad-4.5.21/scripts/collaboration/backend_config.py +235 -0
- devsquad-4.5.21/scripts/collaboration/backend_paths.py +212 -0
- devsquad-4.5.21/scripts/collaboration/benchmark_regression_checker.py +372 -0
- devsquad-4.5.21/scripts/collaboration/cache_interface.py +473 -0
- devsquad-4.5.21/scripts/collaboration/ccr_store.py +250 -0
- devsquad-4.5.21/scripts/collaboration/checkpoint_manager.py +992 -0
- devsquad-4.5.21/scripts/collaboration/cli_command_classifier.py +334 -0
- devsquad-4.5.21/scripts/collaboration/code_graph_storage.py +495 -0
- devsquad-4.5.21/scripts/collaboration/code_knowledge_graph.py +343 -0
- devsquad-4.5.21/scripts/collaboration/code_map_generator.py +313 -0
- devsquad-4.5.21/scripts/collaboration/coeffect.py +239 -0
- devsquad-4.5.21/scripts/collaboration/confidence_score.py +490 -0
- devsquad-4.5.21/scripts/collaboration/config_manager.py +543 -0
- devsquad-4.5.21/scripts/collaboration/connector_framework.py +359 -0
- devsquad-4.5.21/scripts/collaboration/consensus.py +391 -0
- devsquad-4.5.21/scripts/collaboration/constants.py +74 -0
- devsquad-4.5.21/scripts/collaboration/content_crusher.py +325 -0
- devsquad-4.5.21/scripts/collaboration/context_compressor.py +765 -0
- devsquad-4.5.21/scripts/collaboration/coordinator.py +896 -0
- devsquad-4.5.21/scripts/collaboration/coordinator_compression_mixin.py +283 -0
- devsquad-4.5.21/scripts/collaboration/dashboard_live_mode.py +725 -0
- devsquad-4.5.21/scripts/collaboration/debt_collector.py +188 -0
- devsquad-4.5.21/scripts/collaboration/dependency_hallucination_checker.py +956 -0
- devsquad-4.5.21/scripts/collaboration/deployment_compliance_checker.py +400 -0
- devsquad-4.5.21/scripts/collaboration/dispatch_audit.py +727 -0
- devsquad-4.5.21/scripts/collaboration/dispatch_component_factory.py +338 -0
- devsquad-4.5.21/scripts/collaboration/dispatch_effect.py +235 -0
- devsquad-4.5.21/scripts/collaboration/dispatch_hooks.py +321 -0
- devsquad-4.5.21/scripts/collaboration/dispatch_models.py +678 -0
- devsquad-4.5.21/scripts/collaboration/dispatch_pre_steps.py +737 -0
- devsquad-4.5.21/scripts/collaboration/dispatch_rbac.py +282 -0
- devsquad-4.5.21/scripts/collaboration/dispatch_result_assembler.py +281 -0
- devsquad-4.5.21/scripts/collaboration/dispatch_steps.py +781 -0
- devsquad-4.5.21/scripts/collaboration/dispatch_steps_mixins.py +713 -0
- devsquad-4.5.21/scripts/collaboration/dispatcher.py +1260 -0
- devsquad-4.5.21/scripts/collaboration/dispatcher_base.py +187 -0
- devsquad-4.5.21/scripts/collaboration/dispatcher_factory.py +36 -0
- devsquad-4.5.21/scripts/collaboration/dispatcher_intent_mapper.py +236 -0
- devsquad-4.5.21/scripts/collaboration/dispatcher_loop_controller.py +256 -0
- devsquad-4.5.21/scripts/collaboration/dispatcher_mixins.py +655 -0
- devsquad-4.5.21/scripts/collaboration/dispatcher_plugins_mixin.py +134 -0
- devsquad-4.5.21/scripts/collaboration/dispatcher_transaction.py +412 -0
- devsquad-4.5.21/scripts/collaboration/dora_metrics_collector.py +252 -0
- devsquad-4.5.21/scripts/collaboration/enhanced_worker.py +740 -0
- devsquad-4.5.21/scripts/collaboration/error_budget_tracker.py +246 -0
- devsquad-4.5.21/scripts/collaboration/event_bus.py +43 -0
- devsquad-4.5.21/scripts/collaboration/execution_guard.py +411 -0
- devsquad-4.5.21/scripts/collaboration/feedback_control_loop.py +459 -0
- devsquad-4.5.21/scripts/collaboration/file_bundler.py +279 -0
- devsquad-4.5.21/scripts/collaboration/file_risk_store.py +565 -0
- devsquad-4.5.21/scripts/collaboration/five_axis_consensus.py +705 -0
- devsquad-4.5.21/scripts/collaboration/gap_analyzer.py +346 -0
- devsquad-4.5.21/scripts/collaboration/gitlab_connector.py +389 -0
- devsquad-4.5.21/scripts/collaboration/host_llm_bridge.py +593 -0
- devsquad-4.5.21/scripts/collaboration/host_llm_bridge_v2.py +665 -0
- devsquad-4.5.21/scripts/collaboration/input_validator.py +462 -0
- devsquad-4.5.21/scripts/collaboration/intent_workflow_mapper.py +513 -0
- devsquad-4.5.21/scripts/collaboration/judge_agent.py +866 -0
- devsquad-4.5.21/scripts/collaboration/learned_rule_store.py +209 -0
- devsquad-4.5.21/scripts/collaboration/lifecycle_shortcut_helpers.py +606 -0
- devsquad-4.5.21/scripts/collaboration/llm_backend.py +1029 -0
- devsquad-4.5.21/scripts/collaboration/llm_cache.py +670 -0
- devsquad-4.5.21/scripts/collaboration/llm_cache_async.py +317 -0
- devsquad-4.5.21/scripts/collaboration/llm_retry.py +314 -0
- devsquad-4.5.21/scripts/collaboration/llm_retry_async.py +341 -0
- devsquad-4.5.21/scripts/collaboration/llm_retry_base.py +452 -0
- devsquad-4.5.21/scripts/collaboration/loop_engineering/discovery_probe.py +49 -0
- devsquad-4.5.21/scripts/collaboration/loop_engineering/kernel.py +315 -0
- devsquad-4.5.21/scripts/collaboration/loop_engineering/loop_scheduler.py +113 -0
- devsquad-4.5.21/scripts/collaboration/loop_engineering/unified_memory.py +61 -0
- devsquad-4.5.21/scripts/collaboration/mce_adapter.py +721 -0
- devsquad-4.5.21/scripts/collaboration/meta_skill_layering.py +458 -0
- devsquad-4.5.21/scripts/collaboration/micro_task_planner.py +896 -0
- devsquad-4.5.21/scripts/collaboration/models_base.py +683 -0
- devsquad-4.5.21/scripts/collaboration/models_dispatch.py +668 -0
- devsquad-4.5.21/scripts/collaboration/models_lifecycle.py +446 -0
- devsquad-4.5.21/scripts/collaboration/module_fiber.py +193 -0
- devsquad-4.5.21/scripts/collaboration/moka_backend.py +170 -0
- devsquad-4.5.21/scripts/collaboration/multi_level_cache.py +745 -0
- devsquad-4.5.21/scripts/collaboration/null_providers.py +315 -0
- devsquad-4.5.21/scripts/collaboration/order_chain_detector.py +278 -0
- devsquad-4.5.21/scripts/collaboration/output_validator.py +522 -0
- devsquad-4.5.21/scripts/collaboration/perf_baseline.py +390 -0
- devsquad-4.5.21/scripts/collaboration/permission_guard.py +1100 -0
- devsquad-4.5.21/scripts/collaboration/plugins/hot_loader.py +519 -0
- devsquad-4.5.21/scripts/collaboration/ponytail_rule_injector.py +285 -0
- devsquad-4.5.21/scripts/collaboration/prometheus_metrics.py +608 -0
- devsquad-4.5.21/scripts/collaboration/prompt_assembler.py +322 -0
- devsquad-4.5.21/scripts/collaboration/prompt_assembler_mixins.py +945 -0
- devsquad-4.5.21/scripts/collaboration/prompt_dials.py +214 -0
- devsquad-4.5.21/scripts/collaboration/quality_calibration_gate.py +159 -0
- devsquad-4.5.21/scripts/collaboration/quality_probe_slice.py +307 -0
- devsquad-4.5.21/scripts/collaboration/rbac_engine.py +733 -0
- devsquad-4.5.21/scripts/collaboration/reasoning_budget.py +58 -0
- devsquad-4.5.21/scripts/collaboration/redesign_auditor.py +443 -0
- devsquad-4.5.21/scripts/collaboration/redesign_checkers.py +404 -0
- devsquad-4.5.21/scripts/collaboration/report_formatter.py +536 -0
- devsquad-4.5.21/scripts/collaboration/requirement_tracer.py +211 -0
- devsquad-4.5.21/scripts/collaboration/retrospective.py +385 -0
- devsquad-4.5.21/scripts/collaboration/review_checkers.py +529 -0
- devsquad-4.5.21/scripts/collaboration/review_filter.py +247 -0
- devsquad-4.5.21/scripts/collaboration/review_input.py +172 -0
- devsquad-4.5.21/scripts/collaboration/review_preview.py +98 -0
- devsquad-4.5.21/scripts/collaboration/risk_register.py +408 -0
- devsquad-4.5.21/scripts/collaboration/role_matcher.py +273 -0
- devsquad-4.5.21/scripts/collaboration/role_skill_loader.py +273 -0
- devsquad-4.5.21/scripts/collaboration/rule_collector.py +1188 -0
- devsquad-4.5.21/scripts/collaboration/rule_engine.py +190 -0
- devsquad-4.5.21/scripts/collaboration/scratchpad.py +484 -0
- devsquad-4.5.21/scripts/collaboration/scratchpad_history_store.py +278 -0
- devsquad-4.5.21/scripts/collaboration/secret_patterns.py +94 -0
- devsquad-4.5.21/scripts/collaboration/severity_router.py +873 -0
- devsquad-4.5.21/scripts/collaboration/skill_provider_builtin.py +153 -0
- devsquad-4.5.21/scripts/collaboration/skill_provider_mcp.py +160 -0
- devsquad-4.5.21/scripts/collaboration/skill_registry.py +336 -0
- devsquad-4.5.21/scripts/collaboration/skillifier.py +714 -0
- devsquad-4.5.21/scripts/collaboration/system_rules.json +7 -0
- devsquad-4.5.21/scripts/collaboration/task_scale_gate.py +312 -0
- devsquad-4.5.21/scripts/collaboration/tech_debt_manager.py +1067 -0
- devsquad-4.5.21/scripts/collaboration/test_quality_guard.py +1193 -0
- devsquad-4.5.21/scripts/collaboration/todo_drift_monitor.py +338 -0
- devsquad-4.5.21/scripts/collaboration/two_stage_review_gate.py +746 -0
- devsquad-4.5.21/scripts/collaboration/ue_test_mixins.py +580 -0
- devsquad-4.5.21/scripts/collaboration/unified_gate_engine.py +1035 -0
- devsquad-4.5.21/scripts/collaboration/verification_gate.py +467 -0
- devsquad-4.5.21/scripts/collaboration/viewpoint_registry.py +317 -0
- devsquad-4.5.21/scripts/collaboration/worker.py +970 -0
- devsquad-4.5.21/scripts/collaboration/workflow_engine_base.py +437 -0
- devsquad-4.5.21/scripts/collaboration/workflow_engine_mixins.py +612 -0
- devsquad-4.5.21/scripts/collaboration/yagni_checker.py +503 -0
- devsquad-4.5.21/scripts/collect_baseline.py +157 -0
- devsquad-4.5.21/scripts/collect_trae_traces.py +377 -0
- devsquad-4.5.21/scripts/dashboard/components.py +1198 -0
- devsquad-4.5.21/scripts/dashboard/dag_views.py +551 -0
- devsquad-4.5.21/scripts/dashboard/dispatch_views.py +470 -0
- devsquad-4.5.21/scripts/dashboard/i18n.py +157 -0
- devsquad-4.5.21/scripts/dashboard/metrics_views.py +281 -0
- devsquad-4.5.21/scripts/generate_quality_decision_report.py +115 -0
- devsquad-4.5.21/scripts/history_manager.py +645 -0
- devsquad-4.5.21/scripts/mcp_server.py +929 -0
- devsquad-4.5.21/scripts/perf_baseline.py +90 -0
- devsquad-4.5.21/scripts/qa/deterministic_rule_engine.py +1684 -0
- devsquad-4.5.21/scripts/qa/uiux_analyzer.py +1107 -0
- devsquad-4.5.21/scripts/qa/uiux_subitems.py +224 -0
- devsquad-4.5.21/scripts/qa/visual_regression.py +170 -0
- devsquad-4.5.21/scripts/scan_pickle_payloads.py +253 -0
- devsquad-4.5.21/scripts/sync_skill_pack.py +467 -0
- devsquad-4.5.21/scripts/utils/_find_missing_hints.py +58 -0
- devsquad-4.5.21/scripts/verify_prometheus_e2e.py +297 -0
- devsquad-4.5.21/skills/__init__.py +32 -0
- devsquad-4.5.21/skills/dispatch/handler.py +151 -0
- devsquad-4.5.21/skills/intent/handler.py +168 -0
- devsquad-4.5.21/skills/prototype/handler.py +526 -0
- devsquad-4.5.21/skills/review/handler.py +362 -0
- devsquad-4.5.21/skills/teach/handler.py +1380 -0
- devsquad-4.5.21/tests/test_4pt_grid.py +148 -0
- devsquad-4.5.21/tests/test_adaptive_role_selector.py +369 -0
- devsquad-4.5.21/tests/test_adversarial_verify.py +412 -0
- devsquad-4.5.21/tests/test_anchor_retrospective.py +450 -0
- devsquad-4.5.21/tests/test_antipattern_bans.py +219 -0
- devsquad-4.5.21/tests/test_api_budget_status_endpoint.py +89 -0
- devsquad-4.5.21/tests/test_api_security.py +817 -0
- devsquad-4.5.21/tests/test_api_server_v362.py +740 -0
- devsquad-4.5.21/tests/test_approval_gate.py +369 -0
- devsquad-4.5.21/tests/test_async_coordinator.py +989 -0
- devsquad-4.5.21/tests/test_audit_logger.py +257 -0
- devsquad-4.5.21/tests/test_autonomous.py +1588 -0
- devsquad-4.5.21/tests/test_backend_config.py +238 -0
- devsquad-4.5.21/tests/test_benchmark_ponytail_smart.py +170 -0
- devsquad-4.5.21/tests/test_cache_interface.py +482 -0
- devsquad-4.5.21/tests/test_ccr_store.py +302 -0
- devsquad-4.5.21/tests/test_check_async_coverage.py +260 -0
- devsquad-4.5.21/tests/test_check_bandit.py +267 -0
- devsquad-4.5.21/tests/test_check_config_consistency.py +373 -0
- devsquad-4.5.21/tests/test_check_dispatcher_size.py +191 -0
- devsquad-4.5.21/tests/test_check_hidden_content.py +585 -0
- devsquad-4.5.21/tests/test_check_module_activation.py +180 -0
- devsquad-4.5.21/tests/test_check_test_pyramid.py +458 -0
- devsquad-4.5.21/tests/test_check_test_quality.py +254 -0
- devsquad-4.5.21/tests/test_check_version_consistency.py +855 -0
- devsquad-4.5.21/tests/test_cli_audit.py +249 -0
- devsquad-4.5.21/tests/test_cli_command_classifier.py +382 -0
- devsquad-4.5.21/tests/test_cli_doctor.py +221 -0
- devsquad-4.5.21/tests/test_cli_lifecycle.py +450 -0
- devsquad-4.5.21/tests/test_cli_metrics.py +155 -0
- devsquad-4.5.21/tests/test_cli_phase5.py +347 -0
- devsquad-4.5.21/tests/test_cli_rules.py +69 -0
- devsquad-4.5.21/tests/test_code_knowledge_graph.py +986 -0
- devsquad-4.5.21/tests/test_collaboration_core_test.py +733 -0
- devsquad-4.5.21/tests/test_collaboration_dispatcher_test.py +732 -0
- devsquad-4.5.21/tests/test_collaboration_enhanced_e2e_test.py +1328 -0
- devsquad-4.5.21/tests/test_collaboration_llm_cache_test.py +308 -0
- devsquad-4.5.21/tests/test_collaboration_llm_retry_test.py +346 -0
- devsquad-4.5.21/tests/test_collaboration_memory_bridge_test.py +1283 -0
- devsquad-4.5.21/tests/test_collaboration_role_mapping_test.py +199 -0
- devsquad-4.5.21/tests/test_collaboration_test_quality_guard_test.py +622 -0
- devsquad-4.5.21/tests/test_collaboration_upstream_test.py +366 -0
- devsquad-4.5.21/tests/test_collaboration_warmup_manager_test.py +1345 -0
- devsquad-4.5.21/tests/test_confidence_score.py +562 -0
- devsquad-4.5.21/tests/test_content_cache.py +270 -0
- devsquad-4.5.21/tests/test_content_crusher.py +452 -0
- devsquad-4.5.21/tests/test_coordinator_smart_compression.py +329 -0
- devsquad-4.5.21/tests/test_data_backup.py +169 -0
- devsquad-4.5.21/tests/test_debt_collector.py +227 -0
- devsquad-4.5.21/tests/test_deep_shallow.py +375 -0
- devsquad-4.5.21/tests/test_deletion_test.py +328 -0
- devsquad-4.5.21/tests/test_dependency_hallucination_checker.py +618 -0
- devsquad-4.5.21/tests/test_deployment_compliance_checker.py +398 -0
- devsquad-4.5.21/tests/test_deterministic_rule_engine.py +832 -0
- devsquad-4.5.21/tests/test_dispatch_audit.py +612 -0
- devsquad-4.5.21/tests/test_dispatch_performance.py +349 -0
- devsquad-4.5.21/tests/test_dispatch_rbac.py +303 -0
- devsquad-4.5.21/tests/test_dispatch_steps.py +891 -0
- devsquad-4.5.21/tests/test_dispatcher_intent_mapper.py +139 -0
- devsquad-4.5.21/tests/test_dispatcher_loop_controller.py +112 -0
- devsquad-4.5.21/tests/test_dispatcher_mixins.py +789 -0
- devsquad-4.5.21/tests/test_dispatcher_phase5_core.py +345 -0
- devsquad-4.5.21/tests/test_dispatcher_transaction.py +247 -0
- devsquad-4.5.21/tests/test_dual_layer_context.py +349 -0
- devsquad-4.5.21/tests/test_effect_registry.py +393 -0
- devsquad-4.5.21/tests/test_enhanced_worker.py +691 -0
- devsquad-4.5.21/tests/test_fallback_fuse.py +215 -0
- devsquad-4.5.21/tests/test_flow_standalone.py +155 -0
- devsquad-4.5.21/tests/test_git_guardrails.py +258 -0
- devsquad-4.5.21/tests/test_gitlab_connector.py +297 -0
- devsquad-4.5.21/tests/test_glossary_loader.py +156 -0
- devsquad-4.5.21/tests/test_grilling_mode.py +591 -0
- devsquad-4.5.21/tests/test_handoff_redaction.py +237 -0
- devsquad-4.5.21/tests/test_history_manager_v362.py +464 -0
- devsquad-4.5.21/tests/test_host_bridge_unit.py +356 -0
- devsquad-4.5.21/tests/test_host_llm_bridge_v2.py +446 -0
- devsquad-4.5.21/tests/test_input_validator_phase5.py +362 -0
- devsquad-4.5.21/tests/test_input_validator_sensitive.py +356 -0
- devsquad-4.5.21/tests/test_llm_auto_fallback.py +370 -0
- devsquad-4.5.21/tests/test_llm_backend_resolve.py +431 -0
- devsquad-4.5.21/tests/test_llm_cache_protocol.py +421 -0
- devsquad-4.5.21/tests/test_loop_engineering.py +353 -0
- devsquad-4.5.21/tests/test_mcp_server_v362.py +637 -0
- devsquad-4.5.21/tests/test_moka_backend.py +307 -0
- devsquad-4.5.21/tests/test_multi_tenant.py +314 -0
- devsquad-4.5.21/tests/test_no_op_test.py +294 -0
- devsquad-4.5.21/tests/test_null_providers.py +422 -0
- devsquad-4.5.21/tests/test_oklch_color.py +169 -0
- devsquad-4.5.21/tests/test_order_chain_detector.py +243 -0
- devsquad-4.5.21/tests/test_output_validator_prompt_injection.py +223 -0
- devsquad-4.5.21/tests/test_perf_baseline.py +379 -0
- devsquad-4.5.21/tests/test_perf_baseline_ci_gate.py +309 -0
- devsquad-4.5.21/tests/test_performance_benchmarks.py +190 -0
- devsquad-4.5.21/tests/test_permission_guard_phase5.py +237 -0
- devsquad-4.5.21/tests/test_phase4_ghost_feature_defense.py +472 -0
- devsquad-4.5.21/tests/test_ponytail_rule_injector.py +510 -0
- devsquad-4.5.21/tests/test_prometheus_metrics.py +522 -0
- devsquad-4.5.21/tests/test_prototype_skill.py +364 -0
- devsquad-4.5.21/tests/test_qa_uiux_visual_regression.py +569 -0
- devsquad-4.5.21/tests/test_rbac_engine.py +201 -0
- devsquad-4.5.21/tests/test_rbac_fail_closed.py +179 -0
- devsquad-4.5.21/tests/test_red_capable_gate.py +282 -0
- devsquad-4.5.21/tests/test_redesign_auditor.py +484 -0
- devsquad-4.5.21/tests/test_redis_cache.py +509 -0
- devsquad-4.5.21/tests/test_requirement_tracer.py +274 -0
- devsquad-4.5.21/tests/test_retry_jitter_strategies.py +173 -0
- devsquad-4.5.21/tests/test_review_filter.py +204 -0
- devsquad-4.5.21/tests/test_review_preview.py +152 -0
- devsquad-4.5.21/tests/test_rule_collector.py +1047 -0
- devsquad-4.5.21/tests/test_rule_engine.py +340 -0
- devsquad-4.5.21/tests/test_rule_injection_security.py +170 -0
- devsquad-4.5.21/tests/test_secret_patterns.py +227 -0
- devsquad-4.5.21/tests/test_skill_registry_coverage.py +453 -0
- devsquad-4.5.21/tests/test_skill_security.py +117 -0
- devsquad-4.5.21/tests/test_tautological_seams.py +364 -0
- devsquad-4.5.21/tests/test_tech_debt_manager.py +666 -0
- devsquad-4.5.21/tests/test_todo_drift_monitor.py +466 -0
- devsquad-4.5.21/tests/test_token_budget_compressed_scratchpad.py +344 -0
- devsquad-4.5.21/tests/test_v411_security_hardening.py +727 -0
- devsquad-4.5.21/tests/test_version.py +74 -0
- devsquad-4.5.21/tests/test_workflow_engine.py +99 -0
- devsquad-4.5.21/tests/test_workflow_engine_base.py +469 -0
- devsquad-4.5.21/tests/test_workflow_engine_lifecycle.py +396 -0
- devsquad-4.5.21/tests/test_workflow_engine_state.py +374 -0
- devsquad-4.5.21/tests/test_workflow_engine_transition.py +442 -0
- devsquad-4.5.21/tests/test_yagni_checker.py +443 -0
- devsquad-4.5.19/PKG-INFO +0 -825
- devsquad-4.5.19/README.md +0 -727
- devsquad-4.5.19/devsquad.egg-info/PKG-INFO +0 -825
- devsquad-4.5.19/devsquad.egg-info/SOURCES.txt +0 -521
- devsquad-4.5.19/devsquad.egg-info/requires.txt +0 -81
- devsquad-4.5.19/pyproject.toml +0 -279
- devsquad-4.5.19/scripts/api/rate_limit.py +0 -299
- devsquad-4.5.19/scripts/api/routes/dispatch.py +0 -500
- devsquad-4.5.19/scripts/api/routes/lifecycle.py +0 -399
- devsquad-4.5.19/scripts/api/routes/metrics_gates.py +0 -394
- devsquad-4.5.19/scripts/auth.py +0 -570
- devsquad-4.5.19/scripts/benchmark_async_dispatch.py +0 -124
- devsquad-4.5.19/scripts/benchmark_ponytail_smart.py +0 -435
- devsquad-4.5.19/scripts/benchmark_real_llm.py +0 -140
- devsquad-4.5.19/scripts/check_async_coverage.py +0 -392
- devsquad-4.5.19/scripts/check_bandit.py +0 -185
- devsquad-4.5.19/scripts/check_config_consistency.py +0 -436
- devsquad-4.5.19/scripts/check_constructor_params.py +0 -200
- devsquad-4.5.19/scripts/check_dependency_lock.py +0 -376
- devsquad-4.5.19/scripts/check_dispatcher_size.py +0 -198
- devsquad-4.5.19/scripts/check_hidden_content.py +0 -494
- devsquad-4.5.19/scripts/check_module_activation.py +0 -848
- devsquad-4.5.19/scripts/check_test_pyramid.py +0 -327
- devsquad-4.5.19/scripts/check_test_quality.py +0 -197
- devsquad-4.5.19/scripts/check_version_consistency.py +0 -807
- devsquad-4.5.19/scripts/cli.py +0 -676
- devsquad-4.5.19/scripts/cli_audit.py +0 -272
- devsquad-4.5.19/scripts/cli_dispatch.py +0 -419
- devsquad-4.5.19/scripts/cli_doctor.py +0 -273
- devsquad-4.5.19/scripts/cli_lifecycle.py +0 -265
- devsquad-4.5.19/scripts/cli_metrics.py +0 -260
- devsquad-4.5.19/scripts/cli_modules.py +0 -171
- devsquad-4.5.19/scripts/cli_risks.py +0 -539
- devsquad-4.5.19/scripts/cli_sessions.py +0 -136
- devsquad-4.5.19/scripts/cli_utils.py +0 -349
- devsquad-4.5.19/scripts/collaboration/_version.py +0 -2
- devsquad-4.5.19/scripts/collaboration/adversarial_verify.py +0 -374
- devsquad-4.5.19/scripts/collaboration/approval_gate.py +0 -197
- devsquad-4.5.19/scripts/collaboration/artifact_store.py +0 -469
- devsquad-4.5.19/scripts/collaboration/async_adapter.py +0 -336
- devsquad-4.5.19/scripts/collaboration/async_coeffect_resolver.py +0 -261
- devsquad-4.5.19/scripts/collaboration/async_coordinator.py +0 -882
- devsquad-4.5.19/scripts/collaboration/async_llm_backend.py +0 -880
- devsquad-4.5.19/scripts/collaboration/audit_logger.py +0 -895
- devsquad-4.5.19/scripts/collaboration/autonomous/loop_controller.py +0 -538
- devsquad-4.5.19/scripts/collaboration/autonomous/notes_memory.py +0 -105
- devsquad-4.5.19/scripts/collaboration/autonomous/smart_confirmation.py +0 -179
- devsquad-4.5.19/scripts/collaboration/backend_config.py +0 -237
- devsquad-4.5.19/scripts/collaboration/backend_paths.py +0 -195
- devsquad-4.5.19/scripts/collaboration/benchmark_regression_checker.py +0 -378
- devsquad-4.5.19/scripts/collaboration/cache_interface.py +0 -473
- devsquad-4.5.19/scripts/collaboration/ccr_store.py +0 -261
- devsquad-4.5.19/scripts/collaboration/checkpoint_manager.py +0 -994
- devsquad-4.5.19/scripts/collaboration/cli_command_classifier.py +0 -350
- devsquad-4.5.19/scripts/collaboration/code_graph_storage.py +0 -498
- devsquad-4.5.19/scripts/collaboration/code_knowledge_graph.py +0 -346
- devsquad-4.5.19/scripts/collaboration/code_map_generator.py +0 -315
- devsquad-4.5.19/scripts/collaboration/coeffect.py +0 -243
- devsquad-4.5.19/scripts/collaboration/confidence_score.py +0 -488
- devsquad-4.5.19/scripts/collaboration/config_manager.py +0 -555
- devsquad-4.5.19/scripts/collaboration/connector_framework.py +0 -341
- devsquad-4.5.19/scripts/collaboration/consensus.py +0 -398
- devsquad-4.5.19/scripts/collaboration/constants.py +0 -66
- devsquad-4.5.19/scripts/collaboration/content_crusher.py +0 -327
- devsquad-4.5.19/scripts/collaboration/context_compressor.py +0 -759
- devsquad-4.5.19/scripts/collaboration/coordinator.py +0 -1070
- devsquad-4.5.19/scripts/collaboration/dashboard_live_mode.py +0 -715
- devsquad-4.5.19/scripts/collaboration/debt_collector.py +0 -192
- devsquad-4.5.19/scripts/collaboration/dependency_hallucination_checker.py +0 -891
- devsquad-4.5.19/scripts/collaboration/deployment_compliance_checker.py +0 -410
- devsquad-4.5.19/scripts/collaboration/dispatch_audit.py +0 -741
- devsquad-4.5.19/scripts/collaboration/dispatch_component_factory.py +0 -334
- devsquad-4.5.19/scripts/collaboration/dispatch_effect.py +0 -239
- devsquad-4.5.19/scripts/collaboration/dispatch_hooks.py +0 -313
- devsquad-4.5.19/scripts/collaboration/dispatch_models.py +0 -587
- devsquad-4.5.19/scripts/collaboration/dispatch_pre_steps.py +0 -668
- devsquad-4.5.19/scripts/collaboration/dispatch_rbac.py +0 -290
- devsquad-4.5.19/scripts/collaboration/dispatch_result_assembler.py +0 -198
- devsquad-4.5.19/scripts/collaboration/dispatch_steps.py +0 -747
- devsquad-4.5.19/scripts/collaboration/dispatch_steps_mixins.py +0 -710
- devsquad-4.5.19/scripts/collaboration/dispatcher.py +0 -1377
- devsquad-4.5.19/scripts/collaboration/dispatcher_base.py +0 -176
- devsquad-4.5.19/scripts/collaboration/dispatcher_factory.py +0 -38
- devsquad-4.5.19/scripts/collaboration/dispatcher_intent_mapper.py +0 -238
- devsquad-4.5.19/scripts/collaboration/dispatcher_loop_controller.py +0 -252
- devsquad-4.5.19/scripts/collaboration/dispatcher_mixins.py +0 -590
- devsquad-4.5.19/scripts/collaboration/dispatcher_transaction.py +0 -416
- devsquad-4.5.19/scripts/collaboration/dora_metrics_collector.py +0 -254
- devsquad-4.5.19/scripts/collaboration/enhanced_worker.py +0 -739
- devsquad-4.5.19/scripts/collaboration/error_budget_tracker.py +0 -245
- devsquad-4.5.19/scripts/collaboration/event_bus.py +0 -42
- devsquad-4.5.19/scripts/collaboration/execution_guard.py +0 -411
- devsquad-4.5.19/scripts/collaboration/feedback_control_loop.py +0 -467
- devsquad-4.5.19/scripts/collaboration/file_bundler.py +0 -266
- devsquad-4.5.19/scripts/collaboration/file_risk_store.py +0 -577
- devsquad-4.5.19/scripts/collaboration/five_axis_consensus.py +0 -706
- devsquad-4.5.19/scripts/collaboration/gap_analyzer.py +0 -335
- devsquad-4.5.19/scripts/collaboration/gitlab_connector.py +0 -366
- devsquad-4.5.19/scripts/collaboration/host_llm_bridge.py +0 -593
- devsquad-4.5.19/scripts/collaboration/host_llm_bridge_v2.py +0 -699
- devsquad-4.5.19/scripts/collaboration/input_validator.py +0 -464
- devsquad-4.5.19/scripts/collaboration/intent_workflow_mapper.py +0 -501
- devsquad-4.5.19/scripts/collaboration/judge_agent.py +0 -904
- devsquad-4.5.19/scripts/collaboration/learned_rule_store.py +0 -201
- devsquad-4.5.19/scripts/collaboration/lifecycle_shortcut_helpers.py +0 -615
- devsquad-4.5.19/scripts/collaboration/llm_backend.py +0 -987
- devsquad-4.5.19/scripts/collaboration/llm_cache.py +0 -667
- devsquad-4.5.19/scripts/collaboration/llm_cache_async.py +0 -315
- devsquad-4.5.19/scripts/collaboration/llm_retry.py +0 -313
- devsquad-4.5.19/scripts/collaboration/llm_retry_async.py +0 -339
- devsquad-4.5.19/scripts/collaboration/llm_retry_base.py +0 -453
- devsquad-4.5.19/scripts/collaboration/loop_engineering/discovery_probe.py +0 -51
- devsquad-4.5.19/scripts/collaboration/loop_engineering/kernel.py +0 -305
- devsquad-4.5.19/scripts/collaboration/loop_engineering/loop_scheduler.py +0 -119
- devsquad-4.5.19/scripts/collaboration/loop_engineering/unified_memory.py +0 -59
- devsquad-4.5.19/scripts/collaboration/mce_adapter.py +0 -676
- devsquad-4.5.19/scripts/collaboration/meta_skill_layering.py +0 -469
- devsquad-4.5.19/scripts/collaboration/micro_task_planner.py +0 -930
- devsquad-4.5.19/scripts/collaboration/models_base.py +0 -679
- devsquad-4.5.19/scripts/collaboration/models_dispatch.py +0 -669
- devsquad-4.5.19/scripts/collaboration/models_lifecycle.py +0 -428
- devsquad-4.5.19/scripts/collaboration/module_fiber.py +0 -195
- devsquad-4.5.19/scripts/collaboration/moka_backend.py +0 -177
- devsquad-4.5.19/scripts/collaboration/multi_level_cache.py +0 -744
- devsquad-4.5.19/scripts/collaboration/null_providers.py +0 -303
- devsquad-4.5.19/scripts/collaboration/order_chain_detector.py +0 -280
- devsquad-4.5.19/scripts/collaboration/output_validator.py +0 -511
- devsquad-4.5.19/scripts/collaboration/perf_baseline.py +0 -393
- devsquad-4.5.19/scripts/collaboration/permission_guard.py +0 -1104
- devsquad-4.5.19/scripts/collaboration/plugins/hot_loader.py +0 -515
- devsquad-4.5.19/scripts/collaboration/ponytail_rule_injector.py +0 -300
- devsquad-4.5.19/scripts/collaboration/prometheus_metrics.py +0 -611
- devsquad-4.5.19/scripts/collaboration/prompt_assembler.py +0 -323
- devsquad-4.5.19/scripts/collaboration/prompt_assembler_mixins.py +0 -951
- devsquad-4.5.19/scripts/collaboration/prompt_dials.py +0 -215
- devsquad-4.5.19/scripts/collaboration/quality_calibration_gate.py +0 -163
- devsquad-4.5.19/scripts/collaboration/quality_probe_slice.py +0 -301
- devsquad-4.5.19/scripts/collaboration/rbac_engine.py +0 -734
- devsquad-4.5.19/scripts/collaboration/redesign_auditor.py +0 -472
- devsquad-4.5.19/scripts/collaboration/redesign_checkers.py +0 -415
- devsquad-4.5.19/scripts/collaboration/report_formatter.py +0 -510
- devsquad-4.5.19/scripts/collaboration/requirement_tracer.py +0 -215
- devsquad-4.5.19/scripts/collaboration/retrospective.py +0 -373
- devsquad-4.5.19/scripts/collaboration/review_checkers.py +0 -589
- devsquad-4.5.19/scripts/collaboration/risk_register.py +0 -414
- devsquad-4.5.19/scripts/collaboration/role_matcher.py +0 -235
- devsquad-4.5.19/scripts/collaboration/role_skill_loader.py +0 -266
- devsquad-4.5.19/scripts/collaboration/rule_collector.py +0 -1188
- devsquad-4.5.19/scripts/collaboration/scratchpad.py +0 -437
- devsquad-4.5.19/scripts/collaboration/scratchpad_history_store.py +0 -284
- devsquad-4.5.19/scripts/collaboration/secret_patterns.py +0 -94
- devsquad-4.5.19/scripts/collaboration/severity_router.py +0 -899
- devsquad-4.5.19/scripts/collaboration/skill_provider_builtin.py +0 -155
- devsquad-4.5.19/scripts/collaboration/skill_provider_mcp.py +0 -164
- devsquad-4.5.19/scripts/collaboration/skill_registry.py +0 -335
- devsquad-4.5.19/scripts/collaboration/skillifier.py +0 -701
- devsquad-4.5.19/scripts/collaboration/task_scale_gate.py +0 -312
- devsquad-4.5.19/scripts/collaboration/tech_debt_manager.py +0 -1059
- devsquad-4.5.19/scripts/collaboration/test_quality_guard.py +0 -1183
- devsquad-4.5.19/scripts/collaboration/todo_drift_monitor.py +0 -346
- devsquad-4.5.19/scripts/collaboration/two_stage_review_gate.py +0 -763
- devsquad-4.5.19/scripts/collaboration/ue_test_mixins.py +0 -524
- devsquad-4.5.19/scripts/collaboration/unified_gate_engine.py +0 -1040
- devsquad-4.5.19/scripts/collaboration/verification_gate.py +0 -465
- devsquad-4.5.19/scripts/collaboration/viewpoint_registry.py +0 -327
- devsquad-4.5.19/scripts/collaboration/worker.py +0 -930
- devsquad-4.5.19/scripts/collaboration/workflow_engine_base.py +0 -439
- devsquad-4.5.19/scripts/collaboration/workflow_engine_mixins.py +0 -580
- devsquad-4.5.19/scripts/collaboration/yagni_checker.py +0 -504
- devsquad-4.5.19/scripts/collect_baseline.py +0 -159
- devsquad-4.5.19/scripts/collect_trae_traces.py +0 -351
- devsquad-4.5.19/scripts/dashboard/components.py +0 -1203
- devsquad-4.5.19/scripts/dashboard/dag_views.py +0 -553
- devsquad-4.5.19/scripts/dashboard/dispatch_views.py +0 -473
- devsquad-4.5.19/scripts/dashboard/i18n.py +0 -155
- devsquad-4.5.19/scripts/dashboard/metrics_views.py +0 -283
- devsquad-4.5.19/scripts/generate_quality_decision_report.py +0 -114
- devsquad-4.5.19/scripts/history_manager.py +0 -642
- devsquad-4.5.19/scripts/mcp_server.py +0 -935
- devsquad-4.5.19/scripts/perf_baseline.py +0 -89
- devsquad-4.5.19/scripts/qa/deterministic_rule_engine.py +0 -1576
- devsquad-4.5.19/scripts/qa/uiux_analyzer.py +0 -1079
- devsquad-4.5.19/scripts/qa/uiux_subitems.py +0 -123
- devsquad-4.5.19/scripts/qa/visual_regression.py +0 -179
- devsquad-4.5.19/scripts/scan_pickle_payloads.py +0 -253
- devsquad-4.5.19/scripts/sync_skill_pack.py +0 -501
- devsquad-4.5.19/scripts/utils/_find_missing_hints.py +0 -53
- devsquad-4.5.19/scripts/verify_prometheus_e2e.py +0 -292
- devsquad-4.5.19/skills/__init__.py +0 -32
- devsquad-4.5.19/skills/dispatch/handler.py +0 -149
- devsquad-4.5.19/skills/intent/handler.py +0 -167
- devsquad-4.5.19/skills/prototype/handler.py +0 -535
- devsquad-4.5.19/skills/review/handler.py +0 -354
- devsquad-4.5.19/skills/teach/handler.py +0 -1178
- devsquad-4.5.19/tests/test_4pt_grid.py +0 -155
- devsquad-4.5.19/tests/test_adaptive_role_selector.py +0 -387
- devsquad-4.5.19/tests/test_adversarial_verify.py +0 -416
- devsquad-4.5.19/tests/test_anchor_retrospective.py +0 -422
- devsquad-4.5.19/tests/test_antipattern_bans.py +0 -225
- devsquad-4.5.19/tests/test_api_budget_status_endpoint.py +0 -90
- devsquad-4.5.19/tests/test_api_security.py +0 -818
- devsquad-4.5.19/tests/test_api_server_v362.py +0 -741
- devsquad-4.5.19/tests/test_approval_gate.py +0 -398
- devsquad-4.5.19/tests/test_async_coordinator.py +0 -952
- devsquad-4.5.19/tests/test_audit_logger.py +0 -258
- devsquad-4.5.19/tests/test_autonomous.py +0 -1556
- devsquad-4.5.19/tests/test_backend_config.py +0 -237
- devsquad-4.5.19/tests/test_benchmark_ponytail_smart.py +0 -164
- devsquad-4.5.19/tests/test_cache_interface.py +0 -490
- devsquad-4.5.19/tests/test_ccr_store.py +0 -281
- devsquad-4.5.19/tests/test_check_async_coverage.py +0 -270
- devsquad-4.5.19/tests/test_check_bandit.py +0 -246
- devsquad-4.5.19/tests/test_check_config_consistency.py +0 -358
- devsquad-4.5.19/tests/test_check_dispatcher_size.py +0 -176
- devsquad-4.5.19/tests/test_check_hidden_content.py +0 -571
- devsquad-4.5.19/tests/test_check_test_pyramid.py +0 -463
- devsquad-4.5.19/tests/test_check_test_quality.py +0 -279
- devsquad-4.5.19/tests/test_check_version_consistency.py +0 -733
- devsquad-4.5.19/tests/test_cli_audit.py +0 -261
- devsquad-4.5.19/tests/test_cli_command_classifier.py +0 -386
- devsquad-4.5.19/tests/test_cli_doctor.py +0 -224
- devsquad-4.5.19/tests/test_cli_lifecycle.py +0 -400
- devsquad-4.5.19/tests/test_cli_metrics.py +0 -152
- devsquad-4.5.19/tests/test_cli_phase5.py +0 -348
- devsquad-4.5.19/tests/test_code_knowledge_graph.py +0 -951
- devsquad-4.5.19/tests/test_collaboration_core_test.py +0 -680
- devsquad-4.5.19/tests/test_collaboration_dispatcher_test.py +0 -674
- devsquad-4.5.19/tests/test_collaboration_enhanced_e2e_test.py +0 -1301
- devsquad-4.5.19/tests/test_collaboration_llm_cache_test.py +0 -309
- devsquad-4.5.19/tests/test_collaboration_llm_retry_test.py +0 -347
- devsquad-4.5.19/tests/test_collaboration_memory_bridge_test.py +0 -1235
- devsquad-4.5.19/tests/test_collaboration_role_mapping_test.py +0 -200
- devsquad-4.5.19/tests/test_collaboration_test_quality_guard_test.py +0 -599
- devsquad-4.5.19/tests/test_collaboration_upstream_test.py +0 -367
- devsquad-4.5.19/tests/test_collaboration_warmup_manager_test.py +0 -1213
- devsquad-4.5.19/tests/test_confidence_score.py +0 -563
- devsquad-4.5.19/tests/test_content_cache.py +0 -271
- devsquad-4.5.19/tests/test_content_crusher.py +0 -398
- devsquad-4.5.19/tests/test_coordinator_smart_compression.py +0 -331
- devsquad-4.5.19/tests/test_data_backup.py +0 -166
- devsquad-4.5.19/tests/test_debt_collector.py +0 -247
- devsquad-4.5.19/tests/test_deep_shallow.py +0 -380
- devsquad-4.5.19/tests/test_deletion_test.py +0 -357
- devsquad-4.5.19/tests/test_dependency_hallucination_checker.py +0 -561
- devsquad-4.5.19/tests/test_deployment_compliance_checker.py +0 -401
- devsquad-4.5.19/tests/test_deterministic_rule_engine.py +0 -730
- devsquad-4.5.19/tests/test_dispatch_audit.py +0 -587
- devsquad-4.5.19/tests/test_dispatch_performance.py +0 -355
- devsquad-4.5.19/tests/test_dispatch_rbac.py +0 -288
- devsquad-4.5.19/tests/test_dispatch_steps.py +0 -847
- devsquad-4.5.19/tests/test_dispatcher_intent_mapper.py +0 -132
- devsquad-4.5.19/tests/test_dispatcher_loop_controller.py +0 -115
- devsquad-4.5.19/tests/test_dispatcher_mixins.py +0 -795
- devsquad-4.5.19/tests/test_dispatcher_phase5_core.py +0 -346
- devsquad-4.5.19/tests/test_dispatcher_transaction.py +0 -246
- devsquad-4.5.19/tests/test_dual_layer_context.py +0 -365
- devsquad-4.5.19/tests/test_effect_registry.py +0 -399
- devsquad-4.5.19/tests/test_enhanced_worker.py +0 -681
- devsquad-4.5.19/tests/test_fallback_fuse.py +0 -213
- devsquad-4.5.19/tests/test_flow_standalone.py +0 -159
- devsquad-4.5.19/tests/test_git_guardrails.py +0 -283
- devsquad-4.5.19/tests/test_gitlab_connector.py +0 -295
- devsquad-4.5.19/tests/test_glossary_loader.py +0 -157
- devsquad-4.5.19/tests/test_grilling_mode.py +0 -591
- devsquad-4.5.19/tests/test_handoff_redaction.py +0 -240
- devsquad-4.5.19/tests/test_history_manager_v362.py +0 -463
- devsquad-4.5.19/tests/test_host_bridge_unit.py +0 -353
- devsquad-4.5.19/tests/test_host_llm_bridge_v2.py +0 -465
- devsquad-4.5.19/tests/test_input_validator_phase5.py +0 -365
- devsquad-4.5.19/tests/test_input_validator_sensitive.py +0 -359
- devsquad-4.5.19/tests/test_llm_auto_fallback.py +0 -340
- devsquad-4.5.19/tests/test_llm_backend_resolve.py +0 -370
- devsquad-4.5.19/tests/test_llm_cache_protocol.py +0 -422
- devsquad-4.5.19/tests/test_loop_engineering.py +0 -346
- devsquad-4.5.19/tests/test_mcp_server_v362.py +0 -638
- devsquad-4.5.19/tests/test_moka_backend.py +0 -307
- devsquad-4.5.19/tests/test_multi_tenant.py +0 -315
- devsquad-4.5.19/tests/test_no_op_test.py +0 -303
- devsquad-4.5.19/tests/test_null_providers.py +0 -423
- devsquad-4.5.19/tests/test_oklch_color.py +0 -171
- devsquad-4.5.19/tests/test_order_chain_detector.py +0 -242
- devsquad-4.5.19/tests/test_output_validator_prompt_injection.py +0 -230
- devsquad-4.5.19/tests/test_perf_baseline.py +0 -340
- devsquad-4.5.19/tests/test_perf_baseline_ci_gate.py +0 -255
- devsquad-4.5.19/tests/test_performance_benchmarks.py +0 -180
- devsquad-4.5.19/tests/test_permission_guard_phase5.py +0 -238
- devsquad-4.5.19/tests/test_phase4_ghost_feature_defense.py +0 -470
- devsquad-4.5.19/tests/test_ponytail_rule_injector.py +0 -486
- devsquad-4.5.19/tests/test_prometheus_metrics.py +0 -505
- devsquad-4.5.19/tests/test_prototype_skill.py +0 -370
- devsquad-4.5.19/tests/test_qa_uiux_visual_regression.py +0 -577
- devsquad-4.5.19/tests/test_rbac_engine.py +0 -202
- devsquad-4.5.19/tests/test_rbac_fail_closed.py +0 -180
- devsquad-4.5.19/tests/test_red_capable_gate.py +0 -284
- devsquad-4.5.19/tests/test_redesign_auditor.py +0 -469
- devsquad-4.5.19/tests/test_redis_cache.py +0 -510
- devsquad-4.5.19/tests/test_requirement_tracer.py +0 -277
- devsquad-4.5.19/tests/test_retry_jitter_strategies.py +0 -174
- devsquad-4.5.19/tests/test_rule_collector.py +0 -1052
- devsquad-4.5.19/tests/test_rule_injection_security.py +0 -171
- devsquad-4.5.19/tests/test_secret_patterns.py +0 -233
- devsquad-4.5.19/tests/test_skill_registry_coverage.py +0 -426
- devsquad-4.5.19/tests/test_skill_security.py +0 -118
- devsquad-4.5.19/tests/test_tautological_seams.py +0 -374
- devsquad-4.5.19/tests/test_tech_debt_manager.py +0 -665
- devsquad-4.5.19/tests/test_todo_drift_monitor.py +0 -479
- devsquad-4.5.19/tests/test_token_budget_compressed_scratchpad.py +0 -328
- devsquad-4.5.19/tests/test_v411_security_hardening.py +0 -770
- devsquad-4.5.19/tests/test_version.py +0 -84
- devsquad-4.5.19/tests/test_workflow_engine.py +0 -100
- devsquad-4.5.19/tests/test_workflow_engine_base.py +0 -470
- devsquad-4.5.19/tests/test_workflow_engine_lifecycle.py +0 -397
- devsquad-4.5.19/tests/test_workflow_engine_state.py +0 -375
- devsquad-4.5.19/tests/test_workflow_engine_transition.py +0 -443
- devsquad-4.5.19/tests/test_yagni_checker.py +0 -428
- {devsquad-4.5.19 → devsquad-4.5.21}/LICENSE +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/devsquad.egg-info/dependency_links.txt +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/devsquad.egg-info/entry_points.txt +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/devsquad.egg-info/top_level.txt +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/api/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/api/models.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/api/routes/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/api/routes/metrics.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/api/security.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/api_server.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/check_dependency_sync.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/check_doc_consistency.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/cli/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/cli/cli_visual.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/cli_backend.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/adaptive_role_selector.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/agent_briefing.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/agent_identity.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/ai_semantic_matcher.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/anchor_checker.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/anti_rationalization.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/autonomous/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/autonomous/git_driver.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/autonomous/run_state.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/autonomous/sleep_guard.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/batch_scheduler.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/ci_feedback_adapter.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/code_graph_query.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/concern_pack_loader.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/consensus_gate.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/content_cache.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatch_lifecycle.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatch_performance.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatch_services.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatch_steps_base.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatch_steps_consensus_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatch_steps_feedback_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatch_steps_quality_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatch_steps_services_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatcher_async_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatcher_audit_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatcher_config.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatcher_error_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatcher_lifecycle_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatcher_status_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dispatcher_utils_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/dual_layer_context.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/effect_registry.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/enterprise_feature.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/feature_usage_tracker.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/gather_core.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/language_parsers.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/lifecycle_gate.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/lifecycle_protocol.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/lifecycle_shortcut_adapter.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/lifecycle_templates.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/llm_cache_base.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/loop_engineering/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/loop_engineering/handoff_adapter.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/loop_engineering/independent_evaluator.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/loop_engineering/models.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/loop_engineering/protocols.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/loop_engineering/rollback_strategy.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/memory_bridge.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/memory_claw_source.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/memory_forgetting.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/memory_index.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/memory_query.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/memory_serializer.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/memory_types.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/models.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/multi_host_adapter.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/multi_tenant.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/operation_classifier.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/output_slicer.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/performance_fingerprint.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/performance_monitor.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/plugins/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/prompt_assembler_base.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/prompt_assembler_formatting_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/prompt_assembler_substitution_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/prompt_assembler_template_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/prompt_assembler_validation_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/protocols.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/redis_cache.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/role_specific_mock_backend.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/similar_task_recommender.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/skill_extractor.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/skill_storage.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/standardized_role_template.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/task_completion_checker.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/ue_test_accessibility_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/ue_test_framework.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/ue_test_framework_base.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/ue_test_heuristic_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/ue_test_journey_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/ue_test_persona_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/usage_tracker.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/user_friendly_error.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/warmup_manager.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/workflow_engine.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/workflow_engine_lifecycle_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/workflow_engine_persistence_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/workflow_engine_state_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/collaboration/workflow_engine_transition_mixin.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/dashboard/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/dashboard/app.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/dashboard/auth_views.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/dashboard/lifecycle_views.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/dashboard/state.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/dashboard/v43_panels.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/dashboard.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/generate_benchmark_report.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/qa/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/qa/models.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/qa/taste_dials.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/scripts/utils/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/setup.cfg +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/skills/_version.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/skills/registry.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/skills/retrospective/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/skills/retrospective/handler.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/skills/security/handler.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/skills/test/__init__.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/skills/test/handler.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_agent_briefing.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_anti_rationalization.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_artifact_effect_binding.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_artifact_store.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_async_modules.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_auth_phase5.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_check_constructor_params.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_check_dependency_lock.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_ci_feedback_adapter.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_cli_deep_v362.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_collaboration_claw_integration_test.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_collaboration_context_compressor_test.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_collaboration_dispatcher_ux_test.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_collaboration_e2e_test.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_collaboration_mce_adapter_test.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_collaboration_performance_monitor_test.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_collaboration_permission_guard_test.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_collaboration_prompt_optimization_test.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_collaboration_skillifier_test.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_collaboration_test_quality_guard.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_config_injection.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_consensus_dissent.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_consensus_fatigue.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_consensus_gate.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_dag_views.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_dashboard_live_mode.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_dashboard_split.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_dashboard_ui_e2e.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_dashboard_v43_panels.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_dependency_lock.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_docker_deployment.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_feedback_control_loop.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_five_axis_consensus.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_full_lifecycle_adapter.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_intent_workflow_mapper.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_judge_agent.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_learned_rule_phase4.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_lifecycle_protocol.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_loop_engineering_rollback.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_memory_benchmarks.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_meta_skill_layering.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_micro_task_planner.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_multi_host_adapter.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_multi_tenant_isolation_e2e.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_node_type_separation.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_operation_classifier.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_output_slicer.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_performance_fingerprint.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_performance_monitor_protocol.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_permission_guard_human_gate.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_pipeline_step19_20.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_plan_c_unified_architecture.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_plugins_hot_loader.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_production_features.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_prompt_dials.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_protocols.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_quick_bonus.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_rate_limit.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_role_skill_loader.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_severity_router.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_similar_task_recommender.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_sleep_guard.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_standardized_role_template.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_start_script.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_step_node_types.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_suggested_next_steps.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_task_completion_checker.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_task_scale_gate.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_taste_dials.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_teach_skill.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_triage_label.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_two_stage_review_gate.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_ue_test_framework.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_uiux_subitems.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_usage_tracker_coverage.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_v39_e2e.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_v39_performance.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_verification_gate.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_vertical_slice.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_worker_artifact_integration.py +0 -0
- {devsquad-4.5.19 → devsquad-4.5.21}/tests/test_workflow_persistence_coverage.py +0 -0
devsquad-4.5.21/PKG-INFO
ADDED
|
@@ -0,0 +1,824 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: devsquad
|
|
3
|
+
Version: 4.5.21
|
|
4
|
+
Summary: Production-Ready Multi-Role AI Task Orchestrator
|
|
5
|
+
Author-email: DevSquad Team <devsquad@example.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/lulin70/DevSquad
|
|
8
|
+
Project-URL: Documentation, https://github.com/lulin70/DevSquad/blob/main/README.md
|
|
9
|
+
Project-URL: Repository, https://github.com/lulin70/DevSquad.git
|
|
10
|
+
Project-URL: Issues, https://github.com/lulin70/DevSquad/issues
|
|
11
|
+
Project-URL: PyPI, https://pypi.org/project/devsquad/
|
|
12
|
+
Keywords: multi-agent,orchestration,llm,ai,collaboration,role-based,consensus,cybernetics,task-dispatch,openai,anthropic,cli,api,dashboard
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Classifier: Typing :: Typed
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: pyyaml>=6.0
|
|
28
|
+
Requires-Dist: fastapi>=0.100.0
|
|
29
|
+
Requires-Dist: uvicorn[standard]>=0.23.0
|
|
30
|
+
Requires-Dist: pydantic>=2.0
|
|
31
|
+
Provides-Extra: openai
|
|
32
|
+
Requires-Dist: openai>=1.0; extra == "openai"
|
|
33
|
+
Provides-Extra: anthropic
|
|
34
|
+
Requires-Dist: anthropic>=0.18; extra == "anthropic"
|
|
35
|
+
Provides-Extra: carrymem
|
|
36
|
+
Requires-Dist: carrymem[devsquad]>=0.2.8; extra == "carrymem"
|
|
37
|
+
Provides-Extra: mcp
|
|
38
|
+
Requires-Dist: mcp>=0.9; extra == "mcp"
|
|
39
|
+
Provides-Extra: monitoring
|
|
40
|
+
Requires-Dist: psutil>=5.9; extra == "monitoring"
|
|
41
|
+
Requires-Dist: prometheus-client>=0.19; extra == "monitoring"
|
|
42
|
+
Provides-Extra: api
|
|
43
|
+
Requires-Dist: fastapi>=0.100.0; extra == "api"
|
|
44
|
+
Requires-Dist: uvicorn[standard]>=0.23.0; extra == "api"
|
|
45
|
+
Requires-Dist: pydantic>=2.0; extra == "api"
|
|
46
|
+
Provides-Extra: visualization
|
|
47
|
+
Requires-Dist: streamlit>=1.28.0; extra == "visualization"
|
|
48
|
+
Requires-Dist: jupyter>=1.0; extra == "visualization"
|
|
49
|
+
Provides-Extra: alerts
|
|
50
|
+
Requires-Dist: slack-sdk>=3.21.0; extra == "alerts"
|
|
51
|
+
Provides-Extra: qa
|
|
52
|
+
Requires-Dist: Pillow>=10.0.0; extra == "qa"
|
|
53
|
+
Provides-Extra: dev
|
|
54
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
55
|
+
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
|
|
56
|
+
Requires-Dist: pytest-cov>=4.1; extra == "dev"
|
|
57
|
+
Requires-Dist: pytest-rerunfailures>=14.0; extra == "dev"
|
|
58
|
+
Requires-Dist: ruff==0.16.10; extra == "dev"
|
|
59
|
+
Requires-Dist: mypy==2.4.0; extra == "dev"
|
|
60
|
+
Requires-Dist: black==26.5.1; extra == "dev"
|
|
61
|
+
Requires-Dist: flake8>=6.0; extra == "dev"
|
|
62
|
+
Requires-Dist: httpx2>=2.12.0; extra == "dev"
|
|
63
|
+
Requires-Dist: streamlit>=1.28.0; extra == "dev"
|
|
64
|
+
Requires-Dist: Pillow>=10.0.0; extra == "dev"
|
|
65
|
+
Requires-Dist: fakeredis>=2.30; extra == "dev"
|
|
66
|
+
Requires-Dist: redis>=5.0; extra == "dev"
|
|
67
|
+
Requires-Dist: hypothesis>=6.0; extra == "dev"
|
|
68
|
+
Requires-Dist: bandit[toml]>=1.7; extra == "dev"
|
|
69
|
+
Requires-Dist: pip-audit>=2.7; extra == "dev"
|
|
70
|
+
Requires-Dist: radon>=6.0; extra == "dev"
|
|
71
|
+
Provides-Extra: all
|
|
72
|
+
Requires-Dist: openai>=1.0; extra == "all"
|
|
73
|
+
Requires-Dist: anthropic>=0.18; extra == "all"
|
|
74
|
+
Requires-Dist: carrymem[devsquad]>=0.2.8; extra == "all"
|
|
75
|
+
Requires-Dist: mcp>=0.9; extra == "all"
|
|
76
|
+
Requires-Dist: psutil>=5.9; extra == "all"
|
|
77
|
+
Requires-Dist: prometheus-client>=0.19; extra == "all"
|
|
78
|
+
Requires-Dist: fastapi>=0.100.0; extra == "all"
|
|
79
|
+
Requires-Dist: uvicorn[standard]>=0.23.0; extra == "all"
|
|
80
|
+
Requires-Dist: pydantic>=2.0; extra == "all"
|
|
81
|
+
Requires-Dist: streamlit>=1.28.0; extra == "all"
|
|
82
|
+
Requires-Dist: jupyter>=1.0; extra == "all"
|
|
83
|
+
Requires-Dist: slack-sdk>=3.21.0; extra == "all"
|
|
84
|
+
Requires-Dist: Pillow>=10.0.0; extra == "all"
|
|
85
|
+
Requires-Dist: pytest>=7.0; extra == "all"
|
|
86
|
+
Requires-Dist: pytest-asyncio>=0.21; extra == "all"
|
|
87
|
+
Requires-Dist: pytest-cov>=4.1; extra == "all"
|
|
88
|
+
Requires-Dist: pytest-rerunfailures>=14.0; extra == "all"
|
|
89
|
+
Requires-Dist: ruff>=0.4.0; extra == "all"
|
|
90
|
+
Requires-Dist: mypy>=1.0; extra == "all"
|
|
91
|
+
Requires-Dist: black>=23.0; extra == "all"
|
|
92
|
+
Requires-Dist: flake8>=6.0; extra == "all"
|
|
93
|
+
Requires-Dist: httpx2>=2.12.0; extra == "all"
|
|
94
|
+
Requires-Dist: fakeredis>=2.30; extra == "all"
|
|
95
|
+
Requires-Dist: redis>=5.0; extra == "all"
|
|
96
|
+
Requires-Dist: hypothesis>=6.0; extra == "all"
|
|
97
|
+
Dynamic: license-file
|
|
98
|
+
|
|
99
|
+
# DevSquad — Multi-Role AI Task Orchestrator
|
|
100
|
+
|
|
101
|
+
<p align="center">
|
|
102
|
+
<strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
|
|
103
|
+
<br>
|
|
104
|
+
<em>One task → Multi-role AI collaboration → One conclusion | V4.5.21 (Security + toolchain PATCH: Dependabot vuln closure, branch-protection bypass tightening, CI least-privilege; ruff 0.16.10/mypy 2.4.0 aligned across lock + pre-commit + CI pins; flaky hardening — min-of-3 latency sampling, host-bridge fuse E2E warm-up; `enable_anchor_check=False` factory fix) | V4.5.20 (Version-SSOT truth + deterministic review bundling MINOR: `--mode review --changeset` wired to real bundling, sub-skill manifest gate closed, anti-ghost production probe) | V4.5.19 (Flaky-test cleanup: dashboard latency gate → 5-run median + pytest-rerunfailures) | V4.5.18 (Perf-extension: SQLite PRAGMA to ccr_store/history_manager + SkillRegistry thread-safety hotfix) | V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badge 9400+/211+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI: v2 protocol hardening + factory v2 default + v1/v2 isolation) | V4.5.9 (Unified Gather Execution Core + Native Async Worker: 执行层统一 gather 化 + Worker 原生异步) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (Module Fiber + Coeffect: 6-state FSM + topological activation + modules CLI) | V4.5.3 (Artifacts + Effect — ArtifactStore + DispatchEffect + EffectRegistry + Audit CLI) | V4.5.2 (Experience polish: MOKA + Metrics + GitLab + Doctor + BackendConfig) | V4.5.0 (cross-session continuity + protocol-native skills)</em>
|
|
105
|
+
</p>
|
|
106
|
+
|
|
107
|
+
<p align="center">
|
|
108
|
+
<img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
|
|
109
|
+
<img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
|
|
110
|
+
<img alt="Tests" src="https://img.shields.io/badge/Tests-9400%2B%20passing-brightgreen" />
|
|
111
|
+
<img alt="Version" src="https://img.shields.io/badge/V4.5.21-success" />
|
|
112
|
+
<img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
|
|
113
|
+
<img alt="Quality" src="https://img.shields.io/badge/Code%20Quality-4.3%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%86-blue" />
|
|
114
|
+
<img alt="Security" src="https://img.shields.io/badge/Security-5%2F5%20%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%85-success" />
|
|
115
|
+
</p>
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 📖 太长不看?先看这个(30 秒)
|
|
120
|
+
|
|
121
|
+
### DevSquad 是什么?
|
|
122
|
+
|
|
123
|
+
**DevSquad** 是一个多角色 AI 任务编排器。当你提交一个任务时,它不再是单个 AI 回答,而是让 **7 个专业角色**(架构师、安全专家、测试员、开发者等)**并行协作**,最后给出经过多方审核的结论。
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
传统 AI: 你 ──→ ChatGPT ──→ 一个回答(可能不全面)
|
|
127
|
+
DevSquad: 你 ──→ DevSquad ──→ [架构师+安全+测试+开发...] ──→ 多维度共识结论
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### 核心优势(对比单 AI)
|
|
131
|
+
|
|
132
|
+
| 痛点 | 传统单 AI | DevSquad |
|
|
133
|
+
|------|----------|----------|
|
|
134
|
+
| **视角单一** | 只有通用视角 | 7 个专业角色并行审视 ✅ |
|
|
135
|
+
| **质量不可控** | 可能遗漏安全问题 | 多维度交叉验证 + 共识机制 ✅ |
|
|
136
|
+
| **无审计追踪** | 不知道回答依据什么 | 完整审计链 + SHA256 完整性校验 ✅ |
|
|
137
|
+
| **复杂任务崩溃** | 长任务容易丢失上下文 | Checkpoint 断点续传 + 工作流引擎 ✅ |
|
|
138
|
+
|
|
139
|
+
### 最快上手(5 分钟)
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# 安装
|
|
143
|
+
pip install devsquad
|
|
144
|
+
|
|
145
|
+
# 运行 - 让 AI 团队帮你设计认证系统
|
|
146
|
+
devsquad run "设计一个安全的用户认证系统" --roles architect,security,tester,coder
|
|
147
|
+
|
|
148
|
+
# 输出结构化报告:
|
|
149
|
+
# ✅ 架构师建议:采用 JWT + Refresh Token 方案...
|
|
150
|
+
# ✅ 安全专家审查:需防范 CSRF、XSS、SQL 注入...
|
|
151
|
+
# ✅ 测试策略:单元测试覆盖率达 90%+...
|
|
152
|
+
# ✅ 开发实现:提供完整代码框架...
|
|
153
|
+
# 📊 共识结论:方案可行,风险可控...
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 什么时候用 DevSquad?
|
|
157
|
+
|
|
158
|
+
| 你的需求 | 推荐方案 |
|
|
159
|
+
|---------|---------|
|
|
160
|
+
| 简单问答("Python 怎么写 for 循环?") | 直接用 ChatGPT/Claude ✅ |
|
|
161
|
+
| 代码片段审查 | DevSquad 单角色模式 ✅ |
|
|
162
|
+
| 复杂系统设计(需要多视角) | **DevSquad 多角色协作** 🎯 |
|
|
163
|
+
| 生产环境自动化流程 | **DevSquad + REST API + Dashboard** 🎯 |
|
|
164
|
+
|
|
165
|
+
📚 **想深入了解?** → [完整快速入门指南](QUICKSTART.md) | [211+ 模块详细参考](SKILL.md)
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
<details>
|
|
170
|
+
<summary>🔍 点击展开:完整功能介绍与架构详解</summary>
|
|
171
|
+
|
|
172
|
+
## 🚀 V4.5.2: Approval Gate + Connector Framework + Anti-Ghost E2E
|
|
173
|
+
|
|
174
|
+
**DevSquad V4.5.2** (PATCH release, SemVer compliant) introduces 2 new modules and completes 3 ROADMAP items (V451-1, V451-2, V451-7/8/9). All new modules default to safe, backward-compatible behavior — no API breaking changes. See [docs/release_notes/V4.5.2_RELEASE_NOTES.md](docs/release_notes/V4.5.2_RELEASE_NOTES.md) for full release notes.
|
|
175
|
+
|
|
176
|
+
### V4.5.2 — 2 New Modules + 3 ROADMAP Items
|
|
177
|
+
- **ApprovalGate**: User-level approval mechanism for external operations. Fail-closed on callback exceptions. Auto-approve fallback when no callback configured (backward compatible).
|
|
178
|
+
- **ConnectorFramework**: Protocol-based interface for external system integration (GitHub first). `Connector` Protocol + `GitHubConnector` (api/cli/simulation modes). `simulation=True` enforced by default in dispatch pipeline.
|
|
179
|
+
- **V451-7 Dashboard browser-level E2E**: 11 AppTest cases (Streamlit AppTest replaces Playwright — avoids heavy browser deps while still being browser-level DOM simulation)
|
|
180
|
+
- **V451-8 REST API end-to-end user journey E2E**: 190 E2E tests covering dispatch→history→roles→quick dispatch→error handling→lifecycle→cross-entry
|
|
181
|
+
- **V451-9 Connector Framework anti-ghost E2E**: 12 E2E tests (AG-1 through AG-8) proving pipeline activation
|
|
182
|
+
|
|
183
|
+
### V4.5.0 — Cross-Session Continuity + Protocol-Native Skills + Action-First Reports
|
|
184
|
+
|
|
185
|
+
**DevSquad V4.5.0** (merging V4.4.3 + V4.4.4 + V4.5.0 changes) delivers 10 new features for cross-session continuity, protocol-native skill architecture, and action-first reporting. The 7-role AI team orchestrates complex engineering tasks with full audit trails and consensus mechanisms. See [docs/VISION.md](docs/VISION.md) for the project vision.
|
|
186
|
+
|
|
187
|
+
### V4.5.0 — 10 New Features
|
|
188
|
+
- **ScratchpadHistoryStore**: SQLite-backed cross-session Scratchpad search
|
|
189
|
+
- **AgentIdentity**: Deterministic agent ID for cross-session tracking
|
|
190
|
+
- **WorkflowTrace**: Transparent workflow trace in dispatch reports
|
|
191
|
+
- **GitContext**: Git branch/commit context injection into dispatch
|
|
192
|
+
- **SkillProvider Protocol**: Protocol-native skill architecture (Builtin + MCP providers)
|
|
193
|
+
- **OutputStyle**: Action-first report format (from i-have-adhd insights)
|
|
194
|
+
- **SessionResume CLI**: `devsquad sessions list` + `dispatch --resume`
|
|
195
|
+
- **FileBundler**: Deterministic file bundling for review mode (from open-code-review). Invoked via `dispatch --mode review --changeset <files...>`; more than 5 files engage bundling, grouped by directory + imports (bundle count follows the grouping, not the file count)
|
|
196
|
+
- **SKILL.md Modular Split**: 1216→282 lines + 3 reference docs (MODULE_REFERENCE / SUB_SKILLS / VERSION_HISTORY)
|
|
197
|
+
- **VISION Documents**: docs/VISION.md + VISION_ORCHESTRATION.md + VISION_AGENT_COLLABORATION.md
|
|
198
|
+
|
|
199
|
+
### V4.4.0 — P0-P3 Enhancement Modules (5 new modules)
|
|
200
|
+
- **P0-1 RiskRegister**: PMP risk management with 7-role weighted assessment (probability × impact) + 4 response strategies (avoid/transfer/mitigate/accept) + `GateType.RISK_CHECK` gate (exposure ≥ 0.36 blocks)
|
|
201
|
+
- **P0-2 ViewpointRegistry**: TOGAF architecture viewpoints with 7-role bound formal viewpoints + `is_orthogonal()` orthogonality check + `check_consistency()` conflict detection
|
|
202
|
+
- **P1-1 ErrorBudgetTracker**: SRE error budget with SLO 99.9% default + `GateType.ERROR_BUDGET` P10 gate (budget exhaustion blocks deployment) + `burn_rate()` consumption rate
|
|
203
|
+
- **P1-2 GapAnalyzer**: TOGAF gap analysis with `analyze(current, target)` + `prioritize()` + `generate_roadmap()` + `suggest_scheduler_decision()` driving LoopScheduler
|
|
204
|
+
- **P2-1 DoraMetricsCollector**: DORA metrics (Deployment Frequency / Lead Time / Change Failure Rate / MTTR) + `GateType.DORA_CHECK` P11 gate (CFR > 15% triggers architecture review) + Elite/High/Medium/Low rating
|
|
205
|
+
|
|
206
|
+
### V4.4.1 — External Docs Restructure
|
|
207
|
+
- Archived orphan i18n docs (docs/i18n/ → docs/_archive/i18n/)
|
|
208
|
+
- Retired CHANGELOG-CN.md (CHANGELOG.md is now SSOT for all languages)
|
|
209
|
+
- Consolidated admin credentials to INSTALL.md only (single source of truth)
|
|
210
|
+
- Renumbered INSTALL.md methods to continuous 1-7
|
|
211
|
+
- Synced version numbers across all external docs (README/SKILL/INSTALL/CLAUDE)
|
|
212
|
+
|
|
213
|
+
### V4.4.2 — Multilingual + Dashboard Enhancement
|
|
214
|
+
- Multilingual role prompts (EN/CN/JP) for all 7 roles
|
|
215
|
+
- Dashboard 6-tab visibility (Overview/Dispatch/Lifecycle/Metrics/Audit/Settings)
|
|
216
|
+
- P2 Kanban evaluation (work-in-progress limits + cycle time tracking)
|
|
217
|
+
- P3 ITSM evaluation (incident management + change advisory board simulation)
|
|
218
|
+
- 13 E2E tests xpass + anti-ghost counters
|
|
219
|
+
|
|
220
|
+
### Anti-Ghost Feature Guarantee
|
|
221
|
+
Every new module includes `_call_counter` mechanism + E2E anti_ghost test + CI `check_module_activation.py` verification. Modules must be truly integrated into dispatch pipeline (not just instantiated), with Markdown report sections user-visible. V4.5.2 extends this pattern from V4.4.0 (RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector) to V4.5.2 (ApprovalGate / ConnectorFramework).
|
|
222
|
+
|
|
223
|
+
### Test Pyramid Achieved
|
|
224
|
+
- **Contract tests**: 5.2% (target ≥5% ✅)
|
|
225
|
+
- **Integration tests**: 15.1% (target ≥15% ✅)
|
|
226
|
+
- **Total tests**: 9400+ (CI authoritative)
|
|
227
|
+
- **E2E coverage**: 107 e2e + 1244 integration + 13 V4.4.0 anti-ghost + 12 V4.5.2 anti-ghost
|
|
228
|
+
|
|
229
|
+
### Historical Features (V4.0.0-V4.3.3)
|
|
230
|
+
- **V4.3.3**: P0-P3 enhancement E2E skeletons (xfail TDD for V4.4.0)
|
|
231
|
+
- **V4.3.2**: LLM vs Mock quality gap measurement (calibration gate + thin-slice probe)
|
|
232
|
+
- **V4.3.0 Phase 3**: Quality hardening + user simulation E2E (NPS 9/10)
|
|
233
|
+
- **V4.3.0 Phase 2**: OutputValidator full integration (LLM output safety detection)
|
|
234
|
+
- **V4.3.0 Phase 1**: DependencyHallucinationChecker (anti-slopsquatting supply chain attack)
|
|
235
|
+
- **V4.3.0 Phase 0**: DeploymentComplianceChecker (anti-violation deployment backstop)
|
|
236
|
+
- **V4.0.0 P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling
|
|
237
|
+
- **V4.0.0 P1-2 UI/UX Patrol**: 4-dimension audit + PIL pixel diff visual regression
|
|
238
|
+
- **V4.0.0 P2-1 Adversarial Verification**: red team attack + blue team defense + judge arbitration
|
|
239
|
+
- **V4.0.0 P2-2 DAG Visualization**: Mermaid / JSON / DOT three formats
|
|
240
|
+
- **V4.0.0 P3-1 Autonomous**: plan → dev → verify → fix 4-stage autonomous iteration
|
|
241
|
+
- **V4.0.0 P3-2 Plugin Hot-Loading**: 3 loading paths + path traversal 3-layer protection + reload rollback
|
|
242
|
+
|
|
243
|
+
9400+ tests passing (CI authoritative).
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## ⚡ Quick Start (7 Ways to Invoke DevSquad)
|
|
248
|
+
|
|
249
|
+
### Method 1: TRAE Skill (Recommended — you're already here)
|
|
250
|
+
|
|
251
|
+
DevSquad is registered as a TRAE Skill. Simply describe your task in the TRAE IDE chat, and the 7-role team will collaborate automatically. No CLI or API setup needed.
|
|
252
|
+
|
|
253
|
+
### Method 2: CLI (Recommended for Terminal Users)
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
# Interactive setup wizard (1-2 minutes)
|
|
257
|
+
python scripts/cli.py init
|
|
258
|
+
|
|
259
|
+
# Then start collaborating!
|
|
260
|
+
devsquad dispatch -t "your task description"
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### Method 3: MCP Server (For IDE / Tool Integration)
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
# Start MCP server with stdio transport (for IDE integration)
|
|
267
|
+
python3 scripts/mcp_server.py
|
|
268
|
+
|
|
269
|
+
# Or SSE transport (for remote access)
|
|
270
|
+
python3 scripts/mcp_server.py --port 8080
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Method 4: Web Dashboard (Recommended for Teams)
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
# Start Streamlit dashboard with authentication
|
|
277
|
+
streamlit run scripts/dashboard.py
|
|
278
|
+
|
|
279
|
+
# Open http://localhost:8501
|
|
280
|
+
# Login with default dev credentials (see INSTALL.md "Default credentials" section).
|
|
281
|
+
# Change all defaults in production.
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Method 5: REST API (Recommended for Integration)
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
# Install dependencies
|
|
288
|
+
pip install fastapi uvicorn
|
|
289
|
+
|
|
290
|
+
# Start API server
|
|
291
|
+
uvicorn scripts.api_server:app --host 0.0.0.0 --port 8000 --reload
|
|
292
|
+
|
|
293
|
+
# Access Swagger UI: http://localhost:8000/docs
|
|
294
|
+
# Access ReDoc: http://localhost:8000/redoc
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Method 6: Python API (Recommended for Developers)
|
|
298
|
+
|
|
299
|
+
```python
|
|
300
|
+
from scripts.collaboration.dispatcher import MultiAgentDispatcher
|
|
301
|
+
|
|
302
|
+
dispatcher = MultiAgentDispatcher()
|
|
303
|
+
result = dispatcher.dispatch(
|
|
304
|
+
task="Optimize database query performance",
|
|
305
|
+
roles=["architect", "security", "tester"],
|
|
306
|
+
)
|
|
307
|
+
print(result.report)
|
|
308
|
+
print(result.consensus)
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Method 7: One-Click Startup Script (V3.9.2+)
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
# One-click startup — 4 phases: env check → DB init → frontend build → service start
|
|
315
|
+
./scripts/start.sh
|
|
316
|
+
|
|
317
|
+
# Launch Streamlit dashboard instead of API server
|
|
318
|
+
./scripts/start.sh --dashboard
|
|
319
|
+
|
|
320
|
+
# Override API port
|
|
321
|
+
DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
322
|
+
|
|
323
|
+
# Show help
|
|
324
|
+
./scripts/start.sh --help
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
`start.sh` is the unified entry point introduced in V3.9.2 (P0-2). It validates the environment, initializes the database, builds the frontend, and starts the service in one command. Use `requirements.lock` alongside it for reproducible builds (`pip install -r requirements.lock`). V4.1.0 adds Loop Engineering, UI/UX 巡检, Adversarial 验证, DAG 可视化, Autonomous, and 插件热加载.
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## 👥 7 Core Roles
|
|
332
|
+
|
|
333
|
+
| Role | CLI ID | Aliases | Weight | Best For |
|
|
334
|
+
|------|--------|---------|--------|----------|
|
|
335
|
+
| 🏗️ **Architect** | `arch` | `architect` | 1.5 | System design, tech stack, performance/security architecture |
|
|
336
|
+
| 📋 **Product Manager** | `pm` | `product-manager` | 1.2 | Requirements, user stories, acceptance criteria |
|
|
337
|
+
| 🛡️ **Security Expert** | `sec` | `security` | 1.1 | Threat modeling, vulnerability audit, compliance |
|
|
338
|
+
| 🧪 **Tester** | `test` | `tester`, `qa` | 1.0 | Test strategy, quality assurance, edge cases |
|
|
339
|
+
| 💻 **Coder** | `coder` | `solo-coder`, `dev` | 1.0 | Implementation, code review, performance optimization |
|
|
340
|
+
| 🔧 **DevOps** | `infra` | `devops` | 1.0 | CI/CD, containerization, monitoring, infrastructure |
|
|
341
|
+
| 🎨 **UI Designer** | `ui` | `ui-designer` | 0.9 | UX flow, interaction design, accessibility |
|
|
342
|
+
|
|
343
|
+
**Auto-match**: If no roles specified, the dispatcher automatically matches based on task keywords.
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
348
|
+
|
|
349
|
+
DevSquad's 211+ modules are organized into **5 capability domains**, each solving a specific problem:
|
|
350
|
+
|
|
351
|
+
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
352
|
+
|
|
353
|
+
> **让 7 个角色高效协作的「指挥中心」**
|
|
354
|
+
|
|
355
|
+
| Module | Purpose | When to Use |
|
|
356
|
+
|--------|---------|------------|
|
|
357
|
+
| **MultiAgentDispatcher** | Unified dispatch entry point | All tasks automatically |
|
|
358
|
+
| **Coordinator** | Task decomposition + role assignment | Complex tasks needing breakdown |
|
|
359
|
+
| **Scratchpad** | Shared blackboard for real-time info exchange | Inter-role collaboration |
|
|
360
|
+
| **ConsensusEngine** | Weighted voting + veto + escalation mechanism | Security/architecture disputes |
|
|
361
|
+
| **BatchScheduler** | Parallel/sequential hybrid scheduling | Resource-constrained environments |
|
|
362
|
+
|
|
363
|
+
**Core Workflow:**
|
|
364
|
+
```
|
|
365
|
+
User Task → [InputValidator] → [RoleMatcher] → [Coordinator Orchestration]
|
|
366
|
+
→ [ThreadPoolExecutor Parallel Workers] → [Scratchpad Real-time Sharing]
|
|
367
|
+
→ [ConsensusEngine] → [ReportFormatter] → [Structured Report]
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### 🛡️ Domain 2: Quality Assurance System
|
|
371
|
+
|
|
372
|
+
> **防止 AI 「偷懒」或「幻觉」**
|
|
373
|
+
|
|
374
|
+
| Module | Purpose | When to Use |
|
|
375
|
+
|--------|---------|------------|
|
|
376
|
+
| **InputValidator** | Security validation + 40-pattern detection (14 forbidden + 21 prompt injection + 5 suspicious) | Production environments |
|
|
377
|
+
| **VerificationGate** | Mandatory evidence requirements + 7 Red Flags detection | Critical decision scenarios |
|
|
378
|
+
| **AntiRationalizationEngine** | Per-role excuse→rebuttal tables to prevent quality shortcuts | High quality requirements |
|
|
379
|
+
| **TestQualityGuard** | Test quality audit (API validation / anti-pattern detection / dimension coverage) | Pre-release verification |
|
|
380
|
+
| **PermissionGuard** | 4-level safety gate (PLAN/DEFAULT/AUTO/BYPASS) | Security-sensitive tasks |
|
|
381
|
+
|
|
382
|
+
### ⚡ Domain 3: Performance & Reliability
|
|
383
|
+
|
|
384
|
+
> **让系统更快、更稳定、更省钱**
|
|
385
|
+
|
|
386
|
+
| Module | Purpose | When to Use |
|
|
387
|
+
|--------|---------|------------|
|
|
388
|
+
| **LLMCache** | TTL-based LRU cache with disk persistence (60-80% cost reduction) | High-frequency usage |
|
|
389
|
+
| **LLMRetry** | Exponential backoff + circuit breaker + multi-backend fallback | Unstable networks |
|
|
390
|
+
| **FeedbackControlLoop** | Closed-loop feedback control with automatic iteration until quality threshold met | High quality output pursuit |
|
|
391
|
+
| **ExecutionGuard** | Real-time abort guard (timeout/output/keywords) for safe execution | Long-running tasks |
|
|
392
|
+
| **FallbackBackend** | Automatic backend failover with health monitoring | High availability requirements |
|
|
393
|
+
|
|
394
|
+
### 📊 Domain 4: Observability & Governance
|
|
395
|
+
|
|
396
|
+
> **知道系统在做什么、做得怎么样**
|
|
397
|
+
|
|
398
|
+
| Module | Purpose | When to Use |
|
|
399
|
+
|--------|---------|------------|
|
|
400
|
+
| **PerformanceMonitor** | P95/P99 response time, CPU/memory tracking, bottleneck detection | Performance tuning |
|
|
401
|
+
| **UsageTracker** | Token/cost usage tracking and reporting | Cost control |
|
|
402
|
+
| **AuditLogger** | SHA256 integrity operation logs with CSV/JSON export (Preview) | Compliance auditing |
|
|
403
|
+
| **RBAC Engine** | 15+ fine-grained permissions, 5 roles (SUPER_ADMIN/ADMIN/OPERATOR/ANALYST/VIEWER) (Preview) | Enterprise access control |
|
|
404
|
+
| **Multi-Tenancy Manager** | 3 isolation levels (strict/moderate/shared), tenant-scoped resources (Preview) | Multi-tenant SaaS |
|
|
405
|
+
| **Sensitive Data Masker** | PII detection and masking (email/phone/ID card/credit card), configurable rules (Preview) | Data compliance |
|
|
406
|
+
| **HistoryManager** | SQLite time-series storage: metrics snapshots, alert history, API logs | Retrospective analysis |
|
|
407
|
+
|
|
408
|
+
### 🔌 Domain 5: Integration & Extension
|
|
409
|
+
|
|
410
|
+
> **融入你的现有工具链**
|
|
411
|
+
|
|
412
|
+
| Module | Purpose | When to Use |
|
|
413
|
+
|--------|---------|------------|
|
|
414
|
+
| **CLI** | Command-line interface with lifecycle commands | Daily developer usage |
|
|
415
|
+
| **REST API (FastAPI)** | 10+ endpoints with OpenAPI/Swagger docs | Microservice integration |
|
|
416
|
+
| **Dashboard (Streamlit)** | Interactive web dashboard with authentication | Operations team visualization |
|
|
417
|
+
| **MCP Protocol** | Integration with TRAE/Claude Code/Cursor | AI Agent ecosystem |
|
|
418
|
+
| **Docker Support** | Multi-stage build for production deployment | Containerized environments |
|
|
419
|
+
| **GitHub Actions CI** | Python 3.10-3.11 matrix testing | CI/CD pipelines |
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## 🔬 Cybernetics Enhancement Modules (V3.6.1)
|
|
424
|
+
|
|
425
|
+
> **非侵入式包装设计 — 可选开关,零修改现有核心逻辑**
|
|
426
|
+
|
|
427
|
+
The 5 cybernetic modules work independently or together without modifying existing core logic:
|
|
428
|
+
|
|
429
|
+
```
|
|
430
|
+
User Task
|
|
431
|
+
↓
|
|
432
|
+
[SimilarTaskRecommender] ← Optional: suggest roles from history
|
|
433
|
+
↓
|
|
434
|
+
[AdaptiveRoleSelector] ← Optional: optimize role selection
|
|
435
|
+
↓
|
|
436
|
+
[MultiAgentDispatcher]
|
|
437
|
+
↓
|
|
438
|
+
[FeedbackControlLoop] ← Wrap dispatcher for auto-iteration
|
|
439
|
+
↓ [each worker step]
|
|
440
|
+
[ExecutionGuard] ← Guard each worker execution
|
|
441
|
+
↓
|
|
442
|
+
[PerformanceFingerprint] ← Record after dispatch completes
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### 1️⃣ FeedbackControlLoop (反馈闭环控制器)
|
|
446
|
+
- Closed-loop feedback control with automatic iteration until quality threshold met
|
|
447
|
+
- Configurable quality gate (`quality_gate`) and maximum iterations
|
|
448
|
+
- Lightweight quality assessment (no LLM calls), supports dry-run mode
|
|
449
|
+
|
|
450
|
+
### 2️⃣ ExecutionGuard (执行守护者)
|
|
451
|
+
- Real-time execution monitoring with 4 abort conditions: timeout, output size, token count, critical keywords
|
|
452
|
+
- Lightweight checks (<1ms), zero external dependencies
|
|
453
|
+
- Dynamically configurable thresholds
|
|
454
|
+
|
|
455
|
+
### 3️⃣ PerformanceFingerprint (性能指纹系统)
|
|
456
|
+
- Unified execution fingerprint recording (fuses 4 data sources)
|
|
457
|
+
- Pure Python TF-IDF implementation (no sklearn/numpy), supports English/Chinese mixed content
|
|
458
|
+
- JSON persistence to `.devsquad_data/fingerprints/`, graceful cold-start degradation
|
|
459
|
+
|
|
460
|
+
### 4️⃣ SimilarTaskRecommender (相似任务推荐器)
|
|
461
|
+
- TF-IDF-based task similarity search with historical success configuration recommendations
|
|
462
|
+
- Intelligent role combination recommendation, intent prediction, execution time estimation
|
|
463
|
+
- Confidence scoring (high/medium/low), graceful cold-start degradation
|
|
464
|
+
|
|
465
|
+
### 5️⃣ AdaptiveRoleSelector (自适应角色选择器)
|
|
466
|
+
- Three-tier selection strategy based on historical success rates
|
|
467
|
+
- Configurable minimum success rate and maximum role count
|
|
468
|
+
- Supports manual statistics updates and comprehensive role effectiveness reporting
|
|
469
|
+
|
|
470
|
+
**Recommended usage** (progressive adoption):
|
|
471
|
+
```python
|
|
472
|
+
from scripts.collaboration import MultiAgentDispatcher, FeedbackControlLoop, ExecutionGuard, PerformanceFingerprint
|
|
473
|
+
|
|
474
|
+
dispatcher = MultiAgentDispatcher()
|
|
475
|
+
guard = ExecutionGuard()
|
|
476
|
+
fingerprint = PerformanceFingerprint()
|
|
477
|
+
|
|
478
|
+
# Option 1: Full cybernetics stack
|
|
479
|
+
loop = FeedbackControlLoop(dispatcher, quality_gate=0.7)
|
|
480
|
+
result = loop.run("Your task here")
|
|
481
|
+
|
|
482
|
+
# Option 2: Guard only (minimal adoption)
|
|
483
|
+
result = dispatcher.dispatch("Your task")
|
|
484
|
+
for w in result.worker_results:
|
|
485
|
+
abort, reason = guard.check_abort(w.output, w.duration)
|
|
486
|
+
if abort:
|
|
487
|
+
print(f"Aborted: {reason}")
|
|
488
|
+
|
|
489
|
+
# Option 3: Learning only
|
|
490
|
+
fingerprint.record_execution("task", result, result.timing, result.matched_roles)
|
|
491
|
+
similar = fingerprint.find_similar("new task", top_k=3)
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
All modules are **optional switches** — DevSquad works perfectly without them.
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
## 🏗️ Architecture Overview (Layered Design)
|
|
499
|
+
|
|
500
|
+
```
|
|
501
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
502
|
+
│ User Access Layer │
|
|
503
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
504
|
+
│ │ Streamlit │ │ FastAPI REST │ │ CLI/Notebook │ │
|
|
505
|
+
│ │ Dashboard │ │ API Server │ │ (Existing) │ │
|
|
506
|
+
│ │ (Auth+HTTPS) │ │ (Swagger) │ │ │ │
|
|
507
|
+
│ └──────┬───────┘ └──────┬───────┘ └──────────────┘ │
|
|
508
|
+
└─────────┼───────────────┼───────────────────────────────────┘
|
|
509
|
+
│ │
|
|
510
|
+
▼ ▼
|
|
511
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
512
|
+
│ Business Logic Layer │
|
|
513
|
+
│ ┌─────────────┐ ┌─────────────┐ │
|
|
514
|
+
│ │AuthManager │ │HistoryMgr │ │
|
|
515
|
+
│ │(RBAC Auth) │ │(SQLite TSDB)│ │
|
|
516
|
+
│ └─────────────┘ └─────────────┘ │
|
|
517
|
+
│ ┌─────────────────────────────────────────────┐ │
|
|
518
|
+
│ │ LifecycleProtocol (11-Phase Engine) │ │
|
|
519
|
+
│ │ UnifiedGateEngine + CheckpointManager │ │
|
|
520
|
+
│ └─────────────────────────────────────────────┘ │
|
|
521
|
+
└─────────────────────────┬───────────────────────────────────┘
|
|
522
|
+
│
|
|
523
|
+
▼
|
|
524
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
525
|
+
│ Data Persistence Layer │
|
|
526
|
+
│ ┌────────────┐ ┌────────────┐ ┌────────────────────────┐ │
|
|
527
|
+
│ │ SQLite DB │ │ YAML Config│ │ Checkpoint Files │ │
|
|
528
|
+
│ │ (History) │ │ (Deploy) │ │ (Lifecycle State) │ │
|
|
529
|
+
│ └────────────┘ └────────────┘ └────────────────────────┘ │
|
|
530
|
+
└─────────────────────────────────────────────────────────────┘
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
---
|
|
534
|
+
|
|
535
|
+
## 🧩 Layered Sub-Skill Architecture (V3.6.0)
|
|
536
|
+
|
|
537
|
+
> DevSquad provides **8 atomic sub-skills** that can be used independently or together.
|
|
538
|
+
> Each sub-skill is a thin wrapper (~50 lines) importing existing core modules — no duplicated logic.
|
|
539
|
+
|
|
540
|
+
```
|
|
541
|
+
skills/
|
|
542
|
+
├── dispatch/ → DispatchSkill — MultiAgentDispatcher (7-role orchestration)
|
|
543
|
+
├── intent/ → IntentSkill — IntentWorkflowMapper (6 intents × 3 languages)
|
|
544
|
+
├── review/ → ReviewSkill — FiveAxisConsensusEngine (5-axis code review)
|
|
545
|
+
├── security/ → SecuritySkill — InputValidator + OperationClassifier + PermissionGuard
|
|
546
|
+
├── test/ → TestSkill — TestQualityGuard + test strategy generation
|
|
547
|
+
├── retrospective/ → RetroSkill — RetrospectiveEngine + pattern extraction
|
|
548
|
+
├── prototype/ → PrototypeSkill — Rapid prototype scaffolding (V4.5.0)
|
|
549
|
+
└── teach/ → TeachSkill — Knowledge transfer & onboarding (V4.5.0)
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
### Sub-Skill Quick Reference
|
|
553
|
+
|
|
554
|
+
| Skill | Core Method | Wraps | Mock Mode |
|
|
555
|
+
|-------|------------|-------|:---------:|
|
|
556
|
+
| `dispatch` | `run(task, roles, mode)` | MultiAgentDispatcher | ✅ |
|
|
557
|
+
| `intent` | `detect(text, lang)` | IntentWorkflowMapper | ✅ |
|
|
558
|
+
| `review` | `review(code)` | FiveAxisConsensusEngine | ✅ |
|
|
559
|
+
| `security` | `scan_input(text)` | InputValidator + OpClassifier | ✅ |
|
|
560
|
+
| `test` | `generate_strategy(module)` | TestQualityGuard | ✅ |
|
|
561
|
+
| `retrospective` | `run_retrospective(results)` | RetrospectiveEngine | ✅ |
|
|
562
|
+
|
|
563
|
+
### Usage Examples
|
|
564
|
+
|
|
565
|
+
```python
|
|
566
|
+
# Direct import (recommended for single skill)
|
|
567
|
+
from skills.dispatch.handler import DispatchSkill
|
|
568
|
+
|
|
569
|
+
result = DispatchSkill().run("Fix login bug", roles=["coder", "tester"])
|
|
570
|
+
|
|
571
|
+
# Via registry (dynamic discovery)
|
|
572
|
+
from skills import get_skill, list_skills
|
|
573
|
+
|
|
574
|
+
print(list_skills()) # ['dispatch', 'intent', 'review', 'security', 'test', 'retrospective']
|
|
575
|
+
skill = get_skill("security")
|
|
576
|
+
result = skill.scan_input("DROP TABLE users; --")
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
All sub-skills work **without any API key** in Mock mode.
|
|
580
|
+
|
|
581
|
+
---
|
|
582
|
+
|
|
583
|
+
## 📋 Plan C Architecture (Core Engine)
|
|
584
|
+
|
|
585
|
+
**Unified Lifecycle Architecture** - Resolves CLI 6 commands vs 11-phase lifecycle:
|
|
586
|
+
|
|
587
|
+
```
|
|
588
|
+
CLI View Layer (6 commands) Core Engine (11 phases)
|
|
589
|
+
┌─────────────────────┐ ┌──────────────────────────┐
|
|
590
|
+
│ spec → P1, P2 │───View ──→│ P1: Requirements │
|
|
591
|
+
│ plan → P7 │ Mapping │ P2: Architecture │
|
|
592
|
+
│ build → P8 │ │ P3: Technical Design │
|
|
593
|
+
│ test → P9 │ │ ... │
|
|
594
|
+
│ review → P8,P6 │ │ P10: Deployment │
|
|
595
|
+
│ ship → P10 │ │ P11: Operations │
|
|
596
|
+
└─────────────────────┘ └──────────────────────────┘
|
|
597
|
+
↓ ↓
|
|
598
|
+
UnifiedGateEngine CheckpointManager
|
|
599
|
+
(Phase + Worker gates) (Lifecycle state persistence)
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
**Core Components:**
|
|
603
|
+
- ✅ **LifecycleProtocol** - Abstract interface for unified lifecycle management
|
|
604
|
+
- ✅ **UnifiedGateEngine** - Integrates VerificationGate + Phase transition gates
|
|
605
|
+
- ✅ **FullLifecycleAdapter** - Complete 11-phase lifecycle with dependency resolution
|
|
606
|
+
- ✅ **Enhanced CheckpointManager** - Auto save/restore lifecycle state across sessions
|
|
607
|
+
|
|
608
|
+
---
|
|
609
|
+
|
|
610
|
+
## 📦 Installation
|
|
611
|
+
|
|
612
|
+
### Prerequisites
|
|
613
|
+
- **Python 3.10+** (3.10, 3.11 supported, tested in CI)
|
|
614
|
+
- **pip** or **pipenv** for package management
|
|
615
|
+
|
|
616
|
+
### Option A: PyPI Install (Recommended)
|
|
617
|
+
```bash
|
|
618
|
+
# Install from PyPI — zero setup, ready to use
|
|
619
|
+
pip install devsquad
|
|
620
|
+
|
|
621
|
+
# With optional dependencies
|
|
622
|
+
pip install "devsquad[api]" # FastAPI + Streamlit dashboard
|
|
623
|
+
pip install "devsquad[all]" # All optional features
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
### Option B: Git Clone + Local Install
|
|
627
|
+
```bash
|
|
628
|
+
git clone https://github.com/lulin70/DevSquad.git
|
|
629
|
+
cd DevSquad
|
|
630
|
+
|
|
631
|
+
# Install core package (minimal dependencies)
|
|
632
|
+
pip install -e .
|
|
633
|
+
|
|
634
|
+
# Ready to use!
|
|
635
|
+
devsquad dispatch -t "Design user authentication system"
|
|
636
|
+
```
|
|
637
|
+
|
|
638
|
+
### Verify Installation
|
|
639
|
+
```bash
|
|
640
|
+
# Check version
|
|
641
|
+
devsquad --version
|
|
642
|
+
# Expected: devsquad 4.5.21
|
|
643
|
+
|
|
644
|
+
# Run tests
|
|
645
|
+
pytest tests/ -v --tb=short
|
|
646
|
+
# Expected: 9400+ passed
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
---
|
|
650
|
+
|
|
651
|
+
## ⚙️ Configuration
|
|
652
|
+
|
|
653
|
+
Create `.devsquad.yaml` in your project root:
|
|
654
|
+
|
|
655
|
+
```yaml
|
|
656
|
+
quality_control:
|
|
657
|
+
enabled: true
|
|
658
|
+
strict_mode: true
|
|
659
|
+
min_quality_score: 85
|
|
660
|
+
|
|
661
|
+
llm:
|
|
662
|
+
backend: auto
|
|
663
|
+
base_url: "" # Set via DEVSQUAD_OPENAI_BASE_URL env var
|
|
664
|
+
model: "" # Set via DEVSQUAD_OPENAI_MODEL env var
|
|
665
|
+
timeout: 120
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
Or use environment variables (higher priority):
|
|
669
|
+
|
|
670
|
+
```bash
|
|
671
|
+
# Default: auto tries real backends first, then falls back to mock
|
|
672
|
+
export DEVSQUAD_LLM_BACKEND=auto
|
|
673
|
+
export DEVSQUAD_OPENAI_BASE_URL=https://api.openai.com/v1
|
|
674
|
+
export DEVSQUAD_OPENAI_MODEL=gpt-4
|
|
675
|
+
export DEVSQUAD_OPENAI_API_KEY=sk-...
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
**Environment Variables Reference:**
|
|
679
|
+
|
|
680
|
+
| Variable | Purpose | Default |
|
|
681
|
+
|----------|---------|---------|
|
|
682
|
+
| `DEVSQUAD_LLM_BACKEND` | Default backend type (auto\|mock\|trae\|openai\|anthropic\|fallback) | `auto` |
|
|
683
|
+
| `DEVSQUAD_OPENAI_API_KEY` | OpenAI/MOKA AI API key | None |
|
|
684
|
+
| `DEVSQUAD_OPENAI_BASE_URL` | OpenAI-compatible base URL | None |
|
|
685
|
+
| `DEVSQUAD_OPENAI_MODEL` | OpenAI model name | `gpt-4` |
|
|
686
|
+
| `DEVSQUAD_ANTHROPIC_API_KEY` | Anthropic API key | None |
|
|
687
|
+
| `DEVSQUAD_ANTHROPIC_BASE_URL` | Anthropic-compatible base URL | None |
|
|
688
|
+
| `DEVSQUAD_ANTHROPIC_MODEL` | Anthropic model name | `claude-sonnet-4-20250514` |
|
|
689
|
+
| `DEVSQUAD_LOG_LEVEL` | Logging level | `WARNING` |
|
|
690
|
+
|
|
691
|
+
---
|
|
692
|
+
|
|
693
|
+
## 🧪 Testing
|
|
694
|
+
|
|
695
|
+
### Quick Smoke Test (< 30 seconds)
|
|
696
|
+
```bash
|
|
697
|
+
python3 scripts/cli.py --version # Expected: DevSquad 4.5.21
|
|
698
|
+
python3 scripts/cli.py status # Expected: System ready
|
|
699
|
+
python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
700
|
+
```
|
|
701
|
+
|
|
702
|
+
### Full Test Suite
|
|
703
|
+
```bash
|
|
704
|
+
# Run all tests (9400+ tests passing)
|
|
705
|
+
python3 -m pytest tests/ -q --tb=line
|
|
706
|
+
|
|
707
|
+
# With coverage report
|
|
708
|
+
python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
### Test Layering Strategy
|
|
712
|
+
|
|
713
|
+
| Priority | Scope | Examples | Count |
|
|
714
|
+
|----------|-------|----------|-------|
|
|
715
|
+
| **P0** | Quality Framework Core | AntiRationalization, VerificationGate, IntentWorkflowMapper, AuthManager | ~200 |
|
|
716
|
+
| **P1** | Enhancement Modules | FiveAxisConsensus, OperationClassifier, OutputSlicer | ~150 |
|
|
717
|
+
| **P1+** | Cybernetics (V3.6.6) | FeedbackControlLoop, ExecutionGuard, PerformanceFingerprint, etc. | **110** |
|
|
718
|
+
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
719
|
+
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
720
|
+
|
|
721
|
+
**Total: 9400+ CI tests / 266 e2e (9400+ collected)**
|
|
722
|
+
|
|
723
|
+
Run by priority:
|
|
724
|
+
```bash
|
|
725
|
+
# P0 only (critical path, < 10s)
|
|
726
|
+
python3 -m pytest tests/ -k "anti_ratif or verification or intent_workflow or auth" -q
|
|
727
|
+
|
|
728
|
+
# P0 + P1 (quality + enhancement, < 30s)
|
|
729
|
+
python3 -m pytest tests/ -k "anti_ratif or verification or intent or auth or five_axis or operation" -q
|
|
730
|
+
|
|
731
|
+
# Full suite
|
|
732
|
+
python3 -m pytest tests/ -q --tb=line
|
|
733
|
+
```
|
|
734
|
+
|
|
735
|
+
---
|
|
736
|
+
|
|
737
|
+
## 📚 Documentation
|
|
738
|
+
|
|
739
|
+
| Document | Description | Language |
|
|
740
|
+
|----------|-------------|----------|
|
|
741
|
+
| [**QUICKSTART.md**](QUICKSTART.md) | **⭐ 30 秒快速入门指南(推荐新用户)** | 中文 |
|
|
742
|
+
| [SKILL.md](SKILL.md) | 完整技能手册 + 211+ 模块参考 | EN/CN/JP |
|
|
743
|
+
| [GUIDE.md](GUIDE.md) | 完全用户指南 | 中文 |
|
|
744
|
+
| [INSTALL.md](INSTALL.md) | 安装指南 (Unix + Windows) | EN/CN |
|
|
745
|
+
| [EXAMPLES.md](EXAMPLES.md) | 实际使用示例 | EN |
|
|
746
|
+
| [CHANGELOG.md](CHANGELOG.md) | 版本历史记录 | EN |
|
|
747
|
+
| [README-CN.md](README-CN.md) | 中文说明 | 中文 |
|
|
748
|
+
| [README-JP.md](README-JP.md) | 日本語説明 | 日本語 |
|
|
749
|
+
| [docs/prd/V4.6.1_cleanup_PRD.md](docs/prd/V4.6.1_cleanup_PRD.md) | 产品需求文档 | 中文 |
|
|
750
|
+
| [docs/architecture/ARCHITECTURE_V4.md](docs/architecture/ARCHITECTURE_V4.md) | 技术架构文档 | 中文 |
|
|
751
|
+
| [docs/planning/V43_ROADMAP_PROPOSAL.md](docs/planning/V43_ROADMAP_PROPOSAL.md) | V4.3 统一推进方案 v1.2(7-Role 共识达成) | 中文 |
|
|
752
|
+
| [docs/prd/V4.3.0_PRD.md](docs/prd/V4.3.0_PRD.md) | V4.3.0 PRD(需求/用户故事/验收标准) | 中文 |
|
|
753
|
+
| [docs/architecture/V4.3.0_ARCHITECTURE.md](docs/architecture/V4.3.0_ARCHITECTURE.md) | V4.3.0 架构设计(模块边界/接口契约/依赖图) | 中文 |
|
|
754
|
+
| [docs/testing/V4.3.0_TEST_PLAN.md](docs/testing/V4.3.0_TEST_PLAN.md) | V4.3.0 测试方案(测试金字塔/E2E/真实用户模拟) | 中文 |
|
|
755
|
+
|
|
756
|
+
---
|
|
757
|
+
|
|
758
|
+
## 🗺️ Roadmap
|
|
759
|
+
|
|
760
|
+
### V4.3.0(进行中 — 7-Role 共识达成,文档先行)
|
|
761
|
+
|
|
762
|
+
**版本策略**: V4.3.0 预发布(全部代码+文档+E2E 验证)→ 用户确认 → V4.3.0 正式版
|
|
763
|
+
|
|
764
|
+
**整合三方面输入**:
|
|
765
|
+
1. 技术债持续治理(`todo_drift_monitor` + CI 阻塞)
|
|
766
|
+
2. pickle→JSON 迁移(dead code 删除 + fallback 安全收紧 + 移除)
|
|
767
|
+
3. 上游 TraeMultiAgentSkill v2.6-v2.8 精细化启发(Ponytail 双模式 / LoopKernel 回退 / UIUX 审计 / Dashboard 可视化)
|
|
768
|
+
|
|
769
|
+
**V4.3.0 范围(9 项)**:
|
|
770
|
+
|
|
771
|
+
| ID | 名称 | 优先级 |
|
|
772
|
+
|----|------|--------|
|
|
773
|
+
| P0-1 | pickle dead code 删除 + fallback 安全收紧 | P0 |
|
|
774
|
+
| P0-2 | `todo_drift_monitor.py` + CI 阻塞 + PR template | P0 |
|
|
775
|
+
| P1-1 | Ponytail lite/full 双模式 + DebtCollector + RequirementTracer | P1 |
|
|
776
|
+
| P1-4 | LoopKernel RollbackStrategy + 独立硬上限 | P1 |
|
|
777
|
+
| P1-5 | UIUXAnalyzer 子项审计 + 按需补全 | P1 |
|
|
778
|
+
| P1-6 | Dashboard 状态可视化 | P1 |
|
|
779
|
+
| P2-1 | pickle fallback 移除 | P2 |
|
|
780
|
+
| P2-2 | Autonomous SmartConfirmation 文档补全 | P2 |
|
|
781
|
+
| P2-4 | V4.3.0 发布文档同步 | P2 |
|
|
782
|
+
|
|
783
|
+
**7-Role 共识**: 7/7 APPROVE_WITH_CONCERNS,按 10 项调整修订后达成共识。详见 [V43_ROADMAP_PROPOSAL.md](docs/planning/V43_ROADMAP_PROPOSAL.md) v1.2。
|
|
784
|
+
|
|
785
|
+
**项目生命周期**: 按 11-Phase 模型推进(P1 需求 → P2 架构 → P3 技术设计 → P7 测试计划 → P8 实施 → P9 测试执行 → P10 部署发布)
|
|
786
|
+
|
|
787
|
+
**测试金字塔保障**: unit ≥60% / integration 15-25% / e2e ≤10% / contract 5-10% / smoke ≤5%
|
|
788
|
+
|
|
789
|
+
---
|
|
790
|
+
|
|
791
|
+
## 🤝 Contributing
|
|
792
|
+
|
|
793
|
+
1. Fork the repository
|
|
794
|
+
2. Create feature branch (`git checkout -b feature/amazing-feature`)
|
|
795
|
+
3. Commit changes (`git commit -m 'Add amazing feature'`)
|
|
796
|
+
4. Push to branch (`git push origin feature/amazing-feature`)
|
|
797
|
+
5. Open a Pull Request
|
|
798
|
+
|
|
799
|
+
---
|
|
800
|
+
|
|
801
|
+
## 📄 License
|
|
802
|
+
|
|
803
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
804
|
+
|
|
805
|
+
---
|
|
806
|
+
|
|
807
|
+
<p align="center">
|
|
808
|
+
<strong>⭐ 如果 DevSquad 对你有帮助,请给个 Star!⭐</strong>
|
|
809
|
+
<br>
|
|
810
|
+
<em>让更多开发者享受到「AI 团队协作」的力量</em>
|
|
811
|
+
<br>
|
|
812
|
+
<br>
|
|
813
|
+
<strong>🙏 Acknowledgments</strong>
|
|
814
|
+
<br>
|
|
815
|
+
Inspired by <a href="https://github.com/weiransoft/TraeMultiAgentSkill">TraeMultiAgentSkill</a> upstream project
|
|
816
|
+
<br>
|
|
817
|
+
Built with ❤️ by the DevSquad team
|
|
818
|
+
</p>
|
|
819
|
+
|
|
820
|
+
---
|
|
821
|
+
|
|
822
|
+
*Last updated: 2026-10-07 | Version: V4.5.21 (Security + toolchain PATCH: Dependabot vuln closure, branch-protection bypass tightening, CI least-privilege; ruff 0.16.10/mypy 2.4.0 aligned across lock + pre-commit + CI pins; flaky hardening — min-of-3 latency sampling, host-bridge fuse E2E warm-up; `enable_anchor_check=False` factory fix) | V4.5.20 (Version-SSOT truth + deterministic review bundling: `--mode review --changeset` wired to real bundling, sub-skill manifest version gate, anti-ghost production probe — MINOR) | V4.5.19 (Flaky-test cleanup: dashboard latency gate → 5-run median + pytest-rerunfailures) | V4.5.18 (Perf-extension: SQLite PRAGMA to ccr_store/history_manager + SkillRegistry thread-safety hotfix) | V4.5.17 (V4.6.1-cleanup: PR #9 CI repair + e2e portability + release-readiness) | V4.5.16 (Housekeeping + Digital Truth PATCH: 18-file SSOT sync, badges 9400+/204+, date 2026-09-03) | V4.5.15 (Skill registration gate + Prometheus E2E + 3-level TRAE cache sync) | V4.5.10 (HostLLMBridge v2 production wiring + --async CLI) | V4.5.9 (Unified Gather Execution Core + Native Async Worker) | V4.5.8 (FileRiskStore persistence + risks add/assess/mitigate/close + exposure filters) | V4.5.7 (Coeffect Async + Risk Register UX CLI) | V4.5.6 (Module Fiber + Coeffect: 6-state FSM + topological activation + modules CLI) | V4.5.3 (Artifacts + Effect — ArtifactStore + DispatchEffect + EffectRegistry + Audit CLI) | V4.5.2 (Experience polish: MOKA + Metrics + GitLab + Doctor + BackendConfig) | V4.5.0 (cross-session continuity + protocol-native skills) | V4.4.0 (5 new enhancement modules: RiskRegister / ViewpointRegistry / ErrorBudgetTracker / GapAnalyzer / DoraMetricsCollector — see [CHANGELOG.md](CHANGELOG.md))*
|
|
823
|
+
|
|
824
|
+
</details>
|