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-review-panel.md, adr-reviewer-loop.md] ✅ loops.md ✅ README.md ✅ test_adr_reviewer_loop.py ✅ in catalog ✅ s25_adr_reviewer_no_proposed_adrs.py
AdrConformanceLoop ✅ [0100, 0104, 0136] ✅ [adr-index.md] ✅ loops.md ✅ README.md ✅ test_adr_conformance_loop.py ✅ in catalog ❌
AutoAgentPreflightLoop ✅ [0050, 0063, 0084] ✅ [dark-factory.md, gotchas.md, testing.md] ✅ loops.md ✅ README.md ✅ test_auto_agent_preflight_loop.py ✅ in catalog ✅ s31_auto_agent_preflight_no_escalations.py
AutoTightenLoop ✅ [0104] ❌ ✅ loops.md ✅ README.md ✅ test_auto_tighten_loop.py ✅ in catalog ❌
BranchProtectionAuditorLoop ✅ [0082] ❌ ✅ loops.md ✅ README.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
CharterDriftCaretakerLoop ✅ [0121] ✅ [charter-drift-caretaker-loop.md] ✅ loops.md ✅ README.md ✅ test_charter_drift_caretaker_loop.py ✅ in catalog ✅ s94_onboarding_writes_charter.py
CharterLoopWorkerLoop ❌ ❌ ✅ loops.md ✅ README.md ✅ test_charter_loop_worker_loop.py ✅ in catalog ❌
ContractRefreshLoop ✅ [0045, 0047] ✅ [contract-refresh-loop.md] ✅ loops.md ✅ README.md ✅ test_contract_refresh_loop.py ✅ in catalog ✅ s30_contract_refresh_clean.py
ConvergenceOscillationLoop ✅ [0096, 0097, 0098] ❌ ✅ loops.md ✅ README.md ✅ test_convergence_oscillation_loop.py ✅ in catalog ❌
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, 0120] ✅ [architecture.md, dark-factory.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, git-hub-data-cache.md, review-verdict.md] ✅ loops.md ✅ README.md ✅ test_dependabot_merge_loop.py ✅ in catalog ✅ s09_dependabot_auto_merge.py
DetectorCalibrationLoop ❌ ❌ ✅ loops.md ✅ README.md ✅ test_detector_calibration_loop.py ✅ in catalog ❌
DiagnosticLoop ✅ [0050] ✅ [diagnostic-loop.md] ✅ loops.md ✅ README.md ✅ test_diagnostic_loop.py ✅ in catalog ✅ s05_hitl_after_review_exhaustion.py
DiagramLoop ✅ [0001, 0093] ✅ [diagram-loop.md, gotchas.md, patterns.md] ✅ loops.md ✅ README.md ✅ test_diagram_loop.py ✅ in catalog ✅ s34_diagram_loop_no_changes.py
DisturbanceDampenerLoop ✅ [0101, 0120] ✅ [dimension-baseline.md, disturbance-dampener-loop.md] ❌ ✅ README.md ✅ test_disturbance_dampener_loop.py ✅ in catalog ✅ s90_disturbance_dampener_idle_poll.py
EdgeProposerLoop ✅ [0058, 0060, 0062, 0126] ✅ [edge-proposer-loop.md, entry-evidence-loop.md, term-store.md, term.md] ✅ loops.md ✅ README.md ✅ test_edge_proposer_loop.py ✅ in catalog ✅ s28_edge_proposer_no_proposals.py
EntryEvidenceLoop ✅ [0062, 0078, 0126] ✅ [edge-proposer-loop.md, entry-evidence-loop.md, term-store.md, term.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, 0091, 0105] ✅ [architecture-async-control.md] ✅ loops.md ✅ README.md ✅ test_epic_sweeper_loop.py ✅ in catalog ✅ s23_epic_sweeper_no_epics.py
ErosionMetricsLoop ✅ [0120, 0122, 0126] ✅ [dark-factory.md, erosion.md, patterns.md] ✅ loops.md ✅ README.md ✅ test_erosion_metrics_loop.py ✅ in catalog ✅ s80_erosion_metrics_idle_poll.py
EscapeLedgerLoop ✅ [0115] ❌ ✅ loops.md ✅ README.md ✅ test_escape_ledger_loop.py ✅ in catalog ✅ s83_escape_ledger_idle_poll.py
FailOpenMonitorLoop ✅ [0120] ❌ ✅ loops.md ✅ README.md ✅ test_fail_open_monitor_loop.py ✅ in catalog ✅ s84_fail_open_monitor_idle_poll.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
FitnessScorecardLoop ✅ [0093, 0100, 0104] ✅ [fitness-scorecard-loop.md, loop-fitness.md] ✅ loops.md ✅ README.md ✅ test_fitness_scorecard_loop.py ✅ in catalog ❌
FlakeTrackerLoop ✅ [0045, 0056, 0065, 0089, 0099, 0120] ✅ [flake-tracker-loop.md, git-hub-data-cache.md] ✅ loops.md ✅ README.md ✅ test_flake_tracker_loop.py ✅ in catalog ❌
GateActivatorLoop ✅ [0082] ❌ ✅ loops.md ✅ README.md ✅ test_gate_activator_loop.py ✅ in catalog ✅ s45_gate_activator_no_proposals.py
GateHealthLoop ✅ [0120] ✅ [dark-factory.md, feedback-workstream-fixes-over-loops.md, testing.md] ✅ loops.md ✅ README.md ✅ test_gate_health_loop.py ✅ in catalog ❌
GatewayCoverageLoop ✅ [0110] ✅ [architecture.md] ✅ loops.md ✅ README.md ✅ test_gateway_coverage_loop.py ✅ in catalog ✅ s91_gateway_session_tap.py
GitHubCacheLoop ✅ [0076] ✅ [git-hub-cache-loop.md, git-hub-data-cache.md, hitl-item.md] ✅ loops.md ✅ README.md ✅ test_github_cache_loop.py ✅ in catalog ✅ s44_github_cache_idle_poll.py
GoalSupervisorLoop ✅ [0124] ✅ [goal-supervisor-loop.md] ✅ loops.md ✅ README.md ✅ test_goal_supervisor_loop.py ✅ in catalog ❌
HealthMonitorLoop ✅ [0045, 0046, 0093, 0106, 0124] ✅ [goal-supervisor-loop.md, gotchas.md, testing.md] ✅ loops.md ✅ README.md ✅ test_health_monitor_loop_primary_cycle.py ✅ in catalog ✅ s48_health_monitor_idle_poll.py
HumanSteeringLoop ✅ [0103] ✅ [human-steering-loop.md, steering-channel.md, steering-state.md] ❌ ✅ README.md ✅ test_human_steering_loop.py ✅ in catalog ✅ s52_human_steering_directive.py
InterventionTallyLoop ❌ ❌ ✅ loops.md ✅ README.md ✅ test_intervention_tally_loop.py ✅ in catalog ✅ s85_intervention_tally_idle_poll.py
IssueRefinementLoop ❌ ❌ ✅ loops.md ✅ README.md ✅ test_issue_refinement_loop.py ✅ in catalog ✅ s57_issue_refinement_digest.py
LabelDriftWatcherLoop ✅ [0088] ❌ ✅ loops.md ✅ README.md ✅ test_label_drift_watcher_loop.py ✅ in catalog ✅ s81_label_drift_watcher_reconciles_pr_ahead.py
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 ✅ README.md ✅ test_log_ingest_loop.py ✅ in catalog ❌
MemoryBacklogLoop ✅ [0089, 0120] ✅ [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] ✅ [hitl-item.md, pr-unsticker-loop.md] ✅ loops.md ✅ README.md ✅ test_pr_unsticker_loop.py ✅ in catalog ✅ s08_pr_unsticker_revives_stuck_pr.py
PrRedRepairLoop ❌ ✅ [feedback-workstream-fixes-over-loops.md] ✅ loops.md ✅ README.md ✅ test_pr_red_repair_loop.py ✅ in catalog ✅ s74_pr_red_repair_idle_poll.py
PricingRefreshLoop ✅ [0078, 0093] ✅ [pricing-refresh-loop.md] ✅ loops.md ✅ README.md ✅ test_pricing_refresh_loop_scenario.py ✅ in catalog ❌
PrinciplesAuditLoop ✅ [0045, 0056, 0120] ✅ [dark-factory.md] ✅ loops.md ✅ README.md ✅ test_principles_audit_loop.py ✅ in catalog ❌
RCBudgetLoop ✅ [0045, 0120] ✅ [git-hub-data-cache.md, 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, 0120] ✅ [report-issue-loop.md] ✅ loops.md ✅ README.md ✅ test_report_issue_loop.py ✅ in catalog ✅ s19_report_issue_empty_queue.py
RetrospectiveLoop ✅ [0074, 0093, 0120, 0144] ✅ [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, gotchas.md] ✅ loops.md ✅ README.md ✅ test_runs_gc_loop.py ✅ in catalog ✅ s47_runs_gc_idle_poll.py
SampledAuditLoop ✅ [0115, 0120] ❌ ✅ loops.md ✅ README.md ✅ test_sampled_audit_loop.py ✅ in catalog ✅ s86_sampled_audit_idle_poll.py
SandboxFailureFixerLoop ✅ [0052, 0063, 0097, 0101] ✅ [dark-factory.md, disturbance-dampener-loop.md, feedback-backlog-to-loop-reflection.md] ✅ loops.md ✅ README.md ✅ test_sandbox_failure_fixer_loop.py ✅ in catalog ✅ s38_sandbox_fixer_richer_context.py
SecondOrderVitalsLoop ✅ [0120] ❌ ✅ loops.md ✅ README.md ✅ test_second_order_vitals_loop.py ✅ in catalog ✅ s87_second_order_vitals_idle_poll.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
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, 0108] ✅ [dependencies.md, patterns.md] ✅ loops.md ✅ README.md ✅ test_staging_promotion_loop.py ✅ in catalog ✅ s82_full_machine_rc_promotion.py
StaleIssueGCLoop ✅ [0029, 0072] ✅ [gotchas.md, stale-issue-gc-loop.md] ✅ loops.md ✅ README.md ✅ test_stale_issue_gc_loop.py ✅ in catalog ✅ s77_stale_issue_gc_skips_fresh_issue.py
StaleIssueLoop ✅ [0072] ✅ [gotchas.md, stale-issue-gc-loop.md, testing.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, 0126] ✅ [adr-index.md, adr-pre-validator.md, adr-review-panel.md, bot-pr-port.md, circuit-breaker.md, credentials.md, credit-exhausted-error.md, dedup-store.md, entry-evidence-loop.md, escalation-reconciler.md, event-type.md, git-hub-data-cache.md, hitl-item.md, hydra-flow-event.md, pr-manager.md, review-verdict.md, subprocess-runner.md, task.md, term-pruner-loop.md, term-store.md, term.md, tribal-wiki-store.md] ✅ loops.md ✅ README.md ✅ test_term_proposer_loop.py ✅ in catalog ❌
TermPrunerLoop ✅ [0057, 0060, 0062, 0068] ✅ [term-pruner-loop.md, term-store.md, term.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, 0093] ✅ [testing.md] ✅ loops.md ✅ README.md ✅ test_trust_fleet_sanity_loop.py ✅ in catalog ✅ s78_trust_fleet_sanity_tick_error_ratio_breach.py
WikiRotDetectorLoop ✅ [0045, 0056, 0089, 0099, 0120, 0126] ✅ [wiki-rot-detector-loop.md] ✅ loops.md ✅ README.md ✅ test_wiki_rot_detector_loop.py ✅ in catalog ✅ s79_wiki_rot_detector_broken_cite_fires.py
WorkspaceGCLoop ✅ [0069, 0093] ✅ [gotchas.md, patterns.md, 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)
ConformanceRunnerPort ❌ ❌ ✅ ports.md ✅ README.md ✅ FakeConformanceRunner 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, 0146] ✅ [observability-port.md] ✅ ports.md ✅ RUNBOOK.md ✅ FakeObservability N/A (per-adapter, ADR-0047) N/A (per-adapter, ADR-0047)
PRPort ✅ [0002, 0045, 0052, 0056, 0068, 0069, 0075, 0077, 0109, 0115] ✅ [architecture-async-control.md, architecture-layers.md, dark-factory.md, diagram-loop.md, fake-coverage-auditor-loop.md, gotchas.md, hitl-item.md, pr-port.md, testing.md] ✅ ports.md ✅ README.md ✅ FakeGitHub 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, 0112, 0137] ✅ [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).