devsquad 4.1.6__tar.gz → 4.3.0__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.1.6 → devsquad-4.3.0}/PKG-INFO +84 -19
- {devsquad-4.1.6 → devsquad-4.3.0}/README.md +83 -18
- {devsquad-4.1.6 → devsquad-4.3.0}/devsquad.egg-info/PKG-INFO +84 -19
- {devsquad-4.1.6 → devsquad-4.3.0}/devsquad.egg-info/SOURCES.txt +48 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/pyproject.toml +6 -1
- devsquad-4.3.0/scripts/check_async_coverage.py +392 -0
- devsquad-4.3.0/scripts/check_config_consistency.py +436 -0
- devsquad-4.3.0/scripts/check_constructor_params.py +200 -0
- devsquad-4.3.0/scripts/check_dependency_lock.py +376 -0
- devsquad-4.3.0/scripts/check_hidden_content.py +424 -0
- devsquad-4.3.0/scripts/check_test_pyramid.py +327 -0
- devsquad-4.3.0/scripts/check_test_quality.py +183 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/check_version_consistency.py +191 -11
- devsquad-4.3.0/scripts/collaboration/_version.py +1 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/cache_interface.py +75 -64
- devsquad-4.3.0/scripts/collaboration/cli_command_classifier.py +343 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/consensus.py +120 -2
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/content_cache.py +9 -1
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/coordinator.py +19 -4
- devsquad-4.3.0/scripts/collaboration/dashboard_live_mode.py +715 -0
- devsquad-4.3.0/scripts/collaboration/debt_collector.py +192 -0
- devsquad-4.3.0/scripts/collaboration/dependency_hallucination_checker.py +891 -0
- devsquad-4.3.0/scripts/collaboration/deployment_compliance_checker.py +410 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_audit.py +125 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_hooks.py +146 -1
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_steps.py +262 -57
- devsquad-4.3.0/scripts/collaboration/five_axis_consensus.py +706 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/input_validator.py +53 -1
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/judge_agent.py +1 -1
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/loop_engineering/__init__.py +3 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/loop_engineering/kernel.py +96 -6
- devsquad-4.3.0/scripts/collaboration/loop_engineering/loop_scheduler.py +119 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/loop_engineering/models.py +4 -0
- devsquad-4.3.0/scripts/collaboration/loop_engineering/rollback_strategy.py +139 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/memory_index.py +3 -2
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/memory_query.py +27 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/memory_serializer.py +1 -1
- devsquad-4.3.0/scripts/collaboration/meta_skill_layering.py +469 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/models_base.py +5 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/output_validator.py +113 -2
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/permission_guard.py +158 -80
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/plugins/hot_loader.py +7 -1
- devsquad-4.3.0/scripts/collaboration/ponytail_rule_injector.py +300 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/redis_cache.py +42 -1
- devsquad-4.3.0/scripts/collaboration/requirement_tracer.py +215 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/scratchpad.py +6 -0
- devsquad-4.3.0/scripts/collaboration/todo_drift_monitor.py +346 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/unified_gate_engine.py +126 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/dashboard/auth_views.py +1 -1
- devsquad-4.3.0/scripts/dashboard/v43_panels.py +149 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/history_manager.py +1 -1
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/qa/uiux_analyzer.py +90 -0
- devsquad-4.3.0/scripts/qa/uiux_subitems.py +123 -0
- devsquad-4.3.0/scripts/scan_pickle_payloads.py +253 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/skills/__init__.py +1 -1
- devsquad-4.3.0/skills/prototype/handler.py +535 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/skills/security/handler.py +83 -4
- devsquad-4.3.0/skills/teach/handler.py +1178 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_autonomous.py +9 -4
- devsquad-4.3.0/tests/test_cache_interface.py +490 -0
- devsquad-4.3.0/tests/test_check_async_coverage.py +270 -0
- devsquad-4.3.0/tests/test_check_config_consistency.py +358 -0
- devsquad-4.3.0/tests/test_check_constructor_params.py +188 -0
- devsquad-4.3.0/tests/test_check_dependency_lock.py +348 -0
- devsquad-4.3.0/tests/test_check_hidden_content.py +571 -0
- devsquad-4.3.0/tests/test_check_test_pyramid.py +463 -0
- devsquad-4.3.0/tests/test_check_test_quality.py +270 -0
- devsquad-4.3.0/tests/test_check_version_consistency.py +360 -0
- devsquad-4.3.0/tests/test_cli_command_classifier.py +384 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_test_quality_guard_test.py +2 -2
- devsquad-4.3.0/tests/test_consensus_dissent.py +151 -0
- devsquad-4.3.0/tests/test_consensus_fatigue.py +189 -0
- devsquad-4.3.0/tests/test_dashboard_live_mode.py +379 -0
- devsquad-4.3.0/tests/test_dashboard_v43_panels.py +298 -0
- devsquad-4.3.0/tests/test_debt_collector.py +247 -0
- devsquad-4.3.0/tests/test_dependency_hallucination_checker.py +561 -0
- devsquad-4.3.0/tests/test_deployment_compliance_checker.py +401 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_dispatch_audit.py +147 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_enhanced_worker.py +5 -3
- devsquad-4.3.0/tests/test_input_validator_sensitive.py +359 -0
- devsquad-4.3.0/tests/test_loop_engineering_rollback.py +316 -0
- devsquad-4.3.0/tests/test_meta_skill_layering.py +297 -0
- devsquad-4.3.0/tests/test_output_validator_prompt_injection.py +230 -0
- devsquad-4.3.0/tests/test_permission_guard_human_gate.py +170 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_ponytail_rule_injector.py +219 -0
- devsquad-4.3.0/tests/test_prototype_skill.py +370 -0
- devsquad-4.3.0/tests/test_requirement_tracer.py +277 -0
- devsquad-4.3.0/tests/test_teach_skill.py +663 -0
- devsquad-4.3.0/tests/test_todo_drift_monitor.py +479 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_two_stage_review_gate.py +1 -1
- devsquad-4.3.0/tests/test_uiux_subitems.py +285 -0
- devsquad-4.1.6/scripts/collaboration/_version.py +0 -1
- devsquad-4.1.6/scripts/collaboration/five_axis_consensus.py +0 -377
- devsquad-4.1.6/scripts/collaboration/loop_engineering/loop_scheduler.py +0 -62
- devsquad-4.1.6/scripts/collaboration/ponytail_rule_injector.py +0 -108
- {devsquad-4.1.6 → devsquad-4.3.0}/LICENSE +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/devsquad.egg-info/dependency_links.txt +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/devsquad.egg-info/entry_points.txt +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/devsquad.egg-info/requires.txt +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/devsquad.egg-info/top_level.txt +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/api/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/api/models.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/api/rate_limit.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/api/routes/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/api/routes/dispatch.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/api/routes/lifecycle.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/api/routes/metrics.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/api/routes/metrics_gates.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/api/security.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/api_server.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/auth.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/benchmark_async_dispatch.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/benchmark_ponytail_smart.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/benchmark_real_llm.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/check_dependency_sync.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/cli/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/cli/cli_visual.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/cli.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/cli_dispatch.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/cli_lifecycle.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/cli_utils.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/adaptive_role_selector.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/adversarial_verify.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/agent_briefing.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/ai_semantic_matcher.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/anchor_checker.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/anti_rationalization.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/async_adapter.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/async_coordinator.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/async_llm_backend.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/audit_logger.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/autonomous/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/autonomous/git_driver.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/autonomous/loop_controller.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/autonomous/notes_memory.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/autonomous/run_state.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/autonomous/sleep_guard.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/autonomous/smart_confirmation.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/batch_scheduler.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/ccr_store.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/checkpoint_manager.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/ci_feedback_adapter.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/code_graph_query.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/code_graph_storage.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/code_knowledge_graph.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/code_map_generator.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/concern_pack_loader.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/confidence_score.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/config_manager.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/consensus_gate.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/constants.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/content_crusher.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/context_compressor.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_component_factory.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_lifecycle.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_models.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_performance.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_pre_steps.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_rbac.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_result_assembler.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_services.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_steps_base.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_steps_consensus_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_steps_feedback_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_steps_mixins.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_steps_quality_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatch_steps_services_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatcher.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatcher_async_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatcher_audit_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatcher_base.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatcher_config.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatcher_error_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatcher_factory.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatcher_lifecycle_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatcher_mixins.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatcher_status_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dispatcher_utils_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/dual_layer_context.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/enhanced_worker.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/enterprise_feature.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/event_bus.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/execution_guard.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/feature_usage_tracker.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/feedback_control_loop.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/intent_workflow_mapper.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/language_parsers.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/learned_rule_store.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/lifecycle_gate.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/lifecycle_protocol.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/lifecycle_shortcut_adapter.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/lifecycle_shortcut_helpers.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/lifecycle_templates.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/llm_backend.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/llm_cache.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/llm_cache_async.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/llm_cache_base.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/llm_retry.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/llm_retry_async.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/llm_retry_base.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/loop_engineering/discovery_probe.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/loop_engineering/handoff_adapter.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/loop_engineering/independent_evaluator.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/loop_engineering/protocols.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/loop_engineering/unified_memory.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/mce_adapter.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/memory_bridge.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/memory_claw_source.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/memory_forgetting.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/memory_types.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/micro_task_planner.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/models.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/models_dispatch.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/models_lifecycle.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/multi_host_adapter.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/multi_level_cache.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/multi_tenant.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/null_providers.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/operation_classifier.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/output_slicer.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/performance_fingerprint.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/performance_monitor.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/plugins/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/prometheus_metrics.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/prompt_assembler.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/prompt_assembler_base.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/prompt_assembler_formatting_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/prompt_assembler_mixins.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/prompt_assembler_substitution_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/prompt_assembler_template_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/prompt_assembler_validation_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/prompt_dials.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/protocols.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/rbac_engine.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/redesign_auditor.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/redesign_checkers.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/report_formatter.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/retrospective.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/review_checkers.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/role_matcher.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/role_skill_loader.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/rule_collector.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/secret_patterns.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/severity_router.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/similar_task_recommender.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/skill_extractor.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/skill_registry.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/skill_storage.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/skillifier.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/standardized_role_template.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/task_completion_checker.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/tech_debt_manager.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/test_quality_guard.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/two_stage_review_gate.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/ue_test_accessibility_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/ue_test_framework.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/ue_test_framework_base.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/ue_test_heuristic_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/ue_test_journey_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/ue_test_mixins.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/ue_test_persona_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/usage_tracker.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/user_friendly_error.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/verification_gate.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/warmup_manager.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/worker.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/workflow_engine.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/workflow_engine_base.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/workflow_engine_lifecycle_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/workflow_engine_mixins.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/workflow_engine_persistence_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/workflow_engine_state_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/workflow_engine_transition_mixin.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/collaboration/yagni_checker.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/dashboard/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/dashboard/app.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/dashboard/components.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/dashboard/dag_views.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/dashboard/dispatch_views.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/dashboard/i18n.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/dashboard/lifecycle_views.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/dashboard/metrics_views.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/dashboard/state.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/dashboard.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/generate_benchmark_report.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/mcp_server.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/qa/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/qa/deterministic_rule_engine.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/qa/models.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/qa/taste_dials.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/qa/visual_regression.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/utils/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/scripts/utils/_find_missing_hints.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/setup.cfg +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/skills/_version.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/skills/dispatch/handler.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/skills/intent/handler.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/skills/registry.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/skills/retrospective/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/skills/retrospective/handler.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/skills/review/handler.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/skills/test/__init__.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/skills/test/handler.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_4pt_grid.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_adaptive_role_selector.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_adversarial_verify.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_agent_briefing.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_anchor_retrospective.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_anti_rationalization.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_antipattern_bans.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_api_budget_status_endpoint.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_api_security.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_api_server_v362.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_async_coordinator.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_async_modules.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_audit_logger.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_auth_phase5.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_benchmark_ponytail_smart.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_ccr_store.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_ci_feedback_adapter.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_cli_deep_v362.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_cli_lifecycle.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_cli_phase5.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_code_knowledge_graph.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_claw_integration_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_context_compressor_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_core_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_dispatcher_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_dispatcher_ux_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_e2e_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_enhanced_e2e_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_llm_cache_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_llm_retry_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_mce_adapter_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_memory_bridge_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_performance_monitor_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_permission_guard_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_prompt_optimization_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_role_mapping_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_skillifier_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_test_quality_guard.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_upstream_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_collaboration_warmup_manager_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_confidence_score.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_config_injection.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_consensus_gate.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_content_cache.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_content_crusher.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_coordinator_smart_compression.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_dag_views.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_dashboard_split.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_dashboard_ui_e2e.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_data_backup.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_deep_shallow.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_deletion_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_dependency_lock.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_deterministic_rule_engine.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_dispatch_performance.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_dispatch_rbac.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_dispatch_steps.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_dispatcher_mixins.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_dispatcher_phase5_core.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_docker_deployment.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_dual_layer_context.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_feedback_control_loop.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_five_axis_consensus.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_flow_standalone.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_full_lifecycle_adapter.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_git_guardrails.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_glossary_loader.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_grilling_mode.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_handoff_redaction.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_history_manager_v362.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_input_validator_phase5.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_intent_workflow_mapper.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_judge_agent.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_learned_rule_phase4.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_lifecycle_protocol.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_llm_auto_fallback.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_llm_cache_protocol.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_loop_engineering.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_mcp_server_v362.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_memory_benchmarks.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_micro_task_planner.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_multi_host_adapter.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_multi_tenant.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_multi_tenant_isolation_e2e.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_no_op_test.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_node_type_separation.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_null_providers.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_oklch_color.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_operation_classifier.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_output_slicer.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_performance_benchmarks.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_performance_fingerprint.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_performance_monitor_protocol.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_permission_guard_phase5.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_phase4_ghost_feature_defense.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_pipeline_step19_20.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_plan_c_unified_architecture.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_plugins_hot_loader.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_production_features.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_prometheus_metrics.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_prompt_dials.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_protocols.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_qa_uiux_visual_regression.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_quick_bonus.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_rate_limit.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_rbac_engine.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_rbac_fail_closed.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_red_capable_gate.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_redesign_auditor.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_redis_cache.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_retry_jitter_strategies.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_role_skill_loader.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_rule_collector.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_rule_injection_security.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_secret_patterns.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_severity_router.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_similar_task_recommender.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_skill_registry_coverage.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_skill_security.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_sleep_guard.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_standardized_role_template.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_start_script.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_step_node_types.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_suggested_next_steps.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_task_completion_checker.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_taste_dials.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_tautological_seams.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_tech_debt_manager.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_token_budget_compressed_scratchpad.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_triage_label.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_ue_test_framework.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_usage_tracker_coverage.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_v39_e2e.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_v39_performance.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_v411_security_hardening.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_verification_gate.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_version.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_vertical_slice.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_workflow_engine.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_workflow_engine_base.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_workflow_engine_lifecycle.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_workflow_engine_state.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_workflow_engine_transition.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_workflow_persistence_coverage.py +0 -0
- {devsquad-4.1.6 → devsquad-4.3.0}/tests/test_yagni_checker.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devsquad
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.3.0
|
|
4
4
|
Summary: Production-Ready Multi-Role AI Task Orchestrator
|
|
5
5
|
Author-email: DevSquad Team <devsquad@example.com>
|
|
6
6
|
License: MIT
|
|
@@ -96,14 +96,14 @@ Dynamic: license-file
|
|
|
96
96
|
<p align="center">
|
|
97
97
|
<strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
|
|
98
98
|
<br>
|
|
99
|
-
<em>One task → Multi-role AI collaboration → One conclusion | V4.
|
|
99
|
+
<em>One task → Multi-role AI collaboration → One conclusion | V4.3.0 Pre-release (V4.3.0 candidate — pending user approval)</em>
|
|
100
100
|
</p>
|
|
101
101
|
|
|
102
102
|
<p align="center">
|
|
103
103
|
<img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
|
|
104
104
|
<img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
|
|
105
|
-
<img alt="Tests" src="https://img.shields.io/badge/Tests-
|
|
106
|
-
<img alt="Version" src="https://img.shields.io/badge/V4.
|
|
105
|
+
<img alt="Tests" src="https://img.shields.io/badge/Tests-7681%20passing-brightgreen" />
|
|
106
|
+
<img alt="Version" src="https://img.shields.io/badge/V4.3.0-success" />
|
|
107
107
|
<img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
|
|
108
108
|
<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" />
|
|
109
109
|
<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" />
|
|
@@ -164,17 +164,45 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
164
164
|
<details>
|
|
165
165
|
<summary>🔍 点击展开:完整功能介绍与架构详解</summary>
|
|
166
166
|
|
|
167
|
-
## 🚀 V4.
|
|
167
|
+
## 🚀 V4.3.0 (V4.3.0 candidate): 安全债清理 + 上游精细化升级 + 测试金字塔达标
|
|
168
168
|
|
|
169
|
-
**DevSquad V4.
|
|
170
|
-
- **P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
171
|
-
- **P1-2 UI/UX 巡检**: 4 维度审计(a11y/interaction/layout/ux)+ PIL 像素 diff 视觉回归
|
|
172
|
-
- **P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁三阶段对抗验证
|
|
173
|
-
- **P2-2 DAG 可视化**: Mermaid / JSON / DOT 三种格式依赖图可视化
|
|
174
|
-
- **P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代,复用 LoopKernel,不绕过共识门
|
|
175
|
-
- **P3-2 插件热加载**: 三种加载路径 + 路径穿越三层防护 + reload 回滚 + 审计日志
|
|
169
|
+
**DevSquad V4.3.0** 是 V4.3.0 的预发布候选版本,整合技术债跟踪、pickle→JSON 迁移、上游 TraeMultiAgentSkill v2.6-v2.8 精细化启发三方面输入,按 7-Role 共识推进:
|
|
176
170
|
|
|
177
|
-
|
|
171
|
+
### V4.3.0 P0 — 安全债清理(必做)
|
|
172
|
+
- **P0-1 pickle→JSON 迁移阶段 1**: 删除 2 处 dead code + fallback 安全收紧(`require_password` 校验)
|
|
173
|
+
- **P0-2 技术债持续监控**: `todo_drift_monitor.py` 自动扫描 TODO/FIXME/HACK + pre-commit 阻塞 + CI lint 集成
|
|
174
|
+
|
|
175
|
+
### V4.3.0 P1 — 上游精细化升级(重要)
|
|
176
|
+
- **P1-1 Ponytail lite/full 双模式**: 8 核心红线(lite)+ 16 红线(full),`# ponytail:` 债务收集 + `[REQ-XXX]` 需求追踪
|
|
177
|
+
- **P1-4 LoopKernel RollbackStrategy**: D1-D6 失败精准回退 + 独立硬上限(默认 3)+ 累计上下文传递
|
|
178
|
+
- **P1-5 UIUX 子项审计**: 4 维度 20 子项注册表 + PASS/WARN/FAIL/NOT_IMPLEMENTED 审计
|
|
179
|
+
- **P1-6 Dashboard V4.3.0 面板**: Ponytail 模式 / Loop 回退 / Plugin 事件 / 技术债状态可视化
|
|
180
|
+
|
|
181
|
+
### V4.3.0 P2 — 收尾(一般)
|
|
182
|
+
- **P2-1 pickle fallback 完全移除**(用户确认从 V4.3.1 并入 V4.3.0): `allow_pickle_fallback` 参数移除,`serialization_format="pickle"` 构造时拒绝
|
|
183
|
+
|
|
184
|
+
### V4.2+ / V4.3+ Roadmap 已落地项
|
|
185
|
+
- **P2-1 PrototypeSkill**: 快速原型生成验证假设
|
|
186
|
+
- **P2-2 TeachSkill**: 8 主题新用户引导课程
|
|
187
|
+
- **P2-4 pre-commit hooks**: 依赖版本锁检查
|
|
188
|
+
- **P2-UI-1 CLI 命令词表**: 基于 impeccable 23 命令词表对齐
|
|
189
|
+
- **P2-UI-2 Live Browser 模式**: 实时 UI 审查迭代闭环
|
|
190
|
+
- **P2-UI-3 Meta-skills 分层**: 8 子技能 6 层架构
|
|
191
|
+
|
|
192
|
+
### 测试金字塔达标
|
|
193
|
+
- **Contract 测试**: 3.06% → 5.0%(目标 ≥5% ✅)
|
|
194
|
+
- **Integration 测试**: 8.84% → 15.2%(目标 ≥15% ✅)
|
|
195
|
+
- **总测试数**: 5250+ → 7681(+2431 测试)
|
|
196
|
+
|
|
197
|
+
### 历史特性(V4.0.0-V4.2.1)
|
|
198
|
+
- **V4.0.0 P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
199
|
+
- **V4.0.0 P1-2 UI/UX 巡检**: 4 维度审计 + PIL 像素 diff 视觉回归
|
|
200
|
+
- **V4.0.0 P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁
|
|
201
|
+
- **V4.0.0 P2-2 DAG 可视化**: Mermaid / JSON / DOT 三格式
|
|
202
|
+
- **V4.0.0 P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代
|
|
203
|
+
- **V4.0.0 P3-2 插件热加载**: 3 加载路径 + 路径穿越三层防护 + reload 回滚
|
|
204
|
+
|
|
205
|
+
7681 tests passing。
|
|
178
206
|
|
|
179
207
|
---
|
|
180
208
|
|
|
@@ -266,7 +294,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
266
294
|
|
|
267
295
|
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
268
296
|
|
|
269
|
-
DevSquad's
|
|
297
|
+
DevSquad's 235 modules are organized into **5 capability domains**, each solving a specific problem:
|
|
270
298
|
|
|
271
299
|
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
272
300
|
|
|
@@ -558,11 +586,11 @@ devsquad dispatch -t "Design user authentication system"
|
|
|
558
586
|
```bash
|
|
559
587
|
# Check version
|
|
560
588
|
devsquad --version
|
|
561
|
-
# Expected: devsquad 4.
|
|
589
|
+
# Expected: devsquad 4.3.0
|
|
562
590
|
|
|
563
591
|
# Run tests
|
|
564
592
|
pytest tests/ -v --tb=short
|
|
565
|
-
# Expected:
|
|
593
|
+
# Expected: 7681 passed
|
|
566
594
|
```
|
|
567
595
|
|
|
568
596
|
---
|
|
@@ -620,7 +648,7 @@ python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
|
620
648
|
|
|
621
649
|
### Full Test Suite
|
|
622
650
|
```bash
|
|
623
|
-
# Run all tests (
|
|
651
|
+
# Run all tests (7681 tests passing)
|
|
624
652
|
python3 -m pytest tests/ -q --tb=line
|
|
625
653
|
|
|
626
654
|
# With coverage report
|
|
@@ -637,7 +665,7 @@ python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
|
637
665
|
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
638
666
|
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
639
667
|
|
|
640
|
-
**Total:
|
|
668
|
+
**Total: 7681 CI tests / 266 e2e (7681 collected)**
|
|
641
669
|
|
|
642
670
|
Run by priority:
|
|
643
671
|
```bash
|
|
@@ -667,6 +695,43 @@ python3 -m pytest tests/ -q --tb=line
|
|
|
667
695
|
| [README-JP.md](README-JP.md) | 日本語説明 | 日本語 |
|
|
668
696
|
| [docs/PRD.md](docs/PRD.md) | 产品需求文档 | 中文 |
|
|
669
697
|
| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 技术架构文档 | 中文 |
|
|
698
|
+
| [docs/planning/V43_ROADMAP_PROPOSAL.md](docs/planning/V43_ROADMAP_PROPOSAL.md) | V4.3 统一推进方案 v1.2(7-Role 共识达成) | 中文 |
|
|
699
|
+
| [docs/prd/V4.3.0_PRD.md](docs/prd/V4.3.0_PRD.md) | V4.3.0 PRD(需求/用户故事/验收标准) | 中文 |
|
|
700
|
+
| [docs/architecture/V4.3.0_ARCHITECTURE.md](docs/architecture/V4.3.0_ARCHITECTURE.md) | V4.3.0 架构设计(模块边界/接口契约/依赖图) | 中文 |
|
|
701
|
+
| [docs/testing/V4.3.0_TEST_PLAN.md](docs/testing/V4.3.0_TEST_PLAN.md) | V4.3.0 测试方案(测试金字塔/E2E/真实用户模拟) | 中文 |
|
|
702
|
+
|
|
703
|
+
---
|
|
704
|
+
|
|
705
|
+
## 🗺️ Roadmap
|
|
706
|
+
|
|
707
|
+
### V4.3.0(进行中 — 7-Role 共识达成,文档先行)
|
|
708
|
+
|
|
709
|
+
**版本策略**: V4.3.0 预发布(全部代码+文档+E2E 验证)→ 用户确认 → V4.3.0 正式版
|
|
710
|
+
|
|
711
|
+
**整合三方面输入**:
|
|
712
|
+
1. 技术债持续治理(`todo_drift_monitor` + CI 阻塞)
|
|
713
|
+
2. pickle→JSON 迁移(dead code 删除 + fallback 安全收紧 + 移除)
|
|
714
|
+
3. 上游 TraeMultiAgentSkill v2.6-v2.8 精细化启发(Ponytail 双模式 / LoopKernel 回退 / UIUX 审计 / Dashboard 可视化)
|
|
715
|
+
|
|
716
|
+
**V4.3.0 范围(9 项)**:
|
|
717
|
+
|
|
718
|
+
| ID | 名称 | 优先级 |
|
|
719
|
+
|----|------|--------|
|
|
720
|
+
| P0-1 | pickle dead code 删除 + fallback 安全收紧 | P0 |
|
|
721
|
+
| P0-2 | `todo_drift_monitor.py` + CI 阻塞 + PR template | P0 |
|
|
722
|
+
| P1-1 | Ponytail lite/full 双模式 + DebtCollector + RequirementTracer | P1 |
|
|
723
|
+
| P1-4 | LoopKernel RollbackStrategy + 独立硬上限 | P1 |
|
|
724
|
+
| P1-5 | UIUXAnalyzer 子项审计 + 按需补全 | P1 |
|
|
725
|
+
| P1-6 | Dashboard 状态可视化 | P1 |
|
|
726
|
+
| P2-1 | pickle fallback 移除 | P2 |
|
|
727
|
+
| P2-2 | Autonomous SmartConfirmation 文档补全 | P2 |
|
|
728
|
+
| P2-4 | V4.3.0 发布文档同步 | P2 |
|
|
729
|
+
|
|
730
|
+
**7-Role 共识**: 7/7 APPROVE_WITH_CONCERNS,按 10 项调整修订后达成共识。详见 [V43_ROADMAP_PROPOSAL.md](docs/planning/V43_ROADMAP_PROPOSAL.md) v1.2。
|
|
731
|
+
|
|
732
|
+
**项目生命周期**: 按 11-Phase 模型推进(P1 需求 → P2 架构 → P3 技术设计 → P7 测试计划 → P8 实施 → P9 测试执行 → P10 部署发布)
|
|
733
|
+
|
|
734
|
+
**测试金字塔保障**: unit ≥60% / integration 15-25% / e2e ≤10% / contract 5-10% / smoke ≤5%
|
|
670
735
|
|
|
671
736
|
---
|
|
672
737
|
|
|
@@ -701,6 +766,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
701
766
|
|
|
702
767
|
---
|
|
703
768
|
|
|
704
|
-
*Last updated: 2026-07-
|
|
769
|
+
*Last updated: 2026-07-24 | Version: V4.2.1 (V4.3.0 in progress — see [Roadmap](#-roadmap))*
|
|
705
770
|
|
|
706
771
|
</details>
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
<p align="center">
|
|
4
4
|
<strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
|
|
5
5
|
<br>
|
|
6
|
-
<em>One task → Multi-role AI collaboration → One conclusion | V4.
|
|
6
|
+
<em>One task → Multi-role AI collaboration → One conclusion | V4.3.0 Pre-release (V4.3.0 candidate — pending user approval)</em>
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
|
|
11
11
|
<img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
|
|
12
|
-
<img alt="Tests" src="https://img.shields.io/badge/Tests-
|
|
13
|
-
<img alt="Version" src="https://img.shields.io/badge/V4.
|
|
12
|
+
<img alt="Tests" src="https://img.shields.io/badge/Tests-7681%20passing-brightgreen" />
|
|
13
|
+
<img alt="Version" src="https://img.shields.io/badge/V4.3.0-success" />
|
|
14
14
|
<img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
|
|
15
15
|
<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" />
|
|
16
16
|
<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" />
|
|
@@ -71,17 +71,45 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
71
71
|
<details>
|
|
72
72
|
<summary>🔍 点击展开:完整功能介绍与架构详解</summary>
|
|
73
73
|
|
|
74
|
-
## 🚀 V4.
|
|
74
|
+
## 🚀 V4.3.0 (V4.3.0 candidate): 安全债清理 + 上游精细化升级 + 测试金字塔达标
|
|
75
75
|
|
|
76
|
-
**DevSquad V4.
|
|
77
|
-
- **P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
78
|
-
- **P1-2 UI/UX 巡检**: 4 维度审计(a11y/interaction/layout/ux)+ PIL 像素 diff 视觉回归
|
|
79
|
-
- **P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁三阶段对抗验证
|
|
80
|
-
- **P2-2 DAG 可视化**: Mermaid / JSON / DOT 三种格式依赖图可视化
|
|
81
|
-
- **P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代,复用 LoopKernel,不绕过共识门
|
|
82
|
-
- **P3-2 插件热加载**: 三种加载路径 + 路径穿越三层防护 + reload 回滚 + 审计日志
|
|
76
|
+
**DevSquad V4.3.0** 是 V4.3.0 的预发布候选版本,整合技术债跟踪、pickle→JSON 迁移、上游 TraeMultiAgentSkill v2.6-v2.8 精细化启发三方面输入,按 7-Role 共识推进:
|
|
83
77
|
|
|
84
|
-
|
|
78
|
+
### V4.3.0 P0 — 安全债清理(必做)
|
|
79
|
+
- **P0-1 pickle→JSON 迁移阶段 1**: 删除 2 处 dead code + fallback 安全收紧(`require_password` 校验)
|
|
80
|
+
- **P0-2 技术债持续监控**: `todo_drift_monitor.py` 自动扫描 TODO/FIXME/HACK + pre-commit 阻塞 + CI lint 集成
|
|
81
|
+
|
|
82
|
+
### V4.3.0 P1 — 上游精细化升级(重要)
|
|
83
|
+
- **P1-1 Ponytail lite/full 双模式**: 8 核心红线(lite)+ 16 红线(full),`# ponytail:` 债务收集 + `[REQ-XXX]` 需求追踪
|
|
84
|
+
- **P1-4 LoopKernel RollbackStrategy**: D1-D6 失败精准回退 + 独立硬上限(默认 3)+ 累计上下文传递
|
|
85
|
+
- **P1-5 UIUX 子项审计**: 4 维度 20 子项注册表 + PASS/WARN/FAIL/NOT_IMPLEMENTED 审计
|
|
86
|
+
- **P1-6 Dashboard V4.3.0 面板**: Ponytail 模式 / Loop 回退 / Plugin 事件 / 技术债状态可视化
|
|
87
|
+
|
|
88
|
+
### V4.3.0 P2 — 收尾(一般)
|
|
89
|
+
- **P2-1 pickle fallback 完全移除**(用户确认从 V4.3.1 并入 V4.3.0): `allow_pickle_fallback` 参数移除,`serialization_format="pickle"` 构造时拒绝
|
|
90
|
+
|
|
91
|
+
### V4.2+ / V4.3+ Roadmap 已落地项
|
|
92
|
+
- **P2-1 PrototypeSkill**: 快速原型生成验证假设
|
|
93
|
+
- **P2-2 TeachSkill**: 8 主题新用户引导课程
|
|
94
|
+
- **P2-4 pre-commit hooks**: 依赖版本锁检查
|
|
95
|
+
- **P2-UI-1 CLI 命令词表**: 基于 impeccable 23 命令词表对齐
|
|
96
|
+
- **P2-UI-2 Live Browser 模式**: 实时 UI 审查迭代闭环
|
|
97
|
+
- **P2-UI-3 Meta-skills 分层**: 8 子技能 6 层架构
|
|
98
|
+
|
|
99
|
+
### 测试金字塔达标
|
|
100
|
+
- **Contract 测试**: 3.06% → 5.0%(目标 ≥5% ✅)
|
|
101
|
+
- **Integration 测试**: 8.84% → 15.2%(目标 ≥15% ✅)
|
|
102
|
+
- **总测试数**: 5250+ → 7681(+2431 测试)
|
|
103
|
+
|
|
104
|
+
### 历史特性(V4.0.0-V4.2.1)
|
|
105
|
+
- **V4.0.0 P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
106
|
+
- **V4.0.0 P1-2 UI/UX 巡检**: 4 维度审计 + PIL 像素 diff 视觉回归
|
|
107
|
+
- **V4.0.0 P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁
|
|
108
|
+
- **V4.0.0 P2-2 DAG 可视化**: Mermaid / JSON / DOT 三格式
|
|
109
|
+
- **V4.0.0 P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代
|
|
110
|
+
- **V4.0.0 P3-2 插件热加载**: 3 加载路径 + 路径穿越三层防护 + reload 回滚
|
|
111
|
+
|
|
112
|
+
7681 tests passing。
|
|
85
113
|
|
|
86
114
|
---
|
|
87
115
|
|
|
@@ -173,7 +201,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
173
201
|
|
|
174
202
|
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
175
203
|
|
|
176
|
-
DevSquad's
|
|
204
|
+
DevSquad's 235 modules are organized into **5 capability domains**, each solving a specific problem:
|
|
177
205
|
|
|
178
206
|
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
179
207
|
|
|
@@ -465,11 +493,11 @@ devsquad dispatch -t "Design user authentication system"
|
|
|
465
493
|
```bash
|
|
466
494
|
# Check version
|
|
467
495
|
devsquad --version
|
|
468
|
-
# Expected: devsquad 4.
|
|
496
|
+
# Expected: devsquad 4.3.0
|
|
469
497
|
|
|
470
498
|
# Run tests
|
|
471
499
|
pytest tests/ -v --tb=short
|
|
472
|
-
# Expected:
|
|
500
|
+
# Expected: 7681 passed
|
|
473
501
|
```
|
|
474
502
|
|
|
475
503
|
---
|
|
@@ -527,7 +555,7 @@ python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
|
527
555
|
|
|
528
556
|
### Full Test Suite
|
|
529
557
|
```bash
|
|
530
|
-
# Run all tests (
|
|
558
|
+
# Run all tests (7681 tests passing)
|
|
531
559
|
python3 -m pytest tests/ -q --tb=line
|
|
532
560
|
|
|
533
561
|
# With coverage report
|
|
@@ -544,7 +572,7 @@ python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
|
544
572
|
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
545
573
|
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
546
574
|
|
|
547
|
-
**Total:
|
|
575
|
+
**Total: 7681 CI tests / 266 e2e (7681 collected)**
|
|
548
576
|
|
|
549
577
|
Run by priority:
|
|
550
578
|
```bash
|
|
@@ -574,6 +602,43 @@ python3 -m pytest tests/ -q --tb=line
|
|
|
574
602
|
| [README-JP.md](README-JP.md) | 日本語説明 | 日本語 |
|
|
575
603
|
| [docs/PRD.md](docs/PRD.md) | 产品需求文档 | 中文 |
|
|
576
604
|
| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 技术架构文档 | 中文 |
|
|
605
|
+
| [docs/planning/V43_ROADMAP_PROPOSAL.md](docs/planning/V43_ROADMAP_PROPOSAL.md) | V4.3 统一推进方案 v1.2(7-Role 共识达成) | 中文 |
|
|
606
|
+
| [docs/prd/V4.3.0_PRD.md](docs/prd/V4.3.0_PRD.md) | V4.3.0 PRD(需求/用户故事/验收标准) | 中文 |
|
|
607
|
+
| [docs/architecture/V4.3.0_ARCHITECTURE.md](docs/architecture/V4.3.0_ARCHITECTURE.md) | V4.3.0 架构设计(模块边界/接口契约/依赖图) | 中文 |
|
|
608
|
+
| [docs/testing/V4.3.0_TEST_PLAN.md](docs/testing/V4.3.0_TEST_PLAN.md) | V4.3.0 测试方案(测试金字塔/E2E/真实用户模拟) | 中文 |
|
|
609
|
+
|
|
610
|
+
---
|
|
611
|
+
|
|
612
|
+
## 🗺️ Roadmap
|
|
613
|
+
|
|
614
|
+
### V4.3.0(进行中 — 7-Role 共识达成,文档先行)
|
|
615
|
+
|
|
616
|
+
**版本策略**: V4.3.0 预发布(全部代码+文档+E2E 验证)→ 用户确认 → V4.3.0 正式版
|
|
617
|
+
|
|
618
|
+
**整合三方面输入**:
|
|
619
|
+
1. 技术债持续治理(`todo_drift_monitor` + CI 阻塞)
|
|
620
|
+
2. pickle→JSON 迁移(dead code 删除 + fallback 安全收紧 + 移除)
|
|
621
|
+
3. 上游 TraeMultiAgentSkill v2.6-v2.8 精细化启发(Ponytail 双模式 / LoopKernel 回退 / UIUX 审计 / Dashboard 可视化)
|
|
622
|
+
|
|
623
|
+
**V4.3.0 范围(9 项)**:
|
|
624
|
+
|
|
625
|
+
| ID | 名称 | 优先级 |
|
|
626
|
+
|----|------|--------|
|
|
627
|
+
| P0-1 | pickle dead code 删除 + fallback 安全收紧 | P0 |
|
|
628
|
+
| P0-2 | `todo_drift_monitor.py` + CI 阻塞 + PR template | P0 |
|
|
629
|
+
| P1-1 | Ponytail lite/full 双模式 + DebtCollector + RequirementTracer | P1 |
|
|
630
|
+
| P1-4 | LoopKernel RollbackStrategy + 独立硬上限 | P1 |
|
|
631
|
+
| P1-5 | UIUXAnalyzer 子项审计 + 按需补全 | P1 |
|
|
632
|
+
| P1-6 | Dashboard 状态可视化 | P1 |
|
|
633
|
+
| P2-1 | pickle fallback 移除 | P2 |
|
|
634
|
+
| P2-2 | Autonomous SmartConfirmation 文档补全 | P2 |
|
|
635
|
+
| P2-4 | V4.3.0 发布文档同步 | P2 |
|
|
636
|
+
|
|
637
|
+
**7-Role 共识**: 7/7 APPROVE_WITH_CONCERNS,按 10 项调整修订后达成共识。详见 [V43_ROADMAP_PROPOSAL.md](docs/planning/V43_ROADMAP_PROPOSAL.md) v1.2。
|
|
638
|
+
|
|
639
|
+
**项目生命周期**: 按 11-Phase 模型推进(P1 需求 → P2 架构 → P3 技术设计 → P7 测试计划 → P8 实施 → P9 测试执行 → P10 部署发布)
|
|
640
|
+
|
|
641
|
+
**测试金字塔保障**: unit ≥60% / integration 15-25% / e2e ≤10% / contract 5-10% / smoke ≤5%
|
|
577
642
|
|
|
578
643
|
---
|
|
579
644
|
|
|
@@ -608,6 +673,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
608
673
|
|
|
609
674
|
---
|
|
610
675
|
|
|
611
|
-
*Last updated: 2026-07-
|
|
676
|
+
*Last updated: 2026-07-24 | Version: V4.2.1 (V4.3.0 in progress — see [Roadmap](#-roadmap))*
|
|
612
677
|
|
|
613
678
|
</details>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devsquad
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.3.0
|
|
4
4
|
Summary: Production-Ready Multi-Role AI Task Orchestrator
|
|
5
5
|
Author-email: DevSquad Team <devsquad@example.com>
|
|
6
6
|
License: MIT
|
|
@@ -96,14 +96,14 @@ Dynamic: license-file
|
|
|
96
96
|
<p align="center">
|
|
97
97
|
<strong>🎯 把「单个 AI 助手」升级成「7 人 AI 专业团队」</strong>
|
|
98
98
|
<br>
|
|
99
|
-
<em>One task → Multi-role AI collaboration → One conclusion | V4.
|
|
99
|
+
<em>One task → Multi-role AI collaboration → One conclusion | V4.3.0 Pre-release (V4.3.0 candidate — pending user approval)</em>
|
|
100
100
|
</p>
|
|
101
101
|
|
|
102
102
|
<p align="center">
|
|
103
103
|
<img alt="Python" src="https://img.shields.io/badge/Python-3.10+-blue?logo=python&logoColor=white" />
|
|
104
104
|
<img alt="License" src="https://img.shields.io/badge/License-MIT-green" />
|
|
105
|
-
<img alt="Tests" src="https://img.shields.io/badge/Tests-
|
|
106
|
-
<img alt="Version" src="https://img.shields.io/badge/V4.
|
|
105
|
+
<img alt="Tests" src="https://img.shields.io/badge/Tests-7681%20passing-brightgreen" />
|
|
106
|
+
<img alt="Version" src="https://img.shields.io/badge/V4.3.0-success" />
|
|
107
107
|
<img alt="CI" src="https://img.shields.io/badge/CI-GitHub_Actions-blue?logo=githubactions" />
|
|
108
108
|
<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" />
|
|
109
109
|
<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" />
|
|
@@ -164,17 +164,45 @@ devsquad run "设计一个安全的用户认证系统" --roles architect,securit
|
|
|
164
164
|
<details>
|
|
165
165
|
<summary>🔍 点击展开:完整功能介绍与架构详解</summary>
|
|
166
166
|
|
|
167
|
-
## 🚀 V4.
|
|
167
|
+
## 🚀 V4.3.0 (V4.3.0 candidate): 安全债清理 + 上游精细化升级 + 测试金字塔达标
|
|
168
168
|
|
|
169
|
-
**DevSquad V4.
|
|
170
|
-
- **P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
171
|
-
- **P1-2 UI/UX 巡检**: 4 维度审计(a11y/interaction/layout/ux)+ PIL 像素 diff 视觉回归
|
|
172
|
-
- **P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁三阶段对抗验证
|
|
173
|
-
- **P2-2 DAG 可视化**: Mermaid / JSON / DOT 三种格式依赖图可视化
|
|
174
|
-
- **P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代,复用 LoopKernel,不绕过共识门
|
|
175
|
-
- **P3-2 插件热加载**: 三种加载路径 + 路径穿越三层防护 + reload 回滚 + 审计日志
|
|
169
|
+
**DevSquad V4.3.0** 是 V4.3.0 的预发布候选版本,整合技术债跟踪、pickle→JSON 迁移、上游 TraeMultiAgentSkill v2.6-v2.8 精细化启发三方面输入,按 7-Role 共识推进:
|
|
176
170
|
|
|
177
|
-
|
|
171
|
+
### V4.3.0 P0 — 安全债清理(必做)
|
|
172
|
+
- **P0-1 pickle→JSON 迁移阶段 1**: 删除 2 处 dead code + fallback 安全收紧(`require_password` 校验)
|
|
173
|
+
- **P0-2 技术债持续监控**: `todo_drift_monitor.py` 自动扫描 TODO/FIXME/HACK + pre-commit 阻塞 + CI lint 集成
|
|
174
|
+
|
|
175
|
+
### V4.3.0 P1 — 上游精细化升级(重要)
|
|
176
|
+
- **P1-1 Ponytail lite/full 双模式**: 8 核心红线(lite)+ 16 红线(full),`# ponytail:` 债务收集 + `[REQ-XXX]` 需求追踪
|
|
177
|
+
- **P1-4 LoopKernel RollbackStrategy**: D1-D6 失败精准回退 + 独立硬上限(默认 3)+ 累计上下文传递
|
|
178
|
+
- **P1-5 UIUX 子项审计**: 4 维度 20 子项注册表 + PASS/WARN/FAIL/NOT_IMPLEMENTED 审计
|
|
179
|
+
- **P1-6 Dashboard V4.3.0 面板**: Ponytail 模式 / Loop 回退 / Plugin 事件 / 技术债状态可视化
|
|
180
|
+
|
|
181
|
+
### V4.3.0 P2 — 收尾(一般)
|
|
182
|
+
- **P2-1 pickle fallback 完全移除**(用户确认从 V4.3.1 并入 V4.3.0): `allow_pickle_fallback` 参数移除,`serialization_format="pickle"` 构造时拒绝
|
|
183
|
+
|
|
184
|
+
### V4.2+ / V4.3+ Roadmap 已落地项
|
|
185
|
+
- **P2-1 PrototypeSkill**: 快速原型生成验证假设
|
|
186
|
+
- **P2-2 TeachSkill**: 8 主题新用户引导课程
|
|
187
|
+
- **P2-4 pre-commit hooks**: 依赖版本锁检查
|
|
188
|
+
- **P2-UI-1 CLI 命令词表**: 基于 impeccable 23 命令词表对齐
|
|
189
|
+
- **P2-UI-2 Live Browser 模式**: 实时 UI 审查迭代闭环
|
|
190
|
+
- **P2-UI-3 Meta-skills 分层**: 8 子技能 6 层架构
|
|
191
|
+
|
|
192
|
+
### 测试金字塔达标
|
|
193
|
+
- **Contract 测试**: 3.06% → 5.0%(目标 ≥5% ✅)
|
|
194
|
+
- **Integration 测试**: 8.84% → 15.2%(目标 ≥15% ✅)
|
|
195
|
+
- **总测试数**: 5250+ → 7681(+2431 测试)
|
|
196
|
+
|
|
197
|
+
### 历史特性(V4.0.0-V4.2.1)
|
|
198
|
+
- **V4.0.0 P1-1 Loop Engineering**: Discovery → Handoff → Verification → Persistence → Scheduling 五步闭环
|
|
199
|
+
- **V4.0.0 P1-2 UI/UX 巡检**: 4 维度审计 + PIL 像素 diff 视觉回归
|
|
200
|
+
- **V4.0.0 P2-1 Adversarial 验证**: 红队攻击 + 蓝队防御 + 裁判仲裁
|
|
201
|
+
- **V4.0.0 P2-2 DAG 可视化**: Mermaid / JSON / DOT 三格式
|
|
202
|
+
- **V4.0.0 P3-1 Autonomous**: plan → dev → verify → fix 4 阶段自主迭代
|
|
203
|
+
- **V4.0.0 P3-2 插件热加载**: 3 加载路径 + 路径穿越三层防护 + reload 回滚
|
|
204
|
+
|
|
205
|
+
7681 tests passing。
|
|
178
206
|
|
|
179
207
|
---
|
|
180
208
|
|
|
@@ -266,7 +294,7 @@ DEVSQUAD_API_PORT=9000 ./scripts/start.sh
|
|
|
266
294
|
|
|
267
295
|
## 🏗️ Five Capability Domains (Architecture Overview)
|
|
268
296
|
|
|
269
|
-
DevSquad's
|
|
297
|
+
DevSquad's 235 modules are organized into **5 capability domains**, each solving a specific problem:
|
|
270
298
|
|
|
271
299
|
### 🎯 Domain 1: Task Orchestration Engine (Core)
|
|
272
300
|
|
|
@@ -558,11 +586,11 @@ devsquad dispatch -t "Design user authentication system"
|
|
|
558
586
|
```bash
|
|
559
587
|
# Check version
|
|
560
588
|
devsquad --version
|
|
561
|
-
# Expected: devsquad 4.
|
|
589
|
+
# Expected: devsquad 4.3.0
|
|
562
590
|
|
|
563
591
|
# Run tests
|
|
564
592
|
pytest tests/ -v --tb=short
|
|
565
|
-
# Expected:
|
|
593
|
+
# Expected: 7681 passed
|
|
566
594
|
```
|
|
567
595
|
|
|
568
596
|
---
|
|
@@ -620,7 +648,7 @@ python3 scripts/cli.py roles # Expected: 7 core roles listed
|
|
|
620
648
|
|
|
621
649
|
### Full Test Suite
|
|
622
650
|
```bash
|
|
623
|
-
# Run all tests (
|
|
651
|
+
# Run all tests (7681 tests passing)
|
|
624
652
|
python3 -m pytest tests/ -q --tb=line
|
|
625
653
|
|
|
626
654
|
# With coverage report
|
|
@@ -637,7 +665,7 @@ python3 -m pytest tests/ --cov=scripts --cov-report=term-missing
|
|
|
637
665
|
| **P2** | Integration & E2E | Full lifecycle dispatch, cross-module integration | ~200 |
|
|
638
666
|
| **P3** | Unit per Module | Core dispatcher, RoleMapping, MCEAdapter, LLM backends | ~400+ |
|
|
639
667
|
|
|
640
|
-
**Total:
|
|
668
|
+
**Total: 7681 CI tests / 266 e2e (7681 collected)**
|
|
641
669
|
|
|
642
670
|
Run by priority:
|
|
643
671
|
```bash
|
|
@@ -667,6 +695,43 @@ python3 -m pytest tests/ -q --tb=line
|
|
|
667
695
|
| [README-JP.md](README-JP.md) | 日本語説明 | 日本語 |
|
|
668
696
|
| [docs/PRD.md](docs/PRD.md) | 产品需求文档 | 中文 |
|
|
669
697
|
| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 技术架构文档 | 中文 |
|
|
698
|
+
| [docs/planning/V43_ROADMAP_PROPOSAL.md](docs/planning/V43_ROADMAP_PROPOSAL.md) | V4.3 统一推进方案 v1.2(7-Role 共识达成) | 中文 |
|
|
699
|
+
| [docs/prd/V4.3.0_PRD.md](docs/prd/V4.3.0_PRD.md) | V4.3.0 PRD(需求/用户故事/验收标准) | 中文 |
|
|
700
|
+
| [docs/architecture/V4.3.0_ARCHITECTURE.md](docs/architecture/V4.3.0_ARCHITECTURE.md) | V4.3.0 架构设计(模块边界/接口契约/依赖图) | 中文 |
|
|
701
|
+
| [docs/testing/V4.3.0_TEST_PLAN.md](docs/testing/V4.3.0_TEST_PLAN.md) | V4.3.0 测试方案(测试金字塔/E2E/真实用户模拟) | 中文 |
|
|
702
|
+
|
|
703
|
+
---
|
|
704
|
+
|
|
705
|
+
## 🗺️ Roadmap
|
|
706
|
+
|
|
707
|
+
### V4.3.0(进行中 — 7-Role 共识达成,文档先行)
|
|
708
|
+
|
|
709
|
+
**版本策略**: V4.3.0 预发布(全部代码+文档+E2E 验证)→ 用户确认 → V4.3.0 正式版
|
|
710
|
+
|
|
711
|
+
**整合三方面输入**:
|
|
712
|
+
1. 技术债持续治理(`todo_drift_monitor` + CI 阻塞)
|
|
713
|
+
2. pickle→JSON 迁移(dead code 删除 + fallback 安全收紧 + 移除)
|
|
714
|
+
3. 上游 TraeMultiAgentSkill v2.6-v2.8 精细化启发(Ponytail 双模式 / LoopKernel 回退 / UIUX 审计 / Dashboard 可视化)
|
|
715
|
+
|
|
716
|
+
**V4.3.0 范围(9 项)**:
|
|
717
|
+
|
|
718
|
+
| ID | 名称 | 优先级 |
|
|
719
|
+
|----|------|--------|
|
|
720
|
+
| P0-1 | pickle dead code 删除 + fallback 安全收紧 | P0 |
|
|
721
|
+
| P0-2 | `todo_drift_monitor.py` + CI 阻塞 + PR template | P0 |
|
|
722
|
+
| P1-1 | Ponytail lite/full 双模式 + DebtCollector + RequirementTracer | P1 |
|
|
723
|
+
| P1-4 | LoopKernel RollbackStrategy + 独立硬上限 | P1 |
|
|
724
|
+
| P1-5 | UIUXAnalyzer 子项审计 + 按需补全 | P1 |
|
|
725
|
+
| P1-6 | Dashboard 状态可视化 | P1 |
|
|
726
|
+
| P2-1 | pickle fallback 移除 | P2 |
|
|
727
|
+
| P2-2 | Autonomous SmartConfirmation 文档补全 | P2 |
|
|
728
|
+
| P2-4 | V4.3.0 发布文档同步 | P2 |
|
|
729
|
+
|
|
730
|
+
**7-Role 共识**: 7/7 APPROVE_WITH_CONCERNS,按 10 项调整修订后达成共识。详见 [V43_ROADMAP_PROPOSAL.md](docs/planning/V43_ROADMAP_PROPOSAL.md) v1.2。
|
|
731
|
+
|
|
732
|
+
**项目生命周期**: 按 11-Phase 模型推进(P1 需求 → P2 架构 → P3 技术设计 → P7 测试计划 → P8 实施 → P9 测试执行 → P10 部署发布)
|
|
733
|
+
|
|
734
|
+
**测试金字塔保障**: unit ≥60% / integration 15-25% / e2e ≤10% / contract 5-10% / smoke ≤5%
|
|
670
735
|
|
|
671
736
|
---
|
|
672
737
|
|
|
@@ -701,6 +766,6 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
701
766
|
|
|
702
767
|
---
|
|
703
768
|
|
|
704
|
-
*Last updated: 2026-07-
|
|
769
|
+
*Last updated: 2026-07-24 | Version: V4.2.1 (V4.3.0 in progress — see [Roadmap](#-roadmap))*
|
|
705
770
|
|
|
706
771
|
</details>
|