Skip to content

Coverage Matrix

Regenerated from the live source tree. Cell vocabulary: ✅ covered, ⚠️ partial, ❌ missing, N/A not applicable.

Section 1: Loops

Loop ADR Wiki Generated Standard Unit Scenario Sandbox
ADRReviewerLoop ✅ [0079] ✅ [adr-council-reviewer.md, adr-reviewer-loop.md] ✅ loops.md ✅ README.md test_adr_reviewer_loop.py ✅ in catalog s25_adr_reviewer_no_proposed_adrs.py
AdrTouchpointAuditorLoop ✅ [0056, 0089] ✅ [adr-touchpoint-auditor-loop.md] ✅ loops.md ✅ README.md test_adr_touchpoint_auditor_loop.py ✅ in catalog s33_adr_touchpoint_auditor_no_drift.py
AutoAgentPreflightLoop ✅ [0050, 0063, 0084] ✅ [dark-factory.md] ✅ loops.md ✅ README.md test_auto_agent_preflight_loop.py ✅ in catalog s31_auto_agent_preflight_no_escalations.py
BranchProtectionAuditorLoop ✅ [0082] ✅ loops.md test_branch_protection_auditor_loop.py ✅ in catalog s41_branch_protection_auditor_no_drift.py
CIMonitorLoop ✅ [0029, 0065] ✅ [ci-monitor-loop.md] ✅ loops.md ✅ README.md test_ci_monitor_loop.py ✅ in catalog s15_ci_monitor_main_branch_red.py
ContractRefreshLoop ✅ [0045, 0047] ✅ [contract-refresh-loop.md] ✅ loops.md ✅ README.md test_contract_refresh_loop.py ✅ in catalog s30_contract_refresh_clean.py
CorpusLearningLoop ✅ [0045] ✅ [corpus-learning-loop.md] ✅ loops.md ✅ README.md test_corpus_learning_loop.py ✅ in catalog s22_corpus_learning_no_escape_issues.py
CostBudgetWatcherLoop ✅ [0054] ✅ [architecture.md] ✅ loops.md ✅ README.md test_cost_budget_watcher_loop.py ✅ in catalog s26_cost_budget_watcher_unlimited.py
DependabotMergeLoop ✅ [0054, 0057, 0058] ✅ [dependabot-merge-loop.md] ✅ loops.md ✅ README.md test_dependabot_merge_loop.py ✅ in catalog s09_dependabot_auto_merge.py
DiagnosticLoop ✅ [0050] ✅ [diagnostic-loop.md] ✅ loops.md ✅ README.md test_diagnostic_loop.py ✅ in catalog s05_hitl_after_review_exhaustion.py
DiagramLoop ✅ [0001] ✅ [diagram-loop.md] ✅ loops.md ✅ README.md test_diagram_loop.py ✅ in catalog s34_diagram_loop_no_changes.py
EdgeProposerLoop ✅ [0058, 0060, 0062] ✅ [edge-proposer-loop.md, entry-evidence-loop.md] ✅ loops.md ✅ README.md test_edge_proposer_loop.py ✅ in catalog s28_edge_proposer_no_proposals.py
EntryEvidenceLoop ✅ [0062, 0078] ✅ [edge-proposer-loop.md, entry-evidence-loop.md] ✅ loops.md ✅ README.md test_entry_evidence_loop.py ✅ in catalog s24_entry_evidence_no_terms.py
EpicMonitorLoop ✅ [0080, 0081, 0091] ✅ [architecture-async-control.md] ✅ loops.md ✅ README.md test_epic_monitor_loop.py ✅ in catalog s27_epic_monitor_no_epics.py
EpicSweeperLoop ✅ [0080, 0081] ✅ [architecture-async-control.md] ✅ loops.md ✅ README.md test_epic_sweeper_loop.py ✅ in catalog s23_epic_sweeper_no_epics.py
FakeCoverageAuditorLoop ✅ [0045, 0047, 0056, 0089] ✅ [fake-coverage-auditor-loop.md] ✅ loops.md ✅ README.md test_fake_coverage_auditor_loop.py ✅ in catalog s29_fake_coverage_auditor_clean.py
FlakeTrackerLoop ✅ [0045, 0056, 0065, 0089] ✅ [flake-tracker-loop.md] ✅ loops.md ✅ README.md test_flake_tracker_loop.py ✅ in catalog
GateActivatorLoop ✅ [0082] ✅ loops.md test_gate_activator_loop.py ✅ in catalog s45_gate_activator_no_proposals.py
GitHubCacheLoop ✅ [0076] ✅ [git-hub-cache-loop.md, github-cache-loop.md] ✅ loops.md ✅ README.md test_github_cache_loop.py ✅ in catalog s44_github_cache_idle_poll.py
HealthMonitorLoop ✅ [0045, 0046] ✅ [testing.md] ✅ loops.md ✅ README.md test_health_monitor_loop_primary_cycle.py ✅ in catalog s48_health_monitor_idle_poll.py
LabelDriftWatcherLoop ✅ [0088] ✅ loops.md ✅ README.md test_label_drift_watcher_loop.py ✅ in catalog
LiveCorpusReplayLoop ✅ [0086] ✅ [live-corpus-replay-loop.md] ✅ loops.md ✅ README.md test_live_corpus_replay_loop.py ✅ in catalog s43_live_corpus_replay_idle.py
LogIngestLoop ✅ loops.md ✅ (caretaker loop) test_log_ingest_loop.py ✅ in catalog
MemoryBacklogLoop ✅ [0089] ✅ [README.md] ✅ loops.md ✅ README.md test_memory_backlog_loop.py ✅ in catalog
MergeStateWatcherLoop ✅ [0075, 0077] ✅ [merge-state-watcher-loop.md] ✅ loops.md ✅ README.md test_merge_state_watcher_loop.py ✅ in catalog s49_merge_state_watcher_idle_poll.py
PRUnstickerLoop ✅ [0075, 0077] ✅ [pr-unsticker-loop.md] ✅ loops.md ✅ README.md test_pr_unsticker_loop.py ✅ in catalog s08_pr_unsticker_revives_stuck_pr.py
PricingRefreshLoop ✅ [0078] ✅ [pricing-refresh-loop.md] ✅ loops.md ✅ README.md test_pricing_refresh_loop_scenario.py ✅ in catalog
PrinciplesAuditLoop ✅ [0045, 0056] ✅ [dark-factory.md] ✅ loops.md ✅ README.md test_principles_audit_loop.py ✅ in catalog
RCBudgetLoop ✅ [0045] ✅ [rc-budget-loop.md] ✅ loops.md ✅ README.md test_rc_budget_loop.py ✅ in catalog s20_rc_budget_no_regression.py
RepoWikiLoop ✅ [0032, 0053, 0061, 0062, 0064] ✅ [dark-factory.md] ✅ loops.md ✅ README.md test_repo_wiki_loop.py ✅ in catalog
ReportIssueLoop ✅ [0013, 0018, 0028, 0045] ✅ [report-issue-loop.md] ✅ loops.md ✅ README.md test_report_issue_loop.py ✅ in catalog s19_report_issue_empty_queue.py
RetrospectiveLoop ✅ [0074] ✅ [architecture-async-control.md] ✅ loops.md ✅ README.md test_retrospective_loop.py ✅ in catalog s18_retrospective_empty_queue.py
RunsGCLoop ✅ [0073] ✅ [architecture-async-control.md] ✅ loops.md ✅ README.md test_runs_gc_loop.py ✅ in catalog s47_runs_gc_idle_poll.py
SandboxFailureFixerLoop ✅ [0052, 0063] ✅ [dark-factory.md] ✅ loops.md ✅ README.md test_sandbox_failure_fixer_loop.py ✅ in catalog s38_sandbox_fixer_richer_context.py
SecurityPatchLoop ✅ [0029, 0065] ✅ [architecture-async-control.md] ✅ loops.md ✅ README.md test_security_patch_loop.py ✅ in catalog s21_security_patch_no_alerts.py
SentryLoop ✅ [0055] ✅ [sentry-loop.md] ✅ loops.md ✅ README.md test_sentry_loop.py ✅ in catalog s42_sentry_ingest_no_credentials.py
SkillPromptEvalLoop ✅ [0045] ✅ [skill-prompt-eval-loop.md] ✅ loops.md ✅ README.md test_skill_prompt_eval_loop.py ✅ in catalog s17_skill_prompt_eval_clean_corpus.py
StagingBisectLoop ✅ [0045, 0048, 0063] ✅ [architecture.md] ✅ loops.md ✅ README.md test_staging_bisect_loop.py ✅ in catalog
StagingPromotionLoop ✅ [0042] ✅ [patterns.md] ✅ loops.md ✅ README.md test_staging_promotion_loop.py ✅ in catalog
StaleIssueGCLoop ✅ [0029, 0072] ✅ [gotchas.md, stale-issue-gc-loop.md] ✅ loops.md ✅ README.md test_stale_issue_gc_loop.py ✅ in catalog
StaleIssueLoop ✅ [0072] ✅ [gotchas.md, stale-issue-gc-loop.md] ✅ loops.md ✅ README.md test_stale_issue_loop.py ✅ in catalog s05_hitl_after_review_exhaustion.py
TermProposerLoop ✅ [0054, 0057, 0060, 0061, 0062, 0068] ✅ [adr-council-reviewer.md, bot-pr-port.md, entry-evidence-loop.md, task.md, term-pruner-loop.md] ✅ loops.md ✅ README.md test_term_proposer_loop.py ✅ in catalog
TermPrunerLoop ✅ [0057, 0060, 0062, 0068] ✅ [term-pruner-loop.md] ✅ loops.md ✅ README.md test_term_pruner_loop.py ✅ in catalog
TriageRetryLoop ✅ [0063] ✅ loops.md ✅ README.md test_triage_retry_loop.py ✅ in catalog
TrustFleetSanityLoop ✅ [0045, 0046] ✅ [testing.md] ✅ loops.md ✅ README.md test_trust_fleet_sanity_loop.py ✅ in catalog
WikiRotDetectorLoop ✅ [0045, 0056, 0089] ✅ [wiki-rot-detector-loop.md] ✅ loops.md ✅ README.md test_wiki_rot_detector_loop.py ✅ in catalog
WorkspaceGCLoop ✅ [0069] ✅ [workspace-gc-loop.md] ✅ loops.md ✅ README.md test_workspace_gc_loop.py ✅ in catalog s46_workspace_gc_idle_poll.py
## Section 2: Ports

