# Test Coverage Matrix: Clean Release

| Module | File | TIER | Has Tests | Fixtures | Edges | Invariants |
|--------|------|------|-----------|----------|-------|------------|
| `clean_release.policy_engine` | `policy_engine.py` | CRITICAL | ✅ Yes | 1/1 | 3/3 | 1/1 |
| `clean_release.compliance_orchestrator` | `compliance_orchestrator.py` | CRITICAL | ✅ Yes | 1/1 | 3/3 | 1/1 |
| `clean_release.report_builder` | `report_builder.py` | CRITICAL | ✅ Yes | 1/1 | 3/3 | 1/1 |
| `clean_release.manifest_builder` | `manifest_builder.py` | STANDARD | ✅ Yes | N/A | N/A | N/A |
| `clean_release.source_isolation` | `source_isolation.py` | STANDARD | ✅ Yes | N/A | N/A | N/A |
| `clean_release.preparation_service` | `preparation_service.py` | STANDARD | ✅ Yes | 1/1 | 2/2 | 1/1 |
| `clean_release.audit_service` | `audit_service.py` | STANDARD | ✅ Yes | N/A | N/A | 1/1 |
| `clean_release.stages` | `stages.py` | STANDARD | ✅ Yes | N/A | 3/3 | N/A |
| `api.routes.clean_release` | `clean_release.py` | STANDARD | ✅ Yes | 1/1 | 2/2 | 1/1 |
| `api.routes.tasks.get_task_logs` | `tasks.py` | CRITICAL | ✅ Yes | 1/1 | 3/3 | 1/1 |
| `models.clean_release` | `clean_release.py` | CRITICAL | ✅ Yes | 1/1 | 3/3 | 1/1 |
| `frontend.assistant_chat.integration` | `assistant_chat.integration.test.js` | CRITICAL | ✅ Yes | 1/1 | 3/3 | 1/1 |
| `frontend.reports.report_card.ux` | `report_card.ux.test.js` | CRITICAL | ✅ Yes | 1/1 | 3/3 | 1/1 |
| `frontend.task_log_viewer` | `task_log_viewer.test.js` | CRITICAL | ✅ Yes | 1/1 | 3/3 | 1/1 |

## CRITICAL Edge Cases Covered

| Edge Case | Has Test | Required |
|-----------|----------|----------|
| **policy_engine**: `missing_registry_ref` | ✅ | Yes |
| **policy_engine**: `conflicting_registry` | ✅ | Yes |
| **policy_engine**: `external_endpoint` | ✅ | Yes |
| **compliance_orchestrator**: `stage_failure_blocks_release` | ✅ | Yes |
| **compliance_orchestrator**: `missing_stage_result` | ✅ | Yes |
| **compliance_orchestrator**: `report_generation_error` | ✅ | Yes |
| **report_builder**: `empty_violations_for_blocked` | ✅ | Yes |
| **report_builder**: `counter_mismatch` | ✅ | Yes |
| **report_builder**: `missing_operator_summary` | ✅ | Yes |
