Coverage report: 100%

Files Functions Classes

coverage.py v7.14.1, created at 2026-06-16 18:07 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
src/keel/__init__.py (no function)   100% 1 0 0   100% 0 0   100%
src/keel/activity.py activity_contract_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/activity.py configured_activity_dir   100% 6 0 0   100% 2 0   100%
src/keel/activity.py resolve_dir   100% 11 0 0   100% 2 0   100%
src/keel/activity.py run_id_slug   100% 6 0 0   100% 4 0   100%
src/keel/activity.py record_path   100% 1 0 0   100% 0 0   100%
src/keel/activity.py _phase_ids   100% 1 0 0   100% 0 0   100%
src/keel/activity.py build_activity_record   100% 7 0 0   100% 6 0   100%
src/keel/activity.py validate_activity   100% 15 0 0   100% 14 0   100%
src/keel/activity.py encode_activity   100% 2 0 0   100% 0 0   100%
src/keel/activity.py parse_activity   100% 6 0 0   100% 0 0   100%
src/keel/activity.py read_activity   100% 4 0 0   100% 2 0   100%
src/keel/activity.py write_activity   100% 3 0 0   100% 0 0   100%
src/keel/activity.py remove_activity   100% 5 0 0   100% 2 0   100%
src/keel/activity.py read_all_activity   100% 11 0 0   100% 4 0   100%
src/keel/activity.py (no function)   100% 27 0 0   100% 0 0   100%
src/keel/agents.py split_delegate   100% 2 0 0   100% 0 0   100%
src/keel/agents.py resolve_agent   100% 5 0 0   100% 4 0   100%
src/keel/agents.py model_base   100% 12 0 0   100% 6 0   100%
src/keel/agents.py agent_label   100% 1 0 0   100% 0 0   100%
src/keel/agents.py model_label   100% 2 0 0   100% 0 0   100%
src/keel/agents.py attribution   100% 2 0 0   100% 0 0   100%
src/keel/agents.py (no function)   100% 9 0 0   100% 0 0   100%
src/keel/artifacts.py contract_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/artifacts.py render_pr_body   100% 11 0 0   100% 2 0   100%
src/keel/artifacts.py render_issue_update   100% 2 0 0   100% 0 0   100%
src/keel/artifacts.py render_review_verdict   100% 9 0 0   100% 4 0   100%
src/keel/artifacts.py render_jury_verdict   100% 6 0 0   100% 0 0   100%
src/keel/artifacts.py render_extension_result   100% 7 0 0   100% 0 0   100%
src/keel/artifacts.py render_step_handoff   100% 4 0 0   100% 0 0   100%
src/keel/artifacts.py render_run_control_halt   100% 2 0 0   100% 0 0   100%
src/keel/artifacts.py _finding_lines   100% 9 0 0   100% 6 0   100%
src/keel/artifacts.py _string_bullets   100% 1 0 0   100% 0 0   100%
src/keel/artifacts.py _closing_reference   100% 1 0 0   100% 0 0   100%
src/keel/artifacts.py _issue   100% 1 0 0   100% 0 0   100%
src/keel/artifacts.py _pr   100% 1 0 0   100% 0 0   100%
src/keel/artifacts.py slug   100% 2 0 0   100% 0 0   100%
src/keel/artifacts.py _slug   100% 1 0 0   100% 0 0   100%
src/keel/artifacts.py _value   100% 3 0 0   100% 2 0   100%
src/keel/artifacts.py (no function)   100% 24 0 0   100% 0 0   100%
src/keel/branchscope.py verify   100% 14 0 0   100% 8 0   100%
src/keel/branchscope.py _check_ancestry   100% 9 0 0   100% 4 0   100%
src/keel/branchscope.py _check_isolation   100% 8 0 0   100% 6 0   100%
src/keel/branchscope.py _is_nested   100% 5 0 0   100% 2 0   100%
src/keel/branchscope.py _segments   100% 2 0 0   100% 0 0   100%
src/keel/branchscope.py (no function)   100% 9 0 0   100% 0 0   100%
src/keel/capabilities.py validate_names   100% 6 0 0   100% 4 0   100%
src/keel/capabilities.py (no function)   100% 3 0 0   100% 0 0   100%
src/keel/capture.py CaptureMarker.as_text   100% 1 0 0   100% 0 0   100%
src/keel/capture.py CaptureMarker.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/capture.py contract_as_dict   100% 2 0 0   100% 0 0   100%
src/keel/capture.py learning_quality_contract_as_dict   100% 3 0 0   100% 0 0   100%
src/keel/capture.py marker_text   100% 3 0 0   100% 0 0   100%
src/keel/capture.py build_marker   100% 4 0 0   100% 2 0   100%
src/keel/capture.py normalize_status   100% 14 0 0   100% 10 0   100%
src/keel/capture.py parse_marker   100% 6 0 0   100% 2 0   100%
src/keel/capture.py record_marker   100% 10 0 0   100% 4 0   100%
src/keel/capture.py learning_decision   100% 16 0 0   100% 12 0   100%
src/keel/capture.py learning_fingerprint   100% 5 0 0   100% 0 0   100%
src/keel/capture.py verify_session   100% 5 0 0   100% 0 0   100%
src/keel/capture.py reconcile_session   100% 7 0 0   100% 0 0   100%
src/keel/capture.py recursion_guard   100% 4 0 0   100% 0 0   100%
src/keel/capture.py _merged_pr_info   100% 6 0 0   100% 4 0   100%
src/keel/capture.py _reconcile_pr   100% 21 0 0   100% 14 0   100%
src/keel/capture.py _verify_pr   100% 13 0 0   100% 6 0   100%
src/keel/capture.py _reconcile_result   100% 1 0 0   100% 0 0   100%
src/keel/capture.py _reconcile_marker_decision   100% 10 0 0   100% 8 0   100%
src/keel/capture.py _linked_issue_numbers   100% 11 0 0   100% 8 0   100%
src/keel/capture.py _action   100% 11 0 0   100% 8 0   100%
src/keel/capture.py _capture_policy   100% 4 0 0   100% 2 0   100%
src/keel/capture.py _learning_policy   100% 3 0 0   100% 0 0   100%
src/keel/capture.py _learning_dedupe_enabled   100% 4 0 0   100% 2 0   100%
src/keel/capture.py _marker_reason   100% 8 0 0   100% 6 0   100%
src/keel/capture.py _strings   100% 3 0 0   100% 2 0   100%
src/keel/capture.py _positive_ints   100% 3 0 0   100% 2 0   100%
src/keel/capture.py _duplicate_learning_fingerprint   100% 13 0 0   100% 10 0   100%
src/keel/capture.py _learning_result   100% 6 0 0   100% 4 0   100%
src/keel/capture.py _policy_reason   100% 2 0 0   100% 0 0   100%
src/keel/capture.py _normalize_text   100% 1 0 0   100% 0 0   100%
src/keel/capture.py _normalize_path   100% 1 0 0   100% 0 0   100%
src/keel/capture.py (no function)   100% 51 0 0   100% 0 0   100%
src/keel/captureverify.py reconcile   100% 7 0 0   100% 2 0   100%
src/keel/captureverify.py _reconcile_pr   100% 13 0 0   100% 6 0   100%
src/keel/captureverify.py _finding   100% 3 0 0   100% 0 0   100%
src/keel/captureverify.py _capture_artifact   100% 7 0 0   100% 4 0   100%
src/keel/captureverify.py _recorded_reviewer_count   100% 9 0 0   100% 6 0   100%
src/keel/captureverify.py (no function)   100% 12 0 0   100% 0 0   100%
src/keel/checkpoint.py checkpoint_contract_as_dict   100% 2 0 0   100% 0 0   100%
src/keel/checkpoint.py configured_checkpoint_path   100% 6 0 0   100% 2 0   100%
src/keel/checkpoint.py resolve_path   100% 11 0 0   100% 2 0   100%
src/keel/checkpoint.py build_checkpoint_record   100% 3 0 0   100% 0 0   100%
src/keel/checkpoint.py encode_checkpoint   100% 2 0 0   100% 0 0   100%
src/keel/checkpoint.py parse_checkpoint   100% 6 0 0   100% 0 0   100%
src/keel/checkpoint.py read_checkpoint   100% 4 0 0   100% 2 0   100%
src/keel/checkpoint.py write_checkpoint   100% 3 0 0   100% 0 0   100%
src/keel/checkpoint.py resume_plan_as_dict   100% 54 0 0   100% 22 0   100%
src/keel/checkpoint.py covering_checkpoint   100% 17 0 0   100% 8 0   100%
src/keel/checkpoint.py find_orphans   100% 4 0 0   100% 0 0   100%
src/keel/checkpoint.py _known_references   100% 21 0 0   100% 14 0   100%
src/keel/checkpoint.py validate_checkpoint   100% 36 0 0   100% 30 0   100%
src/keel/checkpoint.py _live_state   100% 1 0 0   100% 0 0   100%
src/keel/checkpoint.py (no function)   100% 33 0 0   100% 0 0   100%
src/keel/classify.py _matches_any   100% 1 0 0   100% 0 0   100%
src/keel/classify.py tier_for_files   100% 7 0 0   100% 6 0   100%
src/keel/classify.py (no function)   100% 5 0 0   100% 0 0   100%
src/keel/cli.py _gate_runner   100% 3 0 0   100% 0 0   100%
src/keel/cli.py _gate_runner.run   100% 3 0 0   100% 2 0   100%
src/keel/cli.py _cmd_version   100% 2 0 0   100% 0 0   100%
src/keel/cli.py _cmd_validate   100% 23 0 0   100% 4 0   100%
src/keel/cli.py _autostamp   100% 16 0 0   100% 8 0   100%
src/keel/cli.py _plan_stamp_activity   100% 4 0 0   100% 2 0   100%
src/keel/cli.py _cmd_plan   100% 47 0 0   100% 6 0   100%
src/keel/cli.py _cmd_run_gates   100% 37 0 0   100% 12 0   100%
src/keel/cli.py _cmd_window   100% 15 0 0   100% 2 0   100%
src/keel/cli.py _cmd_claim   100% 9 0 0   100% 4 0   100%
src/keel/cli.py _cmd_release   100% 9 0 0   100% 4 0   100%
src/keel/cli.py _cmd_worktree_remove   100% 12 0 0   100% 4 0   100%
src/keel/cli.py _parse_labels   100% 3 0 0   100% 2 0   100%
src/keel/cli.py _gather_issue_facts   100% 19 0 0   100% 10 0   100%
src/keel/cli.py _cmd_guard   100% 25 0 0   100% 4 0   100%
src/keel/cli.py _hotfix_justification   100% 19 0 0   100% 12 0   100%
src/keel/cli.py _checkpoint_gate   100% 20 0 0   100% 10 0   100%
src/keel/cli.py _cmd_merge   100% 103 0 0   100% 42 0   100%
src/keel/cli.py _cmd_ship   100% 145 0 7   100% 50 0   100%
src/keel/cli.py _cmd_ledger   100% 27 0 0   100% 4 0   100%
src/keel/cli.py _cmd_capture_verify   100% 43 0 0   100% 14 0   100%
src/keel/cli.py _cmd_consent_verify   100% 32 0 0   100% 6 0   100%
src/keel/cli.py _consent_ledger_record   100% 5 0 0   100% 2 0   100%
src/keel/cli.py _consent_observed_effects   100% 6 0 0   100% 2 0   100%
src/keel/cli.py _cmd_close_reconcile   100% 30 0 0   100% 6 0   100%
src/keel/cli.py _done_label   100% 4 0 0   100% 0 0   100%
src/keel/cli.py _close_ledger_records   100% 4 0 0   100% 2 0   100%
src/keel/cli.py _close_observed_issues   100% 11 0 0   100% 4 0   100%
src/keel/cli.py _cmd_dryrun_verify   100% 28 0 0   100% 6 0   100%
src/keel/cli.py _dryrun_snapshot_from_json   100% 4 0 0   100% 2 0   100%
src/keel/cli.py _dryrun_after_snapshot   100% 11 0 0   100% 4 0   100%
src/keel/cli.py _dryrun_live_prs   100% 13 0 0   100% 8 0   100%
src/keel/cli.py _reconcile_inputs_active   100% 1 0 0   100% 0 0   100%
src/keel/cli.py _capture_verify_merged_prs   100% 15 0 0   100% 8 0   100%
src/keel/cli.py _merged_prs_from_json   100% 7 0 0   100% 4 0   100%
src/keel/cli.py _merged_prs_from_transport   100% 13 0 0   100% 4 0   100%
src/keel/cli.py _capture_verify_verdict_counts   100% 18 0 0   100% 6 0   100%
src/keel/cli.py _cmd_capture_reconcile   100% 32 0 0   100% 8 0   100%
src/keel/cli.py _cmd_step_verify   100% 20 0 0   100% 4 0   100%
src/keel/cli.py _cmd_runcontrols   100% 22 0 0   100% 8 0   100%
src/keel/cli.py _cmd_review   100% 104 0 0   100% 24 0   100%
src/keel/cli.py _cmd_post_comment   100% 46 0 0   100% 8 0   100%
src/keel/cli.py _post_artifact_comment   100% 26 0 0   100% 10 0   100%
src/keel/cli.py _cmd_evidence_verify   100% 48 0 0   100% 10 0   100%
src/keel/cli.py _cmd_scope_verify   100% 36 0 0   100% 10 0   100%
src/keel/cli.py _cmd_verify_branch   100% 29 0 0   100% 6 0   100%
src/keel/cli.py _gather_branch_facts   100% 30 0 0   100% 16 0   100%
src/keel/cli.py _owner_repo_from_args   100% 2 0 0   100% 0 0   100%
src/keel/cli.py _linked_flag   100% 3 0 0   100% 2 0   100%
src/keel/cli.py _local_worktree_facts   100% 11 0 0   100% 8 0   100%
src/keel/cli.py _parse_worktree_porcelain   100% 10 0 0   100% 6 0   100%
src/keel/cli.py _scope_ledger_record   100% 5 0 0   100% 2 0   100%
src/keel/cli.py _cmd_status   100% 26 0 0   100% 2 0   100%
src/keel/cli.py _cmd_checkpoint   100% 32 0 0   100% 6 0   100%
src/keel/cli.py _cmd_activity   100% 36 0 0   100% 8 0   100%
src/keel/cli.py _emit_activity   100% 9 0 0   100% 6 0   100%
src/keel/cli.py _cmd_resume   100% 27 0 0   100% 4 0   100%
src/keel/cli.py _cmd_standalone   100% 109 0 0   100% 42 0   100%
src/keel/cli.py _standalone_target   100% 39 0 0   100% 24 0   100%
src/keel/cli.py _issue_labels   100% 4 0 0   100% 2 0   100%
src/keel/cli.py _lock_root   100% 1 0 0   100% 0 0   100%
src/keel/cli.py _finish_merge   100% 31 0 0   100% 18 0   100%
src/keel/cli.py _merge_snapshot   100% 10 0 0   100% 2 0   100%
src/keel/cli.py _ci_rollup_state   100% 19 0 0   100% 10 0   100%
src/keel/cli.py _verify_merge_evidence   100% 11 0 0   100% 0 0   100%
src/keel/cli.py _validated_worktree_path   100% 12 0 0   100% 6 0   100%
src/keel/cli.py _issue_context_provided   100% 1 0 0   100% 0 0   100%
src/keel/cli.py _load_evidence_artifacts   100% 31 0 0   100% 10 0   100%
src/keel/cli.py _evidence_ledger_record   100% 5 0 0   100% 2 0   100%
src/keel/cli.py _label_names   100% 3 0 0   100% 2 0   100%
src/keel/cli.py _dedupe_preserve   100% 1 0 0   100% 0 0   100%
src/keel/cli.py _owner_repo   100% 3 0 0   100% 2 0   100%
src/keel/cli.py _run_context_warnings   100% 6 0 0   100% 4 0   100%
src/keel/cli.py _nonblank   100% 1 0 0   100% 0 0   100%
src/keel/cli.py _comment_artifact_marker   100% 2 0 0   100% 0 0   100%
src/keel/cli.py _parse_comment_target   100% 4 0 0   100% 2 0   100%
src/keel/cli.py _looks_like_body_file_literal   100% 2 0 0   100% 0 0   100%
src/keel/cli.py _find_comment_match   100% 11 0 0   100% 8 0   100%
src/keel/cli.py _comment_has_run_id   100% 2 0 0   100% 0 0   100%
src/keel/cli.py _finish_post_comment   100% 12 0 0   100% 6 0   100%
src/keel/cli.py _read_optional_text   100% 1 0 0   100% 0 0   100%
src/keel/cli.py _read_json_object   100% 4 0 0   100% 2 0   100%
src/keel/cli.py _dedupe_ints   100% 7 0 0   100% 4 0   100%
src/keel/cli.py _read_json_list   100% 7 0 0   100% 4 0   100%
src/keel/cli.py _write_json_list   100% 3 0 0   100% 0 0   100%
src/keel/cli.py _read_optional_json_list   100% 3 0 0   100% 2 0   100%
src/keel/cli.py _event_from_args   100% 7 0 0   100% 4 0   100%
src/keel/cli.py _step_caps_from_args   100% 14 0 0   100% 6 0   100%
src/keel/cli.py _verdict_count_arg   100% 11 0 0   100% 4 0   100%
src/keel/cli.py _gh_json   100% 8 0 0   100% 4 0   100%
src/keel/cli.py _gh_json_list   100% 10 0 0   100% 6 0   100%
src/keel/cli.py _pr_changed_files   100% 2 0 0   100% 0 0   100%
src/keel/cli.py _linked_issue_from_body   100% 2 0 0   100% 0 0   100%
src/keel/cli.py _approved_consent   100% 21 0 0   100% 16 0   100%
src/keel/cli.py _consent_mode   100% 5 0 0   100% 2 0   100%
src/keel/cli.py _has_live_consent_scope   100% 4 0 0   100% 2 0   100%
src/keel/cli.py _ci_check_capability_requirement   100% 4 0 0   100% 2 0   100%
src/keel/cli.py _morning_capability_requirement   100% 10 0 0   100% 4 0   100%
src/keel/cli.py _scan_capability_requirement   100% 4 0 0   100% 2 0   100%
src/keel/cli.py _cmd_capabilities   100% 25 0 0   100% 8 0   100%
src/keel/cli.py _cmd_project_commands   100% 25 0 0   100% 10 0   100%
src/keel/cli.py _ask   100% 0 0 2   100% 0 0   100%
src/keel/cli.py _cmd_init   100% 21 0 0   100% 6 0   100%
src/keel/cli.py _render_scaffolded_config   100% 6 0 0   100% 2 0   100%
src/keel/cli.py _report_install   100% 4 0 0   100% 4 0   100%
src/keel/cli.py _report_adapter_rows   100% 4 0 0   100% 4 0   100%
src/keel/cli.py _project_only_commands   100% 8 0 0   100% 2 0   100%
src/keel/cli.py _scan_orphans   100% 1 0 0   100% 0 0   100%
src/keel/cli.py _report_orphan_rows   100% 2 0 0   100% 2 0   100%
src/keel/cli.py _fetch_latest_pypi_version   100% 9 0 3   100% 0 0   100%
src/keel/cli.py _doctor_state_paths   100% 9 0 0   100% 2 0   100%
src/keel/cli.py _cmd_doctor   100% 22 0 0   100% 6 0   100%
src/keel/cli.py _cmd_install_adapter   100% 17 0 0   100% 8 0   100%
src/keel/cli.py _cmd_setup   100% 42 0 0   100% 10 0   100%
src/keel/cli.py _cmd_adapter_status   100% 19 0 0   100% 6 0   100%
src/keel/cli.py _cmd_update_adapter   100% 9 0 0   100% 2 0   100%
src/keel/cli.py _cmd_sync   100% 11 0 0   100% 4 0   100%
src/keel/cli.py _parse_legacy_mapping   100% 6 0 0   100% 4 0   100%
src/keel/cli.py _cmd_install_legacy_wrappers   100% 22 0 0   100% 8 0   100%
src/keel/cli.py _capability_requirement   100% 20 0 0   100% 12 0   100%
src/keel/cli.py build_parser   100% 498 0 0   100% 0 0   100%
src/keel/cli.py _add_ship_parser   100% 40 0 0   100% 0 0   100%
src/keel/cli.py _positive_int   100% 4 0 0   100% 2 0   100%
src/keel/cli.py _nonnegative_int   100% 4 0 0   100% 2 0   100%
src/keel/cli.py _parse_pr_issue_mapping   100% 9 0 0   100% 2 0   100%
src/keel/cli.py _capture_status_arg   100% 7 0 0   100% 2 0   100%
src/keel/cli.py main   100% 14 0 0   100% 2 0   100%
src/keel/cli.py (no function)   100% 141 0 1   100% 0 0   100%
src/keel/closeorder.py ObservedIssue.has_label   100% 1 0 0   100% 0 0   100%
src/keel/closeorder.py record_attests_merge   100% 11 0 0   100% 8 0   100%
src/keel/closeorder.py latest_record_for_issue   100% 11 0 0   100% 8 0   100%
src/keel/closeorder.py reconcile   100% 15 0 0   100% 6 0   100%
src/keel/closeorder.py (no function)   100% 20 0 0   100% 0 0   100%
src/keel/closure.py contract_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/closure.py render_closure_comment   100% 13 0 0   100% 0 0   100%
src/keel/closure.py _target_line   100% 3 0 0   100% 2 0   100%
src/keel/closure.py _reviewers   100% 11 0 0   100% 6 0   100%
src/keel/closure.py _is_reviewer   100% 1 0 0   100% 0 0   100%
src/keel/closure.py _is_jury   100% 1 0 0   100% 0 0   100%
src/keel/closure.py _pull_request   100% 2 0 0   100% 0 0   100%
src/keel/closure.py _changed_files   100% 8 0 0   100% 0 0   100%
src/keel/closure.py _docs_touched   100% 4 0 0   100% 0 0   100%
src/keel/closure.py _is_doc   100% 6 0 0   100% 4 0   100%
src/keel/closure.py _capture   100% 10 0 0   100% 4 0   100%
src/keel/closure.py _learning   100% 8 0 0   100% 4 0   100%
src/keel/closure.py _run_context   100% 2 0 0   100% 0 0   100%
src/keel/closure.py _unknown   100% 3 0 0   100% 2 0   100%
src/keel/closure.py _jury_mode   100% 3 0 0   100% 2 0   100%
src/keel/closure.py _consent   100% 7 0 0   100% 0 0   100%
src/keel/closure.py _is_scope   100% 1 0 0   100% 0 0   100%
src/keel/closure.py _value   100% 3 0 0   100% 2 0   100%
src/keel/closure.py (no function)   100% 26 0 0   100% 0 0   100%
src/keel/config.py ConfigError.__init__   100% 4 0 0   100% 0 0   100%
src/keel/config.py load_schema   100% 1 0 0   100% 0 0   100%
src/keel/config.py validate_data   100% 1 0 0   100% 0 0   100%
src/keel/config.py ProjectConfig.slot   100% 3 0 0   100% 2 0   100%
src/keel/config.py _build   100% 6 0 0   100% 0 0   100%
src/keel/config.py parse_config   100% 13 0 0   100% 10 0   100%
src/keel/config.py load_config   100% 3 0 0   100% 0 0   100%
src/keel/config.py config_hash   100% 2 0 0   100% 0 0   100%
src/keel/config.py _policy_capability_fields   100% 11 0 0   100% 10 0   100%
src/keel/config.py _canonical   100% 1 0 0   100% 0 0   100%
src/keel/config.py (no function)   100% 60 0 0   100% 0 0   100%
src/keel/consent.py side_effect_scopes   100% 12 0 0   100% 8 0   100%
src/keel/consent.py capability_side_effects   100% 4 0 0   100% 2 0   100%
src/keel/consent.py escalation_contract_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/consent.py evaluate_escalation   100% 7 0 0   100% 0 0   100%
src/keel/consent.py normalize_scopes   100% 13 0 0   100% 10 0   100%
src/keel/consent.py build_consent_contract   100% 15 0 0   100% 4 0   100%
src/keel/consent.py assert_operator_consent   100% 5 0 0   100% 2 0   100%
src/keel/consent.py _status   100% 7 0 0   100% 6 0   100%
src/keel/consent.py _prompt   100% 7 0 0   100% 2 0   100%
src/keel/consent.py _record   100% 2 0 0   100% 0 0   100%
src/keel/consent.py _sort_scopes   100% 1 0 0   100% 0 0   100%
src/keel/consent.py _risk_tier   100% 1 0 0   100% 0 0   100%
src/keel/consent.py _trust_signal   100% 1 0 0   100% 0 0   100%
src/keel/consent.py _sample   100% 3 0 0   100% 0 0   100%
src/keel/consent.py _escalation_reason   100% 15 0 0   100% 14 0   100%
src/keel/consent.py (no function)   100% 30 0 0   100% 0 0   100%
src/keel/consentverify.py ObservedEffects.as_kinds   100% 10 0 0   100% 8 0   100%
src/keel/consentverify.py required_scopes_for_effect   100% 5 0 0   100% 2 0   100%
src/keel/consentverify.py scope_effect_table   100% 1 0 0   100% 0 0   100%
src/keel/consentverify.py reconcile   100% 12 0 0   100% 4 0   100%
src/keel/consentverify.py _verdict   100% 3 0 0   100% 2 0   100%
src/keel/consentverify.py consent_record_from_ledger   100% 11 0 0   100% 4 0   100%
src/keel/consentverify.py (no function)   100% 23 0 0   100% 0 0   100%
src/keel/contracts.py available_commands   100% 1 0 0   100% 0 0   100%
src/keel/contracts.py command_graph   100% 5 0 0   100% 2 0   100%
src/keel/contracts.py build_command_contract   100% 27 0 0   100% 20 0   100%
src/keel/contracts.py workflow_profile   100% 27 0 0   100% 26 0   100%
src/keel/contracts.py command_side_effects   100% 10 0 0   100% 6 0   100%
src/keel/contracts.py reporting_contract_as_dict   100% 9 0 0   100% 6 0   100%
src/keel/contracts.py project_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/contracts.py gate_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/contracts.py extension_hooks_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/contracts.py ship_result_as_dict   100% 18 0 0   100% 4 0   100%
src/keel/contracts.py _testing_summary   100% 12 0 0   100% 8 0   100%
src/keel/contracts.py _docs_impact   100% 4 0 0   100% 2 0   100%
src/keel/contracts.py _is_doc_path   100% 2 0 0   100% 0 0   100%
src/keel/contracts.py _finding_summaries   100% 1 0 0   100% 0 0   100%
src/keel/contracts.py standalone_result_as_dict   100% 16 0 0   100% 12 0   100%
src/keel/contracts.py feedback_workflow_as_dict   100% 3 0 0   100% 0 0   100%
src/keel/contracts.py scan_contract_as_dict   100% 12 0 0   100% 4 0   100%
src/keel/contracts.py session_contract_as_dict   100% 13 0 0   100% 8 0   100%
src/keel/contracts.py morning_contract_as_dict   100% 6 0 0   100% 0 0   100%
src/keel/contracts.py _health_provider_as_dict   100% 12 0 0   100% 6 0   100%
src/keel/contracts.py _missing_capabilities   100% 4 0 0   100% 2 0   100%
src/keel/contracts.py _priority_sources   100% 8 0 0   100% 6 0   100%
src/keel/contracts.py _report_destinations   100% 1 0 0   100% 0 0   100%
src/keel/contracts.py _deferral_queue_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/contracts.py _feedback_workflow_policy   100% 5 0 0   100% 2 0   100%
src/keel/contracts.py _deep_merge   100% 14 0 0   100% 12 0   100%
src/keel/contracts.py _scan_int   100% 2 0 0   100% 0 0   100%
src/keel/contracts.py _scan_float   100% 2 0 0   100% 0 0   100%
src/keel/contracts.py _target_identifier   100% 6 0 0   100% 4 0   100%
src/keel/contracts.py _adapter_steps   100% 12 0 0   100% 6 0   100%
src/keel/contracts.py _finding_as_dict   100% 2 0 0   100% 0 0   100%
src/keel/contracts.py (no function)   100% 47 0 0   100% 0 0   100%
src/keel/doctor.py CheckResult.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/doctor.py _parse_version   100% 3 0 0   100% 2 0   100%
src/keel/doctor.py _pad   100% 2 0 0   100% 0 0   100%
src/keel/doctor.py constraint_satisfied   100% 22 0 2   100% 14 0   100%
src/keel/doctor.py _check_cli_version   100% 12 0 0   100% 8 0   100%
src/keel/doctor.py _check_adapter_version   100% 10 0 0   100% 8 0   100%
src/keel/doctor.py _check_orphan_adapters   100% 3 0 0   100% 2 0   100%
src/keel/doctor.py _check_core_version   100% 9 0 0   100% 6 0   100%
src/keel/doctor.py _check_state_paths   100% 8 0 0   100% 6 0   100%
src/keel/doctor.py run_doctor   100% 6 0 0   100% 2 0   100%
src/keel/doctor.py render_report   100% 7 0 0   100% 2 0   100%
src/keel/doctor.py (no function)   100% 27 0 0   100% 0 0   100%
src/keel/dryrunverify.py issue_branch_pattern   100% 2 0 0   100% 0 0   100%
src/keel/dryrunverify.py reconcile   100% 15 0 0   100% 6 0   100%
src/keel/dryrunverify.py _added   100% 8 0 0   100% 4 0   100%
src/keel/dryrunverify.py (no function)   100% 19 0 0   100% 0 0   100%
src/keel/evidence.py EvidenceItem.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/evidence.py gate_active   100% 3 0 0   100% 2 0   100%
src/keel/evidence.py gate_decision   100% 14 0 0   100% 12 0   100%
src/keel/evidence.py _gate_decision   100% 1 0 0   100% 0 0   100%
src/keel/evidence.py _has_trusted_ship_assessment   100% 1 0 0   100% 0 0   100%
src/keel/evidence.py _is_ship_assessment_source   100% 5 0 0   100% 2 0   100%
src/keel/evidence.py contract_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/evidence.py required_items   100% 13 0 0   100% 6 0   100%
src/keel/evidence.py verify   100% 21 0 0   100% 6 0   100%
src/keel/evidence.py _require_distinct_vendors   100% 2 0 0   100% 0 0   100%
src/keel/evidence.py _distinct_vendor_finding   100% 12 0 0   100% 8 0   100%
src/keel/evidence.py _result_reason   100% 5 0 0   100% 4 0   100%
src/keel/evidence.py _closure_mismatch_scopes   100% 8 0 0   100% 6 0   100%
src/keel/evidence.py _evidence_counts   100% 2 0 0   100% 0 0   100%
src/keel/evidence.py _is_present   100% 10 0 0   100% 8 0   100%
src/keel/evidence.py _body   100% 2 0 0   100% 0 0   100%
src/keel/evidence.py _has_closure_marker   100% 1 0 0   100% 0 0   100%
src/keel/evidence.py _normalize_closure_body   100% 9 0 0   100% 6 0   100%
src/keel/evidence.py closure_body_matches_record   100% 2 0 0   100% 0 0   100%
src/keel/evidence.py _is_closure_comment   100% 7 0 0   100% 6 0   100%
src/keel/evidence.py _run_context_findings   100% 9 0 0   100% 6 0   100%
src/keel/evidence.py _has_empty_run_context   100% 4 0 0   100% 2 0   100%
src/keel/evidence.py _run_context_fields   100% 14 0 0   100% 10 0   100%
src/keel/evidence.py _is_trusted_source   100% 6 0 0   100% 4 0   100%
src/keel/evidence.py _is_ship_assessment   100% 1 0 0   100% 0 0   100%
src/keel/evidence.py count_review_verdicts   100% 2 0 0   100% 0 0   100%
src/keel/evidence.py _review_evidence_keys   100% 11 0 0   100% 8 0   100%
src/keel/evidence.py _review_vendor_provenance   100% 15 0 0   100% 10 0   100%
src/keel/evidence.py distinct_vendor_check   100% 15 0 0   100% 10 0   100%
src/keel/evidence.py agent_label_vendors   100% 8 0 0   100% 6 0   100%
src/keel/evidence.py ledger_implementer_vendor   100% 9 0 0   100% 4 0   100%
src/keel/evidence.py attribution_check   100% 7 0 0   100% 4 0   100%
src/keel/evidence.py _attribution_finding   100% 10 0 0   100% 6 0   100%
src/keel/evidence.py _reviewer_key   100% 9 0 0   100% 4 0   100%
src/keel/evidence.py _matches_head   100% 8 0 0   100% 4 0   100%
src/keel/evidence.py _fields   100% 1 0 0   100% 0 0   100%
src/keel/evidence.py _is_review_verdict_body   100% 5 0 0   100% 4 0   100%
src/keel/evidence.py _has_trusted_review_marker   100% 1 0 0   100% 0 0   100%
src/keel/evidence.py _is_jury_verdict   100% 6 0 0   100% 4 0   100%
src/keel/evidence.py (no function)   100% 63 0 0   100% 0 0   100%
src/keel/extensions.py split_frontmatter   100% 9 0 0   100% 6 0   100%
src/keel/extensions.py parse_extension   100% 42 0 0   100% 26 0   100%
src/keel/extensions.py load_extensions   100% 18 0 0   100% 6 0   100%
src/keel/extensions.py (no function)   100% 29 0 2   100% 0 0   100%
src/keel/findings.py Finding.__post_init__   100% 2 0 0   100% 2 0   100%
src/keel/findings.py decision_for   100% 4 0 0   100% 0 0   100%
src/keel/findings.py is_anchorable   100% 1 0 0   100% 0 0   100%
src/keel/findings.py sort_findings   100% 1 0 0   100% 0 0   100%
src/keel/findings.py summarize   100% 7 0 0   100% 4 0   100%
src/keel/findings.py (no function)   100% 27 0 0   100% 0 0   100%
src/keel/flows.py _ship_flow   100% 1 0 0   100% 0 0   100%
src/keel/flows.py _flow   100% 1 0 0   100% 0 0   100%
src/keel/flows.py command_names   100% 1 0 0   100% 0 0   100%
src/keel/flows.py flow_for   100% 1 0 0   100% 0 0   100%
src/keel/flows.py is_known   100% 1 0 0   100% 0 0   100%
src/keel/flows.py (no function)   100% 18 0 0   100% 0 0   100%
src/keel/gates.py plan_gates   100% 16 0 0   100% 16 0   100%
src/keel/gates.py run_gates   100% 20 0 0   100% 10 0   100%
src/keel/gates.py collect_findings   100% 4 0 0   100% 2 0   100%
src/keel/gates.py (no function)   100% 31 0 3   100% 0 0   100%
src/keel/git.py fetch   100% 1 0 0   100% 0 0   100%
src/keel/git.py worktree_add   100% 1 0 0   100% 0 0   100%
src/keel/git.py worktree_remove   100% 1 0 0   100% 0 0   100%
src/keel/git.py worktree_list   100% 1 0 0   100% 0 0   100%
src/keel/git.py current_branch   100% 2 0 0   100% 0 0   100%
src/keel/git.py list_branches   100% 1 0 0   100% 0 0   100%
src/keel/git.py rev_parse   100% 3 0 0   100% 0 0   100%
src/keel/git.py merge_base   100% 3 0 0   100% 0 0   100%
src/keel/git.py rev_count   100% 7 0 0   100% 4 0   100%
src/keel/git.py changed_files   100% 4 0 0   100% 2 0   100%
src/keel/git.py diff   100% 2 0 0   100% 0 0   100%
src/keel/git.py _kw   100% 1 0 0   100% 0 0   100%
src/keel/git.py (no function)   100% 14 0 0   100% 0 0   100%
src/keel/github.py open_pr   100% 1 0 0   100% 0 0   100%
src/keel/github.py ci_conclusion   100% 4 0 0   100% 2 0   100%
src/keel/github.py merged_prs   100% 4 0 0   100% 2 0   100%
src/keel/github.py list_prs   100% 4 0 0   100% 2 0   100%
src/keel/github.py pr_merge_snapshot   100% 1 0 0   100% 0 0   100%
src/keel/github.py merge_pr   100% 1 0 0   100% 0 0   100%
src/keel/github.py comment   100% 1 0 0   100% 0 0   100%
src/keel/github.py post_issue_comment   100% 1 0 0   100% 0 0   100%
src/keel/github.py edit_issue_comment   100% 1 0 0   100% 0 0   100%
src/keel/github.py close_issue   100% 1 0 0   100% 0 0   100%
src/keel/github.py issue_facts   100% 1 0 0   100% 0 0   100%
src/keel/github.py _kw   100% 1 0 0   100% 0 0   100%
src/keel/github.py (no function)   100% 14 0 0   100% 0 0   100%
src/keel/github_transport.py GitHubTransport.supports   100% 1 0 0   100% 0 0   100%
src/keel/github_transport.py GitHubTransport.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/github_transport.py GitHubTransport.render   100% 6 0 0   100% 4 0   100%
src/keel/github_transport.py resolve   100% 9 0 0   100% 6 0   100%
src/keel/github_transport.py _caps   100% 1 0 0   100% 0 0   100%
src/keel/github_transport.py (no function)   100% 17 0 0   100% 0 0   100%
src/keel/guard.py Rule.matches   100% 4 0 0   100% 2 0   100%
src/keel/guard.py GuardResult.is_blocker   100% 1 0 0   100% 0 0   100%
src/keel/guard.py GuardResult.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/guard.py resolve_rules   100% 6 0 0   100% 4 0   100%
src/keel/guard.py _build_rules   100% 31 0 0   100% 16 0   100%
src/keel/guard.py evaluate   100% 3 0 0   100% 0 0   100%
src/keel/guard.py evaluate_config   100% 1 0 0   100% 0 0   100%
src/keel/guard.py (no function)   100% 28 0 0   100% 0 0   100%
src/keel/install.py OrphanFileStatus.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/install.py _sha256   100% 1 0 0   100% 0 0   100%
src/keel/install.py _marker   100% 1 0 0   100% 0 0   100%
src/keel/install.py _with_marker   100% 2 0 0   100% 0 0   100%
src/keel/install.py _split_marker   100% 10 0 0   100% 6 0   100%
src/keel/install.py _expected_files   100% 9 0 0   100% 2 0   100%
src/keel/install.py adapter_names   100% 1 0 0   100% 0 0   100%
src/keel/install.py _split_frontmatter   100% 6 0 0   100% 4 0   100%
src/keel/install.py render_skill   100% 6 0 0   100% 0 0   100%
src/keel/install.py render_legacy_claude_wrapper   100% 1 0 0   100% 0 0   100%
src/keel/install.py render_legacy_skill_wrapper   100% 4 0 0   100% 0 0   100%
src/keel/install.py parity_ready_commands   100% 13 0 0   100% 8 0   100%
src/keel/install.py _legacy_expected_files   100% 11 0 0   100% 2 0   100%
src/keel/install.py default_legacy_mappings   100% 1 0 0   100% 0 0   100%
src/keel/install.py _validate_legacy_mappings   100% 8 0 0   100% 8 0   100%
src/keel/install.py install_legacy_wrappers   100% 18 0 0   100% 6 0   100%
src/keel/install.py install_all_legacy_wrappers   100% 1 0 0   100% 0 0   100%
src/keel/install.py _install_commands   100% 14 0 0   100% 4 0   100%
src/keel/install.py _install_skills   100% 16 0 0   100% 4 0   100%
src/keel/install.py install   100% 5 0 0   100% 4 0   100%
src/keel/install.py install_all   100% 1 0 0   100% 0 0   100%
src/keel/install.py plugin_files   100% 7 0 0   100% 2 0   100%
src/keel/install.py install_plugin   100% 13 0 0   100% 4 0   100%
src/keel/install.py adapter_status   100% 28 0 0   100% 16 0   100%
src/keel/install.py default_known_commands   100% 3 0 0   100% 0 0   100%
src/keel/install.py _surface_command_from_name   100% 8 0 0   100% 6 0   100%
src/keel/install.py scan_surface_orphans   100% 26 0 0   100% 16 0   100%
src/keel/install.py scan_adapter_markers   100% 15 0 0   100% 10 0   100%
src/keel/install.py update_adapters   100% 20 0 0   100% 10 0   100%
src/keel/install.py (no function)   100% 71 0 0   100% 0 0   100%
src/keel/intake.py IssueContext.provided   100% 1 0 0   100% 0 0   100%
src/keel/intake.py assess_issue   100% 39 0 0   100% 14 0   100%
src/keel/intake.py _sections   100% 10 0 0   100% 4 0   100%
src/keel/intake.py _normalize_heading   100% 1 0 0   100% 0 0   100%
src/keel/intake.py _objective   100% 6 0 0   100% 6 0   100%
src/keel/intake.py _deliverable   100% 5 0 0   100% 4 0   100%
src/keel/intake.py _acceptance_criteria   100% 5 0 0   100% 4 0   100%
src/keel/intake.py _first_sentence_or_bullet   100% 5 0 0   100% 2 0   100%
src/keel/intake.py _bullets   100% 7 0 0   100% 6 0   100%
src/keel/intake.py _sentences   100% 5 0 0   100% 2 0   100%
src/keel/intake.py _is_out_of_scope   100% 1 0 0   100% 0 0   100%
src/keel/intake.py _is_blocked   100% 3 0 0   100% 2 0   100%
src/keel/intake.py _blocked_summary   100% 5 0 0   100% 4 0   100%
src/keel/intake.py _is_actionable_blocker   100% 1 0 0   100% 0 0   100%
src/keel/intake.py _risk_inputs   100% 3 0 0   100% 0 0   100%
src/keel/intake.py _required_docs_tests   100% 2 0 0   100% 0 0   100%
src/keel/intake.py _unique   100% 1 0 0   100% 0 0   100%
src/keel/intake.py (no function)   100% 43 0 0   100% 0 0   100%
src/keel/jsonschema_min.py _type_matches   100% 8 0 0   100% 6 0   100%
src/keel/jsonschema_min.py validate   100% 3 0 0   100% 0 0   100%
src/keel/jsonschema_min.py _validate   100% 18 0 0   100% 16 0   100%
src/keel/jsonschema_min.py _validate_string   100% 6 0 0   100% 4 0   100%
src/keel/jsonschema_min.py _validate_array   100% 7 0 0   100% 6 0   100%
src/keel/jsonschema_min.py _validate_object   100% 18 0 0   100% 20 0   100%
src/keel/jsonschema_min.py _kind   100% 15 0 0   100% 14 0   100%
src/keel/jsonschema_min.py (no function)   100% 11 0 0   100% 0 0   100%
src/keel/jury.py map_severity   100% 1 0 0   100% 0 0   100%
src/keel/jury.py parse_findings   100% 14 0 0   100% 6 0   100%
src/keel/jury.py _kw   100% 1 0 0   100% 0 0   100%
src/keel/jury.py available   100% 1 0 0   100% 0 0   100%
src/keel/jury.py _oversize_finding   100% 1 0 0   100% 0 0   100%
src/keel/jury.py run_gate   100% 18 0 0   100% 8 0   100%
src/keel/jury.py (no function)   100% 14 0 0   100% 0 0   100%
src/keel/ledger.py ledger_contract_as_dict   100% 2 0 0   100% 0 0   100%
src/keel/ledger.py capture_health_contract_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/ledger.py configured_ledger_path   100% 6 0 0   100% 2 0   100%
src/keel/ledger.py resolve_path   100% 11 0 0   100% 2 0   100%
src/keel/ledger.py build_ship_run_record   100% 1 0 0   100% 0 0   100%
src/keel/ledger.py _declared_block   100% 4 0 0   100% 2 0   100%
src/keel/ledger.py declared_files_for_record   100% 7 0 0   100% 4 0   100%
src/keel/ledger.py _run_context   100% 2 0 0   100% 0 0   100%
src/keel/ledger.py _nonblank   100% 1 0 0   100% 0 0   100%
src/keel/ledger.py encode_record   100% 2 0 0   100% 0 0   100%
src/keel/ledger.py parse_records   100% 11 0 0   100% 4 0   100%
src/keel/ledger.py read_records   100% 4 0 0   100% 2 0   100%
src/keel/ledger.py latest_ship_run_for_pr   100% 9 0 0   100% 6 0   100%
src/keel/ledger.py record_gates_passed   100% 14 0 0   100% 12 0   100%
src/keel/ledger.py gates_pass_for_head   100% 17 0 0   100% 12 0   100%
src/keel/ledger.py capture_health_summary   100% 23 0 0   100% 16 0   100%
src/keel/ledger.py append_record   100% 4 0 0   100% 0 0   100%
src/keel/ledger.py sanitize_record   100% 4 0 0   100% 0 0   100%
src/keel/ledger.py _validate_record   100% 7 0 0   100% 6 0   100%
src/keel/ledger.py _capture_health_item   100% 12 0 0   100% 2 0   100%
src/keel/ledger.py _capture_health_status   100% 7 0 0   100% 6 0   100%
src/keel/ledger.py _capture_reconcile_action   100% 1 0 0   100% 0 0   100%
src/keel/ledger.py (no function)   100% 33 0 0   100% 0 0   100%
src/keel/lock.py ClaimResult.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/lock.py contract_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/lock.py claim_resource   100% 2 0 0   100% 0 0   100%
src/keel/lock.py release_resource   100% 2 0 0   100% 0 0   100%
src/keel/lock.py resource_claim   100% 5 0 0   100% 2 0   100%
src/keel/lock.py resource_path   100% 5 0 0   100% 0 0   100%
src/keel/lock.py merge_lock   100% 7 0 0   100% 2 0   100%
src/keel/lock.py _claim_path   100% 7 0 0   100% 0 0   100%
src/keel/lock.py _release_path   100% 15 0 0   100% 8 0   100%
src/keel/lock.py _write_owner   100% 1 0 0   100% 0 0   100%
src/keel/lock.py _holder   100% 9 0 0   100% 2 0   100%
src/keel/lock.py _clean   100% 1 0 0   100% 0 0   100%
src/keel/lock.py (no function)   100% 35 0 0   100% 0 0   100%
src/keel/model.py step_ids   100% 1 0 0   100% 0 0   100%
src/keel/model.py get_step   100% 1 0 0   100% 0 0   100%
src/keel/model.py step_for_slot   100% 1 0 0   100% 0 0   100%
src/keel/model.py slot_meta   100% 1 0 0   100% 0 0   100%
src/keel/model.py slots_for_step   100% 1 0 0   100% 0 0   100%
src/keel/model.py (no function)   100% 27 0 0   100% 0 0   100%
src/keel/orchestrator.py build_plan   100% 14 0 0   100% 8 0   100%
src/keel/orchestrator.py render_plan   100% 12 0 0   100% 6 0   100%
src/keel/orchestrator.py plan_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/orchestrator.py _slots_for_step   100% 1 0 0   100% 0 0   100%
src/keel/orchestrator.py _hooks_for_step   100% 5 0 0   100% 4 0   100%
src/keel/orchestrator.py _capability_summary   100% 6 0 0   100% 4 0   100%
src/keel/orchestrator.py (no function)   100% 37 0 0   100% 0 0   100%
src/keel/project_commands.py ProjectCommand.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/project_commands.py list_project_commands   100% 8 0 0   100% 4 0   100%
src/keel/project_commands.py get_project_command   100% 4 0 0   100% 4 0   100%
src/keel/project_commands.py _commands_from_map   100% 8 0 0   100% 6 0   100%
src/keel/project_commands.py (no function)   100% 20 0 0   100% 0 0   100%
src/keel/provenance.py contract_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/provenance.py source_tag   100% 2 0 0   100% 0 0   100%
src/keel/provenance.py tag_output   100% 1 0 0   100% 0 0   100%
src/keel/provenance.py normalize_tag   100% 6 0 0   100% 2 0   100%
src/keel/provenance.py _value   100% 1 0 0   100% 0 0   100%
src/keel/provenance.py _optional   100% 1 0 0   100% 0 0   100%
src/keel/provenance.py _capabilities   100% 3 0 0   100% 0 0   100%
src/keel/provenance.py (no function)   100% 12 0 0   100% 0 0   100%
src/keel/redaction.py policy_from_config   100% 4 0 0   100% 2 0   100%
src/keel/redaction.py sanitize   100% 4 0 0   100% 0 0   100%
src/keel/redaction.py contract_as_dict   100% 2 0 0   100% 0 0   100%
src/keel/redaction.py _configured_rule_ids   100% 12 0 0   100% 8 0   100%
src/keel/redaction.py _configured_rules   100% 27 0 0   100% 14 0   100%
src/keel/redaction.py _compile   100% 4 0 0   100% 0 0   100%
src/keel/redaction.py _sanitize_value   100% 7 0 0   100% 6 0   100%
src/keel/redaction.py _sanitize_string   100% 7 0 0   100% 4 0   100%
src/keel/redaction.py (no function)   100% 31 0 0   100% 0 0   100%
src/keel/review.py PostTarget.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/review.py ReviewPlan.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/review.py parse_reviews   100% 6 0 0   100% 4 0   100%
src/keel/review.py _parse_review   100% 18 0 0   100% 10 0   100%
src/keel/review.py _parse_provenance_field   100% 6 0 0   100% 4 0   100%
src/keel/review.py _parse_findings   100% 10 0 0   100% 8 0   100%
src/keel/review.py review_run_id   100% 1 0 0   100% 0 0   100%
src/keel/review.py closure_run_id   100% 1 0 0   100% 0 0   100%
src/keel/review.py build_review_plan   100% 10 0 0   100% 6 0   100%
src/keel/review.py _closure_posts   100% 8 0 0   100% 4 0   100%
src/keel/review.py (no function)   100% 43 0 0   100% 0 0   100%
src/keel/runcontrols.py HaltReason.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/runcontrols.py contract_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/runcontrols.py evaluate_run_controls   100% 3 0 0   100% 0 0   100%
src/keel/runcontrols.py _default_step_caps   100% 1 0 0   100% 0 0   100%
src/keel/runcontrols.py _normalize_event   100% 1 0 0   100% 0 0   100%
src/keel/runcontrols.py _budget_halt   100% 5 0 0   100% 2 0   100%
src/keel/runcontrols.py _step_cap_halt   100% 11 0 0   100% 6 0   100%
src/keel/runcontrols.py _oscillation_halt   100% 4 0 0   100% 2 0   100%
src/keel/runcontrols.py _repeated_identical_action   100% 15 0 0   100% 8 0   100%
src/keel/runcontrols.py _alternating_diff   100% 11 0 0   100% 6 0   100%
src/keel/runcontrols.py _string   100% 1 0 0   100% 0 0   100%
src/keel/runcontrols.py _positive_int   100% 1 0 0   100% 0 0   100%
src/keel/runcontrols.py _step_limit   100% 4 0 0   100% 0 0   100%
src/keel/runcontrols.py (no function)   100% 33 0 0   100% 0 0   100%
src/keel/runner.py first_location   100% 2 0 0   100% 0 0   100%
src/keel/runner.py run_command   100% 8 0 0   100% 0 0   100%
src/keel/runner.py run_argv   100% 8 0 0   100% 0 0   100%
src/keel/runner.py _tail   100% 1 0 0   100% 0 0   100%
src/keel/runner.py command_gate_runner   100% 2 0 0   100% 0 0   100%
src/keel/runner.py command_gate_runner.runner   100% 12 0 0   100% 6 0   100%
src/keel/runner.py (no function)   100% 20 0 2   100% 0 0   100%
src/keel/runtime.py Capability.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/runtime.py CapabilityReport.get   100% 4 0 0   100% 4 0   100%
src/keel/runtime.py CapabilityReport.available   100% 1 0 0   100% 0 0   100%
src/keel/runtime.py CapabilityReport.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/runtime.py CapabilityReport.to_json   100% 1 0 0   100% 0 0   100%
src/keel/runtime.py CapabilityReport.render   100% 5 0 0   100% 2 0   100%
src/keel/runtime.py CapabilityRequirement.merged   100% 1 0 0   100% 0 0   100%
src/keel/runtime.py CapabilityRequirement.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/runtime.py CapabilityEvaluation.ok   100% 1 0 0   100% 0 0   100%
src/keel/runtime.py CapabilityEvaluation.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/runtime.py CapabilityEvaluation.render   100% 6 0 0   100% 4 0   100%
src/keel/runtime.py detect   100% 19 0 0   100% 4 0   100%
src/keel/runtime.py evaluate   100% 3 0 0   100% 0 0   100%
src/keel/runtime.py validate_names   100% 1 0 0   100% 0 0   100%
src/keel/runtime.py _truthy   100% 1 0 0   100% 0 0   100%
src/keel/runtime.py _tool_capability   100% 4 0 0   100% 2 0   100%
src/keel/runtime.py _can_write   100% 3 0 0   100% 2 0   100%
src/keel/runtime.py _unique   100% 1 0 0   100% 0 0   100%
src/keel/runtime.py (no function)   100% 46 0 0   100% 0 0   100%
src/keel/scaffold.py detect_stack   100% 5 0 0   100% 4 0   100%
src/keel/scaffold.py render_config   100% 17 0 0   100% 10 0   100%
src/keel/scaffold.py _yaml_scalar   100% 1 0 0   100% 0 0   100%
src/keel/scaffold.py default_config   100% 2 0 0   100% 0 0   100%
src/keel/scaffold.py wizard   100% 8 0 0   100% 0 0   100%
src/keel/scaffold.py (no function)   100% 12 0 0   100% 0 0   100%
src/keel/scope.py verify   100% 15 0 0   100% 8 0   100%
src/keel/scope.py (no function)   100% 5 0 0   100% 0 0   100%
src/keel/ship.py reviewer_count   100% 1 0 0   100% 0 0   100%
src/keel/ship.py reviewer_focuses   100% 5 0 0   100% 4 0   100%
src/keel/ship.py resolve_jury   100% 13 0 0   100% 6 0   100%
src/keel/ship.py resolve_review_contract   100% 9 0 0   100% 4 0   100%
src/keel/ship.py decide_merge   100% 6 0 0   100% 4 0   100%
src/keel/ship.py should_run_fixloop   100% 1 0 0   100% 0 0   100%
src/keel/ship.py ci_passing   100% 6 0 0   100% 4 0   100%
src/keel/ship.py is_hotfix   100% 1 0 0   100% 0 0   100%
src/keel/ship.py assess   100% 11 0 0   100% 2 0   100%
src/keel/ship.py (no function)   100% 35 0 0   100% 0 0   100%
src/keel/status.py status_contract_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/status.py build_status_snapshot   100% 6 0 0   100% 0 0   100%
src/keel/status.py render_status   100% 25 0 0   100% 6 0   100%
src/keel/status.py _state   100% 12 0 0   100% 8 0   100%
src/keel/status.py _current   100% 8 0 0   100% 2 0   100%
src/keel/status.py _next_item   100% 12 0 0   100% 8 0   100%
src/keel/status.py _history   100% 5 0 0   100% 2 0   100%
src/keel/status.py _history_item   100% 5 0 0   100% 0 0   100%
src/keel/status.py _item_state   100% 9 0 0   100% 6 0   100%
src/keel/status.py (no function)   100% 15 0 0   100% 0 0   100%
src/keel/stepverifier.py StepRequirement.as_dict   100% 1 0 0   100% 0 0   100%
src/keel/stepverifier.py contract_as_dict   100% 3 0 0   100% 0 0   100%
src/keel/stepverifier.py step_requirements   100% 3 0 0   100% 0 0   100%
src/keel/stepverifier.py build_handoff   100% 4 0 0   100% 0 0   100%
src/keel/stepverifier.py verify_step_completion   100% 4 0 0   100% 0 0   100%
src/keel/stepverifier.py _requirement_for   100% 4 0 0   100% 2 0   100%
src/keel/stepverifier.py _check_handoff_schema   100% 7 0 0   100% 6 0   100%
src/keel/stepverifier.py _check_handoff_status   100% 5 0 0   100% 4 0   100%
src/keel/stepverifier.py _check_handoff_marker   100% 6 0 0   100% 4 0   100%
src/keel/stepverifier.py _check_required_evidence   100% 5 0 0   100% 2 0   100%
src/keel/stepverifier.py _evidence_results   100% 6 0 0   100% 4 0   100%
src/keel/stepverifier.py _check   100% 1 0 0   100% 0 0   100%
src/keel/stepverifier.py (no function)   100% 26 0 0   100% 0 0   100%
src/keel/window.py parse_window   100% 2 0 0   100% 0 0   100%
src/keel/window.py _parse_time   100% 2 0 0   100% 0 0   100%
src/keel/window.py is_merge_open   100% 10 0 0   100% 6 0   100%
src/keel/window.py (no function)   100% 6 0 0   100% 0 0   100%
src/keel/workblock.py contract_as_dict   100% 4 0 0   100% 2 0   100%
src/keel/workblock.py (no function)   100% 8 0 0   100% 0 0   100%
src/keel/workcreation.py WorkDecision.as_dict   100% 4 0 0   100% 2 0   100%
src/keel/workcreation.py contract_as_dict   100% 1 0 0   100% 0 0   100%
src/keel/workcreation.py evaluate_candidates   100% 20 0 0   100% 10 0   100%
src/keel/workcreation.py _normalize_candidate   100% 3 0 0   100% 0 0   100%
src/keel/workcreation.py _normalize_existing   100% 3 0 0   100% 0 0   100%
src/keel/workcreation.py _created_as_existing   100% 1 0 0   100% 0 0   100%
src/keel/workcreation.py _is_transient   100% 1 0 0   100% 0 0   100%
src/keel/workcreation.py _find_duplicate   100% 6 0 0   100% 6 0   100%
src/keel/workcreation.py _same_key   100% 1 0 0   100% 0 0   100%
src/keel/workcreation.py _same_title   100% 1 0 0   100% 0 0   100%
src/keel/workcreation.py _is_open   100% 2 0 0   100% 0 0   100%
src/keel/workcreation.py _tokens   100% 1 0 0   100% 0 0   100%
src/keel/workcreation.py _jaccard   100% 3 0 0   100% 2 0   100%
src/keel/workcreation.py _normalize_text   100% 1 0 0   100% 0 0   100%
src/keel/workcreation.py _string   100% 1 0 0   100% 0 0   100%
src/keel/workcreation.py _positive_int   100% 1 0 0   100% 0 0   100%
src/keel/workcreation.py _confidence   100% 1 0 0   100% 0 0   100%
src/keel/workcreation.py _count   100% 1 0 0   100% 0 0   100%
src/keel/workcreation.py (no function)   100% 36 0 0   100% 0 0   100%
Total     100% 7180 0 22   100% 2232 0   100%

No items found using the specified filter.