feat BREAKING ISR feat/isr-independent-second-reviewer #2 / 2
aaronrene · 3 days ago · Sep 2, 2026 · Diff

feat(ISR): independent second reviewer (ISR-a freeze + ISR-b build)

Ledger kind independent_second_review; Mode D + exit 38; require default off / kit dogfood warn; active-slice surface; paste doc + twin skill; BV V9; seven-tier test_isr_ 48 green (ISR-b-BV-r1). No model dispatch; no consumer require.

sha256:5fcab52b1edc64e9e97993269e7feaa615aa29fcb272f2119ab8b70a3b03f713 sha
+558 ~75 −10 symbols
sha256:a45337870ec73e2042c2c0e86aa8334352cdc9d563b90cfa1956a0258b0941df snapshot
+558
symbols added
~75
symbols modified
−10
symbols removed
0
dead code introduced
Semantic Changes 643 symbols
~ cli/commands/handover_compact.py .py 12 symbols added
+ CliContext import import CliContext L10–10
+ ConfigError import import ConfigError L9–9
+ Namespace import import Namespace L6–6
+ annotations import import annotations L3–3
+ compact_handover_change_log import import compact_handover_change_log L13–13
+ format_config_error import import format_config_error L12–12
+ is_within_repo import import is_within_repo L11–11
+ json import import json L5–5
+ load_config import import load_config L8–8
+ resolve_config_path import import resolve_config_path L11–11
+ resolve_repo_root import import resolve_repo_root L11–11
+ run_handover_compact_command function function run_handover_compact_command L16–68
+ Independent second reviewer section Independent second reviewer L9–62
+ Check section Check L56–62
+ code[bash] variable variable code[bash] L58–62
+ Process (frozen) section Process (frozen) L18–56
~ docs/INDEPENDENT-SECOND-REVIEWER.md .md 11 symbols added
+ Independent second reviewer — portable paste (any AI tool) section Independent second reviewer — portable paste (any AI tool) L1–72
+ Builder: invent a producer session nonce section Builder: invent a producer session nonce L16–22
+ Check (Mode D) section Check (Mode D) L42–53
+ code[bash] variable variable code[bash] L44–48
+ Host map section Host map L61–72
+ table section table L63–69
+ Print NEXT for the second chat section Print NEXT for the second chat L53–61
+ code[bash] variable variable code[bash] L55–60
+ Record (second chat / verifier) section Record (second chat / verifier) L22–42
+ code[bash] variable variable code[bash] L24–38
+ Why section Why L9–16
+ Phase ISR — Independent second reviewer (Thinking freeze) section Phase ISR — Independent second reviewer (Thinking freeze) L1–849
+ Freeze-review findings ledger (ISR-r1) section Freeze-review findings ledger (ISR-r1) L86–104
+ table section table L88–97
+ code[yaml] variable variable code[yaml] L7–69
+ table section table L79–85
+ 0 — Simple summary section §ISR.0 — Simple summary L104–131
+ 1 — Verified problem (do not redesign) section §ISR.1 — Verified problem (do not redesign) L131–149
+ table section table L133–146
+ 10 — SPEC §5 additive row (ISR-b writes) section §ISR.10 — SPEC §5 additive row (ISR-b writes) L774–796
+ 11 — Seven-tier matrix (ISR-b) section §ISR.11 — Seven-tier matrix (ISR-b) L796–813
+ table section table L798–807
+ 12 — Definition of Done section §ISR.12 — Definition of Done L813–831
+ 13 — Operator paste for ISR-b (informational; GS-PASTE may regen) section §ISR.13 — Operator paste for ISR-b (informational; GS-PASTE may regen) L831–839
+ 14 — Cross-references section §ISR.14 — Cross-references L839–849
+ 2 — Scope section §ISR.2 — Scope L149–192
+ table section table L168–189
+ 3 — Ledger kind independent_second_review (frozen schema) section §ISR.3 — Ledger kind independent_second_review (frozen schema) L192–286
+ code[json] variable variable code[json] L242–259
+ code[text]@L199 variable variable code[text]@L199 L199–202
+ code[text]@L275 variable variable code[text]@L275 L275–278
+ table@L222 section table@L222 L222–229
+ table@L232 section table@L232 L232–239
+ require_independent_second_reviewer (frozen) section §ISR.4 — Config: honesty.require_independent_second_reviewer (frozen) L286–328
+ code[yaml] variable variable code[yaml] L291–296
+ table section table L297–302
+ 5 — honesty-status Mode D (frozen) section §ISR.5 — honesty-status Mode D (frozen) L328–504
+ 1 — Flags section §ISR.5.1 — Flags L330–363
+ table section table L334–340
+ 0) section §ISR.5.2 — Mode-resolution algorithm (frozen; amends §PD.5.0) L363–419
+ code[text] variable variable code[text] L369–398
+ 3 — Mode D match rule (frozen) section §ISR.5.3 — Mode D match rule (frozen) L419–440
+ 4 — Mode D JSON + error token (frozen) section §ISR.5.4 — Mode D JSON + error token (frozen) L440–504
+ code[json] variable variable code[json] L453–473
+ code[text] variable variable code[text] L444–447
+ table section table L474–481
+ 6 — Active-slice status / governance-sync surface (frozen) section §ISR.6 — Active-slice status / governance-sync surface (frozen) L504–578
+ table section table L527–532
+ 7 — Portable primary (CLI + docs) + optional host niceties section §ISR.7 — Portable primary (CLI + docs) + optional host niceties L578–709
+ 1 — Portable contract (complete without Cursor) section §ISR.7.1 — Portable contract (complete without Cursor) L580–594
+ table section table L582–588
+ 2 — Paste doc (ISR-b writes) section §ISR.7.2 — Paste doc (ISR-b writes) L594–613
+ 3 — Twin skill (ISR-b writes) section §ISR.7.3 — Twin skill (ISR-b writes) L613–646
+ 4 — Build-verification skill + always-on rule (ISR-b amends) section §ISR.7.4 — Build-verification skill + always-on rule (ISR-b amends) L646–678
+ table section table L662–665
+ 5 — Other doc pointers (ISR-b writes) section §ISR.7.5 — Other doc pointers (ISR-b writes) L678–694
+ 6 — Tool neutrality (normative) section §ISR.7.6 — Tool neutrality (normative) L694–709
+ table section table L696–702
+ 8 — Exit codes (frozen) section §ISR.8 — Exit codes (frozen) L709–737
+ table@L714 section table@L714 L714–717
+ table@L724 section table@L724 L724–731
+ 9 — Boundary, capability, rejection (governance, not runtime) section §ISR.9 — Boundary, capability, rejection (governance, not runtime) L737–774
+ table@L743 section table@L743 L743–753
+ table@L756 section table@L756 L756–761
+ table@L762 section table@L762 L762–771
+ Phase LT — Loop tightening (slices 1–4) section Phase LT — Loop tightening (slices 1–4) L1–562
+ Freeze-review findings ledger (LT-r1) section Freeze-review findings ledger (LT-r1) L67–82
+ table section table L69–75
+ code[yaml] variable variable code[yaml] L6–54
+ table section table L62–66
+ 0 — Simple summary section §LT.0 — Simple summary L82–113
+ 1 — Verified problem (do not redesign) section §LT.1 — Verified problem (do not redesign) L113–133
+ table section table L115–130
+ 10 — Seven-tier matrix (LT-b) section §LT.10 — Seven-tier matrix (LT-b) L516–533
+ table section table L518–527
+ 11 — Definition of Done section §LT.11 — Definition of Done L533–547
+ 12 — Operator paste for LT-b (informational; GS-PASTE may regen) section §LT.12 — Operator paste for LT-b (informational; GS-PASTE may regen) L547–554
+ 13 — Cross-references section §LT.13 — Cross-references L554–562
+ 2 — Scope section §LT.2 — Scope L133–166
+ table section table L146–163
+ Footprint coverage + dogfood sync + workspace-root section §LT.3 — Slice 1. Footprint coverage + dogfood sync + workspace-root L166–227
+ 1 — Footprint coverage gate (closes the “lock never heard of new files” twin of KH3) section §LT.3.1 — Footprint coverage gate (closes the “lock never heard of new files” twin of KH3) L168–199
+ table@L176 section table@L176 L176–181
+ table@L191 section table@L191 L191–196
+ 2 — Dogfood sync (this repo) section §LT.3.2 — Dogfood sync (this repo) L199–208
+ 3 — Workspace-root honesty (docs only) section §LT.3.3 — Workspace-root honesty (docs only) L208–227
+ Session bookends (portable primary + optional Cursor hooks) section §LT.4 — Slice 2. Session bookends (portable primary + optional Cursor hooks) L227–358
+ 1 — Portable primary (unchanged, still required) section §LT.4.1 — Portable primary (unchanged, still required) L229–240
+ table section table L231–236
+ 2 — Config (additive, default off) section §LT.4.2 — Config (additive, default off) L240–258
+ code[yaml] variable variable code[yaml] L242–246
+ 3 — When enabled: true, ok sync / ok init vendors these files section §LT.4.3 — When enabled: true, ok sync / ok init vendors these files L258–285
+ table section table L264–270
+ 4 — Narrow ONS supersession section §LT.4.4 — Narrow ONS supersession L285–293
+ 5 — Hook behavior (fail-open, loop_limit: 1 on stop) section §LT.4.5 — Hook behavior (fail-open, loop_limit: 1 on stop) L293–350
+ code[json] variable variable code[json] L297–324
+ 6 — Agent rules (already in source; become live after slice 1 sync) section §LT.4.6 — Agent rules (already in source; become live after slice 1 sync) L350–358
+ Mechanical DONE — kit dogfood only, warn first section §LT.5 — Slice 3. Mechanical DONE — kit dogfood only, warn first L358–419
+ 1 — Kit config (LT-b writes; consumers untouched) section §LT.5.1 — Kit config (LT-b writes; consumers untouched) L360–381
+ code[yaml] variable variable code[yaml] L364–370
+ 2 — Active-slice Mode B surface (reuse P-evidence) section §LT.5.2 — Active-slice Mode B surface (reuse P-evidence) L381–410
+ table section table L399–404
+ 3 — What this does not do section §LT.5.3 — What this does not do L410–419
+ Compact the living change log section §LT.6 — Slice 4. Compact the living change log L419–479
+ 1 — Command section §LT.6.1 — Command L421–433
+ 2 — Algorithm section §LT.6.2 — Algorithm L433–465
+ 3 — Template + dogfood section §LT.6.3 — Template + dogfood L465–479
+ 7 — Tool neutrality (normative) section §LT.7 — Tool neutrality (normative) L479–492
+ table section table L481–487
+ 8 — SPEC §5 additive rows (LT-b writes) section §LT.8 — SPEC §5 additive rows (LT-b writes) L492–503
+ table section table L494–498
+ 9 — Rejection / honesty table section §LT.9 — Rejection / honesty table L503–516
+ table section table L505–513
+ EntryValidationError import import EntryValidationError L12–12
+ HonestyStatusOptions import import HonestyStatusOptions L10–10
+ LedgerAppendOptions import import LedgerAppendOptions L11–11
+ annotations import import annotations L3–3
+ append_entry import import append_entry L9–9
+ compute_entry_hash import import compute_entry_hash L8–8
+ load_isr_entry import import load_isr_entry L7–7
+ pytest import import pytest L5–5
+ run_honesty_status import import run_honesty_status L10–10
+ seed_isr_repo import import seed_isr_repo L7–7
+ validate_append_body import import validate_append_body L12–12
+ verify_ledger_file import import verify_ledger_file L9–9
+ test_append_does_not_embed_chat_transcript function function test_append_does_not_embed_chat_transcript L47–60
+ test_canonical_hash_includes_isr_fields function function test_canonical_hash_includes_isr_fields L32–44
+ test_mode_d_omit_vs_pin_does_not_rewrite_ledger function function test_mode_d_omit_vs_pin_does_not_rewrite_ledger L75–104
+ test_tamper_producer_session_breaks_verify function function test_tamper_producer_session_breaks_verify L15–29
+ test_validate_fail_writes_nothing function function test_validate_fail_writes_nothing L63–72
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ check_footprint_coverage import import check_footprint_coverage L8–8
+ compact_handover_change_log import import compact_handover_change_log L9–9
+ load_fixture_config import import load_fixture_config L7–7
+ write_config import import write_config L7–7
+ test_compact_twice_second_no_op function function test_compact_twice_second_no_op L12–27
+ test_coverage_does_not_rewrite_lock function function test_coverage_does_not_rewrite_lock L30–37
+ test_dry_run_compact_writes_nothing function function test_dry_run_compact_writes_nothing L40–53
~ tests/e2e/test_isr_e2e.py .py 23 symbols added
+ _OK_FRESHNESS variable variable _OK_FRESHNESS L16–23
+ _seed_status_repo function function _seed_status_repo L26–64
+ FIXTURES import import FIXTURES L11–11
+ GovernanceFreshnessReport import import GovernanceFreshnessReport L12–12
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ build_genesis_entry import import build_genesis_entry L13–13
+ git_status_runner import import git_status_runner L11–11
+ json import import json L5–5
+ kit_root import import kit_root L9–9
+ load_isr_entry import import load_isr_entry L10–10
+ muse_mirror_status_runner import import muse_mirror_status_runner L11–11
+ patch import import patch L7–7
+ run_cli import import run_cli L11–11
+ seed_isr_repo import import seed_isr_repo L10–10
+ seed_muse_substrate import import seed_muse_substrate L11–11
+ serialize_entry import import serialize_entry L14–14
+ test_mode_d_cli_with_producer_session_match function function test_mode_d_cli_with_producer_session_match L105–134
+ test_muse_regime_unsigned_isr_path function function test_muse_regime_unsigned_isr_path L175–202
+ test_ok_next_still_extracts_fence_after_docs_pointer function function test_ok_next_still_extracts_fence_after_docs_pointer L153–172
+ test_require_mode_done_without_ledger_status_exit_2 function function test_require_mode_done_without_ledger_status_exit_2 L87–102
+ test_same_session_ids_refused_at_append function function test_same_session_ids_refused_at_append L137–150
+ test_warn_mode_done_without_ledger_status_exit_0 function function test_warn_mode_done_without_ledger_status_exit_0 L67–84
~ tests/e2e/test_lt_e2e.py .py 17 symbols added
+ _OK_FRESHNESS variable variable _OK_FRESHNESS L14–21
+ _inject_change_log_bullets function function _inject_change_log_bullets L103–124
+ _seed_honesty_repo function function _seed_honesty_repo L24–62
+ FIXTURES import import FIXTURES L9–9
+ GovernanceFreshnessReport import import GovernanceFreshnessReport L10–10
+ KIT_ROOT import import KIT_ROOT L9–9
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ build_genesis_entry import import build_genesis_entry L12–12
+ git_status_runner import import git_status_runner L9–9
+ json import import json L5–5
+ patch import import patch L7–7
+ run_cli import import run_cli L9–9
+ serialize_entry import import serialize_entry L11–11
+ test_compact_then_next_same_fence function function test_compact_then_next_same_fence L127–144
+ test_require_mode_done_without_ledger_status_exit_2 function function test_require_mode_done_without_ledger_status_exit_2 L85–100
+ test_warn_mode_done_without_ledger_status_exit_0 function function test_warn_mode_done_without_ledger_status_exit_0 L65–82
~ tests/fixtures/isr/__init__.py .py 13 symbols added
+ FIXTURES variable variable FIXTURES L14–14
+ ISR_ENTRIES variable variable ISR_ENTRIES L15–15
+ copy_isr_entries function function copy_isr_entries L62–67
+ OverseerConfig import import OverseerConfig L11–11
+ Path import import Path L7–7
+ annotations import import annotations L3–3
+ json import import json L5–5
+ load_config import import load_config L11–11
+ seed_honesty_repo import import seed_honesty_repo L12–12
+ shutil import import shutil L6–6
+ yaml import import yaml L9–9
+ load_isr_entry function function load_isr_entry L18–20
+ seed_isr_repo function function seed_isr_repo L23–59
+ _OK_FRESHNESS variable variable _OK_FRESHNESS L21–28
+ _seed_status_fixture function function _seed_status_fixture L172–213
+ EXIT_MISSING_INDEPENDENT_SECOND_REVIEW import import EXIT_MISSING_INDEPENDENT_SECOND_REVIEW L14–14
+ FIXTURES import import FIXTURES L11–11
+ GovernanceFreshnessReport import import GovernanceFreshnessReport L12–12
+ HonestyStatusOptions import import HonestyStatusOptions L14–14
+ LedgerAppendOptions import import LedgerAppendOptions L19–19
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ append_entry import import append_entry L13–13
+ git_status_runner import import git_status_runner L11–11
+ load_isr_entry import import load_isr_entry L10–10
+ patch import import patch L6–6
+ run_cli import import run_cli L11–11
+ run_honesty_status import import run_honesty_status L14–14
+ seed_isr_repo import import seed_isr_repo L10–10
+ verify_ledger_file import import verify_ledger_file L13–13
+ yaml import import yaml L8–8
+ test_append_isr_writes_chain function function test_append_isr_writes_chain L31–42
+ test_honesty_disabled_exit_4 function function test_honesty_disabled_exit_4 L158–169
+ test_mode_a_without_mode_d_unchanged function function test_mode_a_without_mode_d_unchanged L143–155
+ test_mode_d_matching_pass_exit_0 function function test_mode_d_matching_pass_exit_0 L61–81
+ test_mode_d_off_not_enforced function function test_mode_d_off_not_enforced L99–111
+ test_mode_d_plus_hook_exit_1 function function test_mode_d_plus_hook_exit_1 L129–140
+ test_mode_d_plus_mode_b_exit_1 function function test_mode_d_plus_mode_b_exit_1 L114–126
+ test_mode_d_require_missing_exit_38 function function test_mode_d_require_missing_exit_38 L45–58
+ test_mode_d_warn_missing_exit_0_with_warning function function test_mode_d_warn_missing_exit_0_with_warning L84–96
+ test_status_require_after_append_not_forced_2 function function test_status_require_after_append_not_forced_2 L236–254
+ test_status_require_done_without_isr_exit_2 function function test_status_require_done_without_isr_exit_2 L216–233
+ _OK_FRESHNESS variable variable _OK_FRESHNESS L15–22
+ _init function function _init L25–33
+ FIXTURES import import FIXTURES L12–12
+ GovernanceFreshnessReport import import GovernanceFreshnessReport L13–13
+ KIT_ROOT import import KIT_ROOT L12–12
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ git_status_runner import import git_status_runner L12–12
+ json import import json L5–5
+ patch import import patch L7–7
+ resolve_footprint import import resolve_footprint L11–11
+ run_cli import import run_cli L12–12
+ yaml import import yaml L9–9
+ test_compact_write_creates_archive function function test_compact_write_creates_archive L80–113
+ test_handover_compact_both_flags_exit_2 function function test_handover_compact_both_flags_exit_2 L116–124
+ test_session_bookends_in_resolve_when_enabled function function test_session_bookends_in_resolve_when_enabled L60–77
+ test_status_exit_2_when_coverage_missing_dest function function test_status_exit_2_when_coverage_missing_dest L36–47
+ test_status_json_includes_footprint_coverage function function test_status_json_includes_footprint_coverage L127–137
+ test_status_not_2_from_coverage_after_lock_updated function function test_status_not_2_from_coverage_after_lock_updated L50–57
~ tests/performance/test_isr_perf.py .py 11 symbols added
+ _BUDGET_S variable variable _BUDGET_S L13–13
+ HonestyStatusOptions import import HonestyStatusOptions L9–9
+ LedgerAppendOptions import import LedgerAppendOptions L10–10
+ annotations import import annotations L3–3
+ append_entry import import append_entry L8–8
+ build_independent_second_reviewer_gate import import build_independent_second_reviewer_gate L11–11
+ load_isr_entry import import load_isr_entry L7–7
+ run_honesty_status import import run_honesty_status L9–9
+ seed_isr_repo import import seed_isr_repo L7–7
+ time import import time L5–5
+ test_append_mode_d_and_gate_within_bound function function test_append_mode_d_and_gate_within_bound L16–50
~ tests/performance/test_lt_perf.py .py 8 symbols added
+ KIT_ROOT import import KIT_ROOT L8–8
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ check_footprint_coverage import import check_footprint_coverage L9–9
+ compact_handover_change_log import import compact_handover_change_log L10–10
+ load_fixture_config import import load_fixture_config L8–8
+ time import import time L5–5
+ test_coverage_and_compact_finish_quickly function function test_coverage_and_compact_finish_quickly L13–28
~ tests/security/test_isr_security.py .py 17 symbols added
+ EXIT_MISSING_INDEPENDENT_SECOND_REVIEW import import EXIT_MISSING_INDEPENDENT_SECOND_REVIEW L9–9
+ HonestyStatusOptions import import HonestyStatusOptions L9–9
+ LedgerAppendOptions import import LedgerAppendOptions L14–14
+ annotations import import annotations L3–3
+ append_entry import import append_entry L8–8
+ build_independent_second_reviewer_gate import import build_independent_second_reviewer_gate L15–15
+ independent_second_reviewer_gate_payload import import independent_second_reviewer_gate_payload L15–15
+ inspect import import inspect L5–5
+ load_isr_entry import import load_isr_entry L7–7
+ run_honesty_status import import run_honesty_status L9–9
+ seed_isr_repo import import seed_isr_repo L7–7
+ test_equal_session_ids_cannot_pass function function test_equal_session_ids_cannot_pass L61–71
+ test_exit_38_not_waived_under_require function function test_exit_38_not_waived_under_require L74–85
+ test_gate_payload_no_absolute_machine_paths function function test_gate_payload_no_absolute_machine_paths L88–108
+ test_no_network_or_model_imports_on_isr_paths function function test_no_network_or_model_imports_on_isr_paths L35–47
+ test_producer_cannot_append_isr function function test_producer_cannot_append_isr L50–58
+ test_url_like_session_ids_opaque function function test_url_like_session_ids_opaque L21–32
~ tests/security/test_lt_security.py .py 19 symbols added
+ FIXTURES import import FIXTURES L11–11
+ KIT_ROOT import import KIT_ROOT L11–11
+ Path import import Path L9–9
+ annotations import import annotations L3–3
+ check_footprint_coverage import import check_footprint_coverage L12–12
+ compact_handover_change_log import import compact_handover_change_log L13–13
+ git_status_runner import import git_status_runner L11–11
+ json import import json L5–5
+ load_fixture_config import import load_fixture_config L11–11
+ os import import os L6–6
+ run_cli import import run_cli L11–11
+ stat import import stat L7–7
+ subprocess import import subprocess L8–8
+ test_compact_archive_path_repo_relative function function test_compact_archive_path_repo_relative L41–55
+ test_coverage_missing_paths_are_repo_relative function function test_coverage_missing_paths_are_repo_relative L16–38
+ test_git_only_handover_compact_zero_muse_argv function function test_git_only_handover_compact_zero_muse_argv L77–111
+ test_hook_scripts_are_executable_in_kit_source function function test_hook_scripts_are_executable_in_kit_source L132–136
+ test_session_start_hook_fail_open_without_ok function function test_session_start_hook_fail_open_without_ok L58–74
+ test_session_start_hook_fail_open_without_python3 function function test_session_start_hook_fail_open_without_python3 L114–129
~ tests/stress/test_isr_stress.py .py 10 symbols added
+ HonestyStatusOptions import import HonestyStatusOptions L7–7
+ LedgerAppendOptions import import LedgerAppendOptions L8–8
+ annotations import import annotations L3–3
+ append_entry import import append_entry L6–6
+ find_matching_independent_second_review import import find_matching_independent_second_review L9–9
+ load_isr_entry import import load_isr_entry L5–5
+ run_honesty_status import import run_honesty_status L7–7
+ seed_isr_repo import import seed_isr_repo L5–5
+ verify_ledger_file import import verify_ledger_file L6–6
+ test_fifty_isr_entries_last_wins_match function function test_fifty_isr_entries_last_wins_match L12–53
~ tests/stress/test_lt_stress.py .py 11 symbols added
+ FIXTURES import import FIXTURES L7–7
+ KIT_ROOT import import KIT_ROOT L7–7
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ check_footprint_coverage import import check_footprint_coverage L8–8
+ compact_handover_change_log import import compact_handover_change_log L9–9
+ git_status_runner import import git_status_runner L7–7
+ load_fixture_config import import load_fixture_config L7–7
+ run_cli import import run_cli L7–7
+ test_compact_200_bullets_keep_15 function function test_compact_200_bullets_keep_15 L12–29
+ test_coverage_many_dests function function test_coverage_many_dests L32–50
~ tests/unit/test_isr_unit.py .py 37 symbols added
+ _minimal function function _minimal L23–26
+ ENTRY_KINDS import import ENTRY_KINDS L15–15
+ EntryValidationError import import EntryValidationError L16–16
+ HONESTY_KEYS import import HONESTY_KEYS L11–11
+ HonestyConfig import import HonestyConfig L11–11
+ HonestyErrorToken import import HonestyErrorToken L15–15
+ HonestyStatusOptions import import HonestyStatusOptions L14–14
+ ISR_VERDICTS import import ISR_VERDICTS L15–15
+ Path import import Path L5–5
+ _resolve_mode import import _resolve_mode L14–14
+ annotations import import annotations L3–3
+ find_matching_independent_second_review import import find_matching_independent_second_review L16–16
+ get_args import import get_args L6–6
+ load_config import import load_config L11–11
+ load_isr_entry import import load_isr_entry L12–12
+ pytest import import pytest L8–8
+ seed_honesty_repo import import seed_honesty_repo L13–13
+ validate_append_body import import validate_append_body L16–16
+ yaml import import yaml L9–9
+ test_bad_isr_verdict_exit_2 function function test_bad_isr_verdict_exit_2 L69–73
+ test_both_agent_ids_equal_exit_2 function function test_both_agent_ids_equal_exit_2 L83–87
+ test_empty_producer_session_exit_2 function function test_empty_producer_session_exit_2 L47–51
+ test_error_token_includes_missing_isr function function test_error_token_includes_missing_isr L146–147
+ test_find_matching_isr_last_wins_and_pin function function test_find_matching_isr_last_wins_and_pin L237–276
+ test_frozen_spec_opaque_non_empty_no_must_exist function function test_frozen_spec_opaque_non_empty_no_must_exist L111–116
+ test_genesis_forbid_isr_keys function function test_genesis_forbid_isr_keys L98–108
+ test_honesty_config_field_default_off function function test_honesty_config_field_default_off L142–143
+ test_isr_in_entry_kinds function function test_isr_in_entry_kinds L29–31
+ test_missing_producer_session_exit_2 function function test_missing_producer_session_exit_2 L54–59
+ test_non_verifier_exit_23 function function test_non_verifier_exit_23 L62–66
+ test_one_agent_id_only_accept function function test_one_agent_id_only_accept L90–95
+ test_require_isr_config_parse function function test_require_isr_config_parse L119–135
+ test_require_isr_in_honesty_keys function function test_require_isr_in_honesty_keys L138–139
+ test_resolve_mode_d_invariants function function test_resolve_mode_d_invariants L150–234
+ test_round_lt_1_exit_2 function function test_round_lt_1_exit_2 L76–80
+ test_same_session_ids_exit_2 function function test_same_session_ids_exit_2 L40–44
+ test_validate_accepts_minimal_isr function function test_validate_accepts_minimal_isr L34–37
~ tests/unit/test_lt_unit.py .py 30 symbols added
+ _lock function function _lock L19–25
+ ConfigError import import ConfigError L10–10
+ FIXTURES import import FIXTURES L16–16
+ FootprintEntry import import FootprintEntry L11–11
+ KIT_ROOT import import KIT_ROOT L16–16
+ ORIGIN_KIT import import ORIGIN_KIT L11–11
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ build_optional_feature_tips import import build_optional_feature_tips L14–14
+ build_verification_evidence_gate import import build_verification_evidence_gate L15–15
+ build_version_lock_from_entries import import build_version_lock_from_entries L11–11
+ check_footprint_coverage import import check_footprint_coverage L12–12
+ compact_handover_change_log import import compact_handover_change_log L13–13
+ load_config import import load_config L9–9
+ load_fixture_config import import load_fixture_config L16–16
+ pytest import import pytest L7–7
+ write_config import import write_config L16–16
+ test_compact_keep_too_low function function test_compact_keep_too_low L96–126
+ test_compact_missing_anchor function function test_compact_missing_anchor L129–136
+ test_compact_no_op_when_within_keep function function test_compact_no_op_when_within_keep L139–152
+ test_coverage_all_dests_ok function function test_coverage_all_dests_ok L57–70
+ test_coverage_empty_lock_not_applicable function function test_coverage_empty_lock_not_applicable L28–32
+ test_coverage_missing_from_lock function function test_coverage_missing_from_lock L35–54
+ test_optional_feature_tips_default_off function function test_optional_feature_tips_default_off L189–194
+ test_optional_feature_tips_empty_when_enabled function function test_optional_feature_tips_empty_when_enabled L197–209
+ test_session_bookends_default_off function function test_session_bookends_default_off L73–75
+ test_session_bookends_enabled_non_bool function function test_session_bookends_enabled_non_bool L87–93
+ test_session_bookends_unknown_key function function test_session_bookends_unknown_key L78–84
+ test_verification_gate_skips_active_auto_todo function function test_verification_gate_skips_active_auto_todo L162–186
+ test_verification_gate_skips_when_honesty_off function function test_verification_gate_skips_when_honesty_off L155–159
~ tools/footprint_coverage/__init__.py .py 3 symbols added
+ __all__ variable variable __all__ L8–8
+ FootprintCoverageReport import import FootprintCoverageReport L3–3
+ check_footprint_coverage import import check_footprint_coverage L3–3
~ tools/footprint_coverage/check.py .py 14 symbols added
+ FootprintCoverageReport class class FootprintCoverageReport L16–26
+ ok method method ok L25–26
+ REMEDIATION variable variable REMEDIATION L12–12
+ check_footprint_coverage function function check_footprint_coverage L29–86
+ FootprintFile import import FootprintFile L9–9
+ LockError import import LockError L10–10
+ OverseerConfig import import OverseerConfig L8–8
+ Path import import Path L6–6
+ VersionLock import import VersionLock L10–10
+ annotations import import annotations L3–3
+ dataclass class import dataclass L5–5
+ lock_path import import lock_path L10–10
+ read_version_lock import import read_version_lock L10–10
+ resolve_footprint import import resolve_footprint L9–9
~ tools/handover_compact/__init__.py .py 3 symbols added
+ __all__ variable variable __all__ L8–8
+ CompactReport import import CompactReport L3–3
+ compact_handover_change_log import import compact_handover_change_log L3–3
~ tools/handover_compact/compact.py .py 17 symbols added
+ CHANGE_LOG_END variable variable CHANGE_LOG_END L13–13
+ CHANGE_LOG_START variable variable CHANGE_LOG_START L12–12
+ CompactReport class class CompactReport L19–25
+ DATED_ENTRY_START variable variable DATED_ENTRY_START L14–14
+ POINTER_PREFIX variable variable POINTER_PREFIX L15–15
+ _ChangeLogEntry class class _ChangeLogEntry L29–30
+ _collect_dated_entries function function _collect_dated_entries L143–157
+ _extract_region function function _extract_region L129–140
+ _render_entries function function _render_entries L160–166
+ compact_handover_change_log function function compact_handover_change_log L33–126
+ OverseerConfig import import OverseerConfig L10–10
+ Path import import Path L8–8
+ annotations import import annotations L3–3
+ dataclass class import dataclass L6–6
+ date import import date L7–7
+ re import import re L5–5
+ resolve_lane_docs import import resolve_lane_docs L10–10
+ __all__ variable variable __all__ L10–15
+ IndependentSecondReviewerGateReport import import IndependentSecondReviewerGateReport L3–3
+ build_independent_second_reviewer_gate import import build_independent_second_reviewer_gate L3–3
+ format_independent_second_reviewer_gate_line import import format_independent_second_reviewer_gate_line L3–3
+ independent_second_reviewer_gate_payload import import independent_second_reviewer_gate_payload L3–3
+ AUTO_B_STEP_RE variable variable AUTO_B_STEP_RE L22–22
+ IndependentSecondReviewerGateReport class class IndependentSecondReviewerGateReport L31–41
+ REQUIRE_REMEDIATION variable variable REQUIRE_REMEDIATION L24–27
+ _claims_done_or_bv_pass function function _claims_done_or_bv_pass L187–202
+ _frozen_spec_for_phase function function _frozen_spec_for_phase L213–222
+ _is_active_auto_model function function _is_active_auto_model L158–164
+ _ledger_match function function _ledger_match L225–252
+ _read_text function function _read_text L139–142
+ _roadmap_row function function _roadmap_row L167–177
+ _roadmap_status function function _roadmap_status L180–184
+ _select_active_auto_phase function function _select_active_auto_phase L145–155
+ _should_run_isr_gate function function _should_run_isr_gate L205–210
+ build_independent_second_reviewer_gate function function build_independent_second_reviewer_gate L44–109
+ format_independent_second_reviewer_gate_line function function format_independent_second_reviewer_gate_line L131–136
+ BUILD_VERIFICATION_PASS_RE import import BUILD_VERIFICATION_PASS_RE L11–11
+ OverseerConfig import import OverseerConfig L9–9
+ PHASE_DOC_RE import import PHASE_DOC_RE L11–11
+ Path import import Path L7–7
+ ROADMAP_ROW_RE import import ROADMAP_ROW_RE L11–11
+ _is_auto_model import import _is_auto_model L11–11
+ _normalize_phase_id import import _normalize_phase_id L11–11
+ annotations import import annotations L3–3
+ confine_path import import confine_path L10–10
+ dataclass class import dataclass L6–6
+ find_matching_independent_second_review import import find_matching_independent_second_review L20–20
+ re import import re L5–5
+ read_ledger_entries import import read_ledger_entries L19–19
+ scan_governance_gates import import scan_governance_gates L11–11
+ independent_second_reviewer_gate_payload function function independent_second_reviewer_gate_payload L112–128
+ __all__ variable variable __all__ L8–8
+ build_optional_feature_tips import import build_optional_feature_tips L3–3
+ optional_feature_tips_payload import import optional_feature_tips_payload L3–3
+ build_optional_feature_tips function function build_optional_feature_tips L8–30
+ OverseerConfig import import OverseerConfig L5–5
+ annotations import import annotations L3–3
+ optional_feature_tips_payload function function optional_feature_tips_payload L33–35
+ __all__ variable variable __all__ L10–15
+ VerificationEvidenceGateReport import import VerificationEvidenceGateReport L3–3
+ build_verification_evidence_gate import import build_verification_evidence_gate L3–3
+ format_verification_evidence_gate_line import import format_verification_evidence_gate_line L3–3
+ verification_evidence_gate_payload import import verification_evidence_gate_payload L3–3
+ AUTO_B_STEP_RE variable variable AUTO_B_STEP_RE L22–22
+ VerificationEvidenceGateReport class class VerificationEvidenceGateReport L26–35
+ _claims_done_or_bv_pass function function _claims_done_or_bv_pass L175–190
+ _frozen_spec_for_phase function function _frozen_spec_for_phase L201–210
+ _is_active_auto_model function function _is_active_auto_model L145–152
+ _ledger_match function function _ledger_match L213–236
+ _read_text function function _read_text L126–129
+ _roadmap_row function function _roadmap_row L155–165
+ _roadmap_status function function _roadmap_status L168–172
+ _select_active_auto_phase function function _select_active_auto_phase L132–142
+ _should_run_mode_b function function _should_run_mode_b L193–198
+ build_verification_evidence_gate function function build_verification_evidence_gate L38–102
+ format_verification_evidence_gate_line function function format_verification_evidence_gate_line L120–123
+ BUILD_VERIFICATION_PASS_RE import import BUILD_VERIFICATION_PASS_RE L11–11
+ OverseerConfig import import OverseerConfig L9–9
+ PHASE_DOC_RE import import PHASE_DOC_RE L11–11
+ Path import import Path L7–7
+ ROADMAP_ROW_RE import import ROADMAP_ROW_RE L11–11
+ _is_auto_model import import _is_auto_model L11–11
+ _normalize_phase_id import import _normalize_phase_id L11–11
+ annotations import import annotations L3–3
+ confine_path import import confine_path L10–10
+ dataclass class import dataclass L6–6
+ find_matching_verification_evidence import import find_matching_verification_evidence L20–20
+ re import import re L5–5
+ read_ledger_entries import import read_ledger_entries L19–19
+ scan_governance_gates import import scan_governance_gates L11–11
+ verification_evidence_gate_payload function function verification_evidence_gate_payload L105–117
~ AGENTS.md .md 1 symbol added, 1 symbol modified
+ Independent second reviewer section Independent second reviewer L68–77
~ adapters/config.py .py 3 symbols added, 5 symbols modified
+ SESSION_BOOKENDS_KEYS variable variable SESSION_BOOKENDS_KEYS L68–68
+ SessionBookendsConfig class class SessionBookendsConfig L211–214
+ _parse_session_bookends function function _parse_session_bookends L1138–1151
~ cli/commands/review.py .py 1 symbol added, 1 symbol modified
+ check_footprint_coverage import import check_footprint_coverage L19–19
~ cli/commands/status.py .py 11 symbols added, 2 symbols modified
+ IDE_WORKSPACE_HINT variable variable IDE_WORKSPACE_HINT L50–52
+ _footprint_coverage_payload function function _footprint_coverage_payload L566–573
+ build_independent_second_reviewer_gate import import build_independent_second_reviewer_gate L37–37
+ build_optional_feature_tips import import build_optional_feature_tips L42–42
+ build_verification_evidence_gate import import build_verification_evidence_gate L32–32
+ check_footprint_coverage import import check_footprint_coverage L24–24
+ format_independent_second_reviewer_gate_line import import format_independent_second_reviewer_gate_line L37–37
+ format_verification_evidence_gate_line import import format_verification_evidence_gate_line L32–32
+ independent_second_reviewer_gate_payload import import independent_second_reviewer_gate_payload L37–37
+ optional_feature_tips_payload import import optional_feature_tips_payload L42–42
+ verification_evidence_gate_payload import import verification_evidence_gate_payload L32–32
~ cli/footprint.py .py 3 symbols added, 2 symbols modified
+ SESSION_BOOKEND_SPECS variable variable SESSION_BOOKEND_SPECS L26–31
+ SESSION_END_HOOK_DEST variable variable SESSION_END_HOOK_DEST L17–17
+ SESSION_START_HOOK_DEST variable variable SESSION_START_HOOK_DEST L16–16
~ cli/main.py .py 1 symbol added, 3 symbols modified
+ run_handover_compact_command import import run_handover_compact_command L38–38
~ main
~ cursor/README.md .md 1 symbol modified
~ cursor/hooks/README.md .md 6 symbols added, 3 symbols removed
Optional Cursor stop hook — print NEXT (ONS) section Optional Cursor stop hook — print NEXT (ONS) L1–28
Behavior (frozen) section Behavior (frozen) L16–28
Enable (operator) section Enable (operator) L9–16
+ Cursor session bookends (LT slice 2) section Cursor session bookends (LT slice 2) L1–40
+ 5) section Behavior (frozen §LT.4.5) L16–24
+ json) section Manual merge (existing .cursor/hooks.json) L24–31
+ Portable primary (unchanged) section Portable primary (unchanged) L31–40
+ table section table L33–38
+ table section table L6–12
~ docs/OVERSEER-HANDOVER.md .md 7 symbols added, 7 symbols removed, 10 symbols modified
NEXT SESSION — Consumer LT rollout (Operator) section NEXT SESSION — Consumer LT rollout (Operator) L11–64
Paste-ready prompt — consumer LT rollout section Paste-ready prompt — consumer LT rollout L38–64
code[text] variable variable code[text] L40–60
THE ONE NEXT STEP — Model: Operator section THE ONE NEXT STEP — Model: Operator L24–38
table section table L28–35
What just landed section What just landed L17–24
table section table L19–23
+ NEXT SESSION — ISR → main (land-a) section NEXT SESSION — ISR → main (land-a) L11–66
+ Paste-ready prompt — ISR → main (land-a) section Paste-ready prompt — ISR → main (land-a) L40–66
+ code[text] variable variable code[text] L42–62
+ THE ONE NEXT STEP — Model: Operator + Auto section THE ONE NEXT STEP — Model: Operator + Auto L25–40
+ table section table L29–37
+ What just landed section What just landed L18–25
+ table section table L20–24
~ table
~ table
~ table
~ docs/archive/handover/CHANGE-LOG.md .md 1 symbol added, 1 symbol modified
+ Compacted 2026-09-02@L895 section Compacted 2026-09-02 L895–898
~ docs/consumers/knowtation/OVERSEER-SETUP.md .md 1 symbol added, 1 symbol modified
+ Independent second reviewer section Independent second reviewer L46–50
~ docs/consumers/scooling/OVERSEER-SETUP.md .md 1 symbol added, 1 symbol modified
+ Independent second reviewer section Independent second reviewer L35–39
~ tools/governance_hygiene/engine.py .py 4 symbols added, 1 symbol modified
+ build_independent_second_reviewer_gate import import build_independent_second_reviewer_gate L32–32
+ build_verification_evidence_gate import import build_verification_evidence_gate L28–28
+ format_independent_second_reviewer_gate_line import import format_independent_second_reviewer_gate_line L32–32
+ format_verification_evidence_gate_line import import format_verification_evidence_gate_line L28–28
~ tools/governance_hygiene/reads.py .py 1 symbol added, 1 symbol modified
+ check_footprint_coverage import import check_footprint_coverage L13–13
~ tools/honesty/status.py .py 4 symbols added, 6 symbols modified
+ EXIT_MISSING_INDEPENDENT_SECOND_REVIEW variable variable EXIT_MISSING_INDEPENDENT_SECOND_REVIEW L26–26
+ _mode_d_block function function _mode_d_block L96–110
+ _run_mode_d function function _run_mode_d L460–614
+ find_matching_independent_second_review import import find_matching_independent_second_review L20–20
~ tools/honesty/types.py .py 1 symbol added, 4 symbols modified
+ ISR_VERDICTS variable variable ISR_VERDICTS L41–41
~ tools/honesty/validate.py .py 2 symbols added, 6 symbols modified
+ find_matching_independent_second_review function function find_matching_independent_second_review L120–155
+ ISR_VERDICTS import import ISR_VERDICTS L9–9

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:5fcab52b1edc64e9e97993269e7feaa615aa29fcb272f2119ab8b70a3b03f713 --body "your comment"