Coverage report

File |  | statements | missing | excluded |  | coverage
--- | --- | --- | --- | --- | --- | ---
src / __init__.py |  | 8 | 2 | 2 |  | 75%
src / cli / __init__.py |  | 0 | 0 | 0 |  | 100%
src / cli / cli.py |  | 347 | 291 | 2 |  | 16%
src / cli / main.py |  | 5 | 5 | 0 |  | 0%
src / core / __init__.py |  | 0 | 0 | 0 |  | 100%
src / core / log_events.py |  | 156 | 119 | 1 |  | 24%
src / core / models.py |  | 56 | 0 | 2 |  | 100%
src / core / protocols.py |  | 282 | 0 | 237 |  | 100%
src / core / tool_name_extractor.py |  | 134 | 7 | 0 |  | 95%
src / domain / __init__.py |  | 0 | 0 | 0 |  | 100%
src / domain / deadlock.py |  | 145 | 9 | 3 |  | 94%
src / domain / lifecycle.py |  | 237 | 48 | 37 |  | 80%
src / domain / prompts.py |  | 66 | 24 | 2 |  | 64%
src / domain / quality_gate.py |  | 246 | 180 | 5 |  | 27%
src / domain / validation / __init__.py |  | 9 | 0 | 0 |  | 100%
src / domain / validation / code_pattern_matcher.py |  | 52 | 44 | 0 |  | 15%
src / domain / validation / config.py |  | 182 | 65 | 0 |  | 64%
src / domain / validation / config_loader.py |  | 43 | 29 | 2 |  | 33%
src / domain / validation / config_merger.py |  | 36 | 28 | 2 |  | 22%
src / domain / validation / coverage.py |  | 259 | 202 | 4 |  | 22%
src / domain / validation / coverage_args.py |  | 65 | 57 | 0 |  | 12%
src / domain / validation / e2e.py |  | 119 | 59 | 3 |  | 50%
src / domain / validation / helpers.py |  | 77 | 63 | 2 |  | 18%
src / domain / validation / lint_cache.py |  | 129 | 95 | 3 |  | 26%
src / domain / validation / preset_registry.py |  | 26 | 0 | 2 |  | 100%
src / domain / validation / presets / __init__.py |  | 0 | 0 | 0 |  | 100%
src / domain / validation / result.py |  | 27 | 5 | 4 |  | 81%
src / domain / validation / runner.py |  | 4 | 0 | 0 |  | 100%
src / domain / validation / spec.py |  | 163 | 89 | 3 |  | 45%
src / domain / validation / spec_executor.py |  | 117 | 74 | 5 |  | 37%
src / domain / validation / spec_result_builder.py |  | 89 | 60 | 7 |  | 33%
src / domain / validation / spec_runner.py |  | 94 | 69 | 5 |  | 27%
src / domain / validation / spec_workspace.py |  | 63 | 39 | 5 |  | 38%
src / domain / validation / validation_gating.py |  | 53 | 37 | 0 |  | 30%
src / domain / validation / worktree.py |  | 168 | 119 | 3 |  | 29%
src / infra / __init__.py |  | 0 | 0 | 0 |  | 100%
src / infra / agent_runtime.py |  | 83 | 0 | 4 |  | 100%
src / infra / clients / __init__.py |  | 6 | 0 | 0 |  | 100%
src / infra / clients / anthropic_client.py |  | 21 | 18 | 0 |  | 14%
src / infra / clients / beads_client.py |  | 324 | 275 | 3 |  | 15%
src / infra / clients / braintrust_integration.py |  | 118 | 79 | 5 |  | 33%
src / infra / clients / cerberus_gate_cli.py |  | 129 | 91 | 3 |  | 29%
src / infra / clients / cerberus_review.py |  | 94 | 51 | 3 |  | 46%
src / infra / clients / review_output_parser.py |  | 108 | 80 | 2 |  | 26%
src / infra / epic_scope.py |  | 68 | 57 | 0 |  | 16%
src / infra / epic_verifier.py |  | 309 | 261 | 5 |  | 16%
src / infra / git_utils.py |  | 40 | 30 | 0 |  | 25%
src / infra / hooks / __init__.py |  | 7 | 0 | 0 |  | 100%
src / infra / hooks / dangerous_commands.py |  | 36 | 24 | 0 |  | 33%
src / infra / hooks / deadlock.py |  | 143 | 23 | 3 |  | 84%
src / infra / hooks / file_cache.py |  | 83 | 56 | 2 |  | 33%
src / infra / hooks / lint_cache.py |  | 104 | 56 | 3 |  | 46%
src / infra / hooks / locking.py |  | 36 | 17 | 2 |  | 53%
src / infra / io / __init__.py |  | 6 | 0 | 0 |  | 100%
src / infra / io / base_sink.py |  | 109 | 50 | 0 |  | 54%
src / infra / io / config.py |  | 225 | 115 | 0 |  | 49%
src / infra / io / console_sink.py |  | 170 | 108 | 0 |  | 36%
src / infra / io / event_sink.py |  | 0 | 0 | 0 |  | 100%
src / infra / io / log_output / __init__.py |  | 0 | 0 | 0 |  | 100%
src / infra / io / log_output / console.py |  | 147 | 111 | 0 |  | 24%
src / infra / io / log_output / run_metadata.py |  | 213 | 144 | 0 |  | 32%
src / infra / io / session_log_parser.py |  | 126 | 97 | 6 |  | 23%
src / infra / issue_manager.py |  | 63 | 43 | 0 |  | 32%
src / infra / mcp.py |  | 7 | 0 | 2 |  | 100%
src / infra / sdk_adapter.py |  | 12 | 6 | 3 |  | 50%
src / infra / telemetry.py |  | 33 | 9 | 22 |  | 73%
src / infra / tools / __init__.py |  | 4 | 0 | 0 |  | 100%
src / infra / tools / command_runner.py |  | 153 | 21 | 3 |  | 86%
src / infra / tools / env.py |  | 47 | 20 | 0 |  | 57%
src / infra / tools / locking.py |  | 275 | 102 | 0 |  | 63%
src / orchestration / __init__.py |  | 1 | 0 | 0 |  | 100%
src / orchestration / cli_support.py |  | 7 | 0 | 0 |  | 100%
src / orchestration / factory.py |  | 106 | 106 | 7 |  | 0%
src / orchestration / orchestration_wiring.py |  | 85 | 15 | 11 |  | 82%
src / orchestration / orchestrator.py |  | 332 | 260 | 14 |  | 22%
src / orchestration / review_tracking.py |  | 100 | 91 | 2 |  | 9%
src / orchestration / run_config.py |  | 9 | 3 | 2 |  | 67%
src / orchestration / types.py |  | 40 | 40 | 3 |  | 0%
src / pipeline / __init__.py |  | 8 | 0 | 0 |  | 100%
src / pipeline / agent_session_runner.py |  | 433 | 58 | 10 |  | 87%
src / pipeline / context_pressure_handler.py |  | 64 | 0 | 2 |  | 100%
src / pipeline / epic_verification_coordinator.py |  | 90 | 59 | 5 |  | 34%
src / pipeline / gate_metadata.py |  | 37 | 27 | 5 |  | 27%
src / pipeline / gate_runner.py |  | 73 | 31 | 5 |  | 58%
src / pipeline / issue_execution_coordinator.py |  | 88 | 60 | 11 |  | 32%
src / pipeline / issue_finalizer.py |  | 71 | 31 | 8 |  | 56%
src / pipeline / issue_result.py |  | 17 | 0 | 4 |  | 100%
src / pipeline / message_stream_processor.py |  | 132 | 17 | 10 |  | 87%
src / pipeline / review_runner.py |  | 63 | 24 | 4 |  | 62%
src / pipeline / run_coordinator.py |  | 185 | 137 | 7 |  | 26%
src / pipeline / session_callback_factory.py |  | 51 | 37 | 23 |  | 27%
Total |  | 8748 | 4759 | 545 |  | 46%

No items found using the specified filter.