Cassette and Contract columns are N/A for all ports (ADR-0047 contracts are per-adapter, not per-port).

Port ADR Wiki Generated Standard Fake Cassette Contract
AgentPort ✅ [0066] ✅ [agent-port.md, architecture-layers.md] ✅ ports.md ✅ README.md FakeAgent N/A (per-adapter, ADR-0047) N/A (per-adapter, ADR-0047)
BotPRPort ✅ [0068] ✅ [bot-pr-port.md] ✅ ports.md ✅ README.md FakeBotPR N/A (per-adapter, ADR-0047) N/A (per-adapter, ADR-0047)
IssueFetcherPort ✅ [0067, 0081] ✅ [architecture-async-control.md, issue-fetcher-port.md] ✅ ports.md ✅ README.md FakeIssueFetcher N/A (per-adapter, ADR-0047) N/A (per-adapter, ADR-0047)
IssueStorePort ✅ [0041] ✅ [architecture-layers.md, issue-store-port.md] ✅ ports.md ✅ README.md FakeIssueStore N/A (per-adapter, ADR-0047) N/A (per-adapter, ADR-0047)
ObservabilityPort ✅ [0072] ✅ [observability-port.md] ✅ ports.md ✅ README.md FakeSentry N/A (per-adapter, ADR-0047) N/A (per-adapter, ADR-0047)
PRPort ✅ [0045, 0052, 0056, 0068, 0069, 0075, 0077] ✅ [architecture-async-control.md, architecture-layers.md, dark-factory.md, diagram-loop.md, fake-coverage-auditor-loop.md, gotchas.md, pr-port.md, testing.md] ✅ ports.md ✅ README.md FakePR N/A (per-adapter, ADR-0047) N/A (per-adapter, ADR-0047)
ReviewInsightStorePort ✅ [0070] ✅ [review-insight-store-port.md] ✅ ports.md ✅ README.md FakeReviewInsightStore N/A (per-adapter, ADR-0047) N/A (per-adapter, ADR-0047)
RouteBackCounterPort ✅ [0071] ✅ [route-back-counter-port.md] ✅ ports.md ✅ README.md FakeRouteBackCounter N/A (per-adapter, ADR-0047) N/A (per-adapter, ADR-0047)
WorkspacePort ✅ [0003, 0050, 0069] ✅ [workspace-gc-loop.md, workspace-port.md] ✅ ports.md ✅ README.md FakeWorkspace N/A (per-adapter, ADR-0047) N/A (per-adapter, ADR-0047)
## Section 3: Factory phases

Section 3 contains hand-curated prose (Loops driving it / Escalation path / HITL trigger). It is not regenerable from source and is maintained in docs/arch/coverage_matrix.md (the hand-curated baseline document).