feat BREAKING GFG-b feat/governance-freshness-gate #1 / 3
aaronrene · 38 days ago · Jul 28, 2026 · Diff

feat(GFG-b): session-end + fail-closed governance freshness gate

Ship governance-sync session-end Automation and fail-closed status/land-check freshness on D1/D2 or stale marker, matching frozen PHASE-GFG.

sha256:a5608ed4142566859a3cd4f6587a1857aabda12d2ee3e46c0d14519d6f743727 sha
+602 ~88 −10 symbols
sha256:976c8b2e5044907801eac6432527ae1403bedf493c5ee774b848e94d902e466b snapshot
+602
symbols added
~88
symbols modified
−10
symbols removed
0
dead code introduced
Semantic Changes 700 symbols
~ cli/commands/workspace.py .py 23 symbols added
+ _run_check_next function function _run_check_next L91–128
+ _run_doctor function function _run_doctor L131–144
+ _run_status function function _run_status L54–88
+ CliContext import import CliContext L10–10
+ ConfigError import import ConfigError L9–9
+ EXIT_CONFIG import import EXIT_CONFIG L21–21
+ EXIT_OK import import EXIT_OK L21–21
+ EXIT_USAGE import import EXIT_USAGE L21–21
+ EXIT_WORKSPACE_RELAY import import EXIT_WORKSPACE_RELAY L13–13
+ Namespace import import Namespace L5–5
+ Path import import Path L6–6
+ WorkspaceLoadError import import WorkspaceLoadError L13–13
+ annotations import import annotations L3–3
+ build_status_report import import build_status_report L13–13
+ check_next import import check_next L13–13
+ format_config_error import import format_config_error L12–12
+ is_within_repo import import is_within_repo L11–11
+ load_config import import load_config L8–8
+ load_manifest_for_repo import import load_manifest_for_repo L13–13
+ resolve_config_path import import resolve_config_path L11–11
+ resolve_repo_root import import resolve_repo_root L11–11
+ run_doctor import import run_doctor L13–13
+ run_workspace function function run_workspace L24–51
+ Workspace status skill section Workspace status skill L1–29
+ Board filenames section Board filenames L24–29
+ CLI section CLI L11–24
+ code[bash] variable variable code[bash] L13–20
+ Purpose section Purpose L6–11
~ docs/AARON-USER-RULES-RULE-8.md .md 7 symbols added
+ Paste into Cursor → Settings → Rules → User Rules section Paste into Cursor → Settings → Rules → User Rules L1–74
+ Agent behavior section Agent behavior L65–74
+ Install / day-to-day CLI section Install / day-to-day CLI L20–35
+ table section table L22–31
+ Model labels (required on every NEXT / paste block) section Model labels (required on every NEXT / paste block) L43–55
+ Starting a phase section Starting a phase L55–65
+ Two durable docs (always together) section Two durable docs (always together) L35–43
+ Phase K13a — Multi-repo workspace / constellation lanes (Thinking freeze) section Phase K13a — Multi-repo workspace / constellation lanes (Thinking freeze) L1–847
+ Freeze-review findings ledger (K13a-r1) section Freeze-review findings ledger (K13a-r1) L85–96
+ table section table L87–93
+ Technical summary section Technical summary L107–132
+ code[yaml] variable variable code[yaml] L8–50
+ table@L63 section table@L63 L63–74
+ table@L79 section table@L79 L79–84
+ 0 — Simple summary section §MR.0 — Simple summary L96–107
+ 1 — Scope section §MR.1 — Scope L132–161
+ 10 — Seven-tier test matrix (K13b) section §MR.10 — Seven-tier test matrix (K13b) L717–731
+ table section table L719–728
+ 11 — Tier 3 / hard stops (frozen) section §MR.11 — Tier 3 / hard stops (frozen) L731–746
+ 12 — Migration / rollout (frozen) section §MR.12 — Migration / rollout (frozen) L746–785
+ 1 — Activation section §MR.12.1 — Activation L748–756
+ table section table L750–755
+ 2 — Marker strictness section §MR.12.2 — Marker strictness L756–766
+ 3 — Dogfood order section §MR.12.3 — Dogfood order L766–778
+ 4 — Docs-only PR policy section §MR.12.4 — Docs-only PR policy L778–785
+ 13 — Explicit non-goals section §MR.13 — Explicit non-goals L785–801
+ 14 — Roadmap proposal + Auto deliverables section §MR.14 — Roadmap proposal + Auto deliverables L801–828
+ K13b Auto deliverable checklist (mechanical) section K13b Auto deliverable checklist (mechanical) L812–828
+ md) section Phase rows (insert into docs/ROADMAP.md) L803–812
+ table section table L805–809
+ 15 — Security / privacy checklist section §MR.15 — Security / privacy checklist L828–840
+ 16 — Close-out (this Thinking session) section §MR.16 — Close-out (this Thinking session) L840–847
+ 2 — Workspace / constellation model (frozen) section §MR.2 — Workspace / constellation model (frozen) L161–224
+ 1 — Definitions section §MR.2.1 — Definitions L163–179
+ table section table L165–178
+ 2 — Roles (closed vocabulary) section §MR.2.2 — Roles (closed vocabulary) L179–193
+ code[text] variable variable code[text] L181–184
+ 3 — Today’s + tomorrow’s constellation (informative example) section §MR.2.3 — Today’s + tomorrow’s constellation (informative example) L193–208
+ table section table L197–204
+ 4 — Lanes vs K8 section §MR.2.4 — Lanes vs K8 L208–224
+ table section table L210–214
+ 3 — Where the workspace definition lives (decision) section §MR.3 — Where the workspace definition lives (decision) L224–255
+ Frozen decision section Frozen decision L235–255
+ Options considered section Options considered L226–235
+ table section table L228–234
+ 4 — Schemas (frozen) section §MR.4 — Schemas (frozen) L255–367
+ yaml (canonical) section §MR.4.1 — .overseer/workspace.yaml (canonical) L257–328
+ code[yaml] variable variable code[yaml] L259–316
+ yaml additive block section §MR.4.2 — Member .overseer/config.yaml additive block L328–351
+ code[yaml] variable variable code[yaml] L330–343
+ 3 — Root resolution (frozen) section §MR.4.3 — Root resolution (frozen) L351–367
+ 5 — Authority + conflict rules (machine-checkable) section §MR.5 — Authority + conflict rules (machine-checkable) L367–418
+ table section table L369–378
+ 1 — Relay freshness predicate (frozen) section §MR.5.1 — Relay freshness predicate (frozen) L379–408
+ code[text] variable variable code[text] L402–405
+ 2 — Parallel lanes section §MR.5.2 — Parallel lanes L408–418
+ 6 — Handover UX contract (frozen) section §MR.6 — Handover UX contract (frozen) L418–605
+ 1 — Machine markers (required) section §MR.6.1 — Machine markers (required) L420–455
+ table section table L425–432
+ 2 — Paste-ready fence required fields section §MR.6.2 — Paste-ready fence required fields L455–476
+ code[text] variable variable code[text] L462–469
+ 3 — Template + KH1 deltas (Auto must vendor) section §MR.6.3 — Template + KH1 deltas (Auto must vendor) L476–494
+ table section table L484–490
+ 4 — Cursor / operator UX rule (vendored) section §MR.6.4 — Cursor / operator UX rule (vendored) L494–506
+ 5 — Board filename identity (tab UX — frozen) section §MR.6.5 — Board filename identity (tab UX — frozen) L506–605
+ CLI / status fields (Auto) section CLI / status fields (Auto) L570–583
+ code[text] variable variable code[text] L574–580
+ Consumer rename (dogfood — not K13b code) section Consumer rename (dogfood — not K13b code) L589–605
+ Frozen filename pattern section Frozen filename pattern L519–531
+ table section table L521–526
+ KH1 additive check section KH1 additive check L583–589
+ table section table L585–588
+ Rejected naming options section Rejected naming options L538–548
+ table section table L540–547
+ Title fields (required with filenames) section Title fields (required with filenames) L531–538
+ When the rule applies section When the rule applies L548–570
+ code[yaml] variable variable code[yaml] L560–563
+ table section table L550–557
+ 7 — CLI / skill surface (frozen) section §MR.7 — CLI / skill surface (frozen) L605–665
+ 1 — Commands section §MR.7.1 — Commands L607–620
+ table section table L609–615
+ 2 — Exit code section §MR.7.2 — Exit code L620–638
+ code[text] variable variable code[text] L630–633
+ table section table L622–625
+ 3 — Engine layout (Auto) section §MR.7.3 — Engine layout (Auto) L638–654
+ code[text] variable variable code[text] L640–650
+ 4 — Skills / rules (Auto vendors on ok sync) section §MR.7.4 — Skills / rules (Auto vendors on ok sync) L654–665
+ table section table L656–662
+ 8 — Relationship to 9A-5 / SD-17 (frozen) section §MR.8 — Relationship to 9A-5 / SD-17 (frozen) L665–698
+ table section table L667–673
+ 9 — Acceptance stories (Auto must prove) section §MR.9 — Acceptance stories (Auto must prove) L698–717
+ table section table L700–714
+ _runner function function _runner L28–37
+ _seed function function _seed L11–25
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ kit_root import import kit_root L7–7
+ make_runner import import make_runner L8–8
+ ok import import ok L8–8
+ run_cli import import run_cli L8–8
+ write_config import import write_config L8–8
+ test_dry_run_aligned_writes_marker_docs_unchanged function function test_dry_run_aligned_writes_marker_docs_unchanged L40–57
+ test_dry_run_d1_drifted_no_marker function function test_dry_run_d1_drifted_no_marker L60–72
+ test_idempotent_double_dry_run_aligned function function test_idempotent_double_dry_run_aligned L75–83
+ Path import import Path L6–6
+ WorkspaceLoadError import import WorkspaceLoadError L14–14
+ annotations import import annotations L3–3
+ build_status_report import import build_status_report L12–12
+ build_two_repo_constellation import import build_two_repo_constellation L15–15
+ check_next import import check_next L12–12
+ discover_manifest import import discover_manifest L13–13
+ load_config import import load_config L11–11
+ load_manifest_file import import load_manifest_file L13–13
+ os import import os L5–5
+ pytest import import pytest L8–8
+ yaml import import yaml L9–9
+ test_missing_required_member_fail_closed function function test_missing_required_member_fail_closed L54–66
+ test_override_manifest_id_mismatch function function test_override_manifest_id_mismatch L69–78
+ test_readonly_commands_do_not_mutate function function test_readonly_commands_do_not_mutate L18–34
+ test_tip_hash_stable function function test_tip_hash_stable L45–51
+ test_twice_run_identical_outputs function function test_twice_run_identical_outputs L37–42
+ FIXTURES import import FIXTURES L9–9
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ git_status_runner import import git_status_runner L9–9
+ kit_root import import kit_root L8–8
+ load_config import import load_config L7–7
+ make_runner import import make_runner L9–9
+ ok import import ok L9–9
+ run_cli import import run_cli L9–9
+ run_land_check import import run_land_check L18–18
+ seed_governance_freshness import import seed_governance_freshness L9–9
+ write_config import import write_config L9–9
+ test_land_check_fails_on_freshness_when_enabled function function test_land_check_fails_on_freshness_when_enabled L76–137
+ test_stale_to_fresh_status_cycle function function test_stale_to_fresh_status_cycle L21–73
~ tests/e2e/test_workspace_cycle.py .py 15 symbols added
+ EXIT_WORKSPACE_RELAY import import EXIT_WORKSPACE_RELAY L10–10
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ build_two_repo_constellation import import build_two_repo_constellation L8–8
+ json import import json L5–5
+ run_shim import import run_shim L9–9
+ test_e2e_governance_sync_footer_workspace_relay function function test_e2e_governance_sync_footer_workspace_relay L99–105
+ test_e2e_init_prefixed_defaults function function test_e2e_init_prefixed_defaults L108–118
+ test_s10_s11_product_relay function function test_s10_s11_product_relay L83–96
+ test_s1_s2_stale_then_refresh function function test_s1_s2_stale_then_refresh L13–21
+ test_s3_archived_not_selected function function test_s3_archived_not_selected L24–37
+ test_s4_s12_distinct_basenames_and_doctor function function test_s4_s12_distinct_basenames_and_doctor L40–54
+ test_s6_lane_tip_non_primary function function test_s6_lane_tip_non_primary L57–63
+ test_s7_optional_brain_absent function function test_s7_optional_brain_absent L66–73
+ test_s8_external_two_repo function function test_s8_external_two_repo L76–80
~ tests/fixtures/workspace/__init__.py .py 9 symbols added
+ _member_config function function _member_config L12–92
+ build_two_repo_constellation function function build_two_repo_constellation L230–454
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ tip_hash_hex import import tip_hash_hex L9–9
+ yaml import import yaml L7–7
+ primary_fence function function primary_fence L95–111
+ write_primary_handover function function write_primary_handover L114–153
+ write_relay_handover function function write_relay_handover L156–227
+ EXIT_WORKSPACE_RELAY import import EXIT_WORKSPACE_RELAY L10–10
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ build_two_repo_constellation import import build_two_repo_constellation L8–8
+ json import import json L5–5
+ run_cli import import run_cli L9–9
+ test_check_next_exit_codes function function test_check_next_exit_codes L30–39
+ test_check_next_not_configured_is_config_exit function function test_check_next_not_configured_is_config_exit L96–102
+ test_doctor_board_name_violation function function test_doctor_board_name_violation L74–82
+ test_muse_only_member_skips_git function function test_muse_only_member_skips_git L85–93
+ test_status_workspace_does_not_imply_ok_on_green_single_repo function function test_status_workspace_does_not_imply_ok_on_green_single_repo L42–71
+ test_workspace_status_json_basenames function function test_workspace_status_json_basenames L13–27
+ _aligned_handover function function _aligned_handover L20–24
+ _runner function function _runner L42–51
+ _seed_aligned function function _seed_aligned L27–39
+ FIXTURES import import FIXTURES L9–9
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ git_status_runner import import git_status_runner L9–9
+ json import import json L5–5
+ kit_root import import kit_root L8–8
+ make_runner import import make_runner L9–9
+ ok import import ok L9–9
+ run_cli import import run_cli L9–9
+ seed_governance_freshness import import seed_governance_freshness L9–9
+ write_config import import write_config L9–9
+ test_dry_run_aligned_stamps_marker_without_doc_writes function function test_dry_run_aligned_stamps_marker_without_doc_writes L136–157
+ test_status_exit_0_when_aligned_and_marker_matches function function test_status_exit_0_when_aligned_and_marker_matches L110–133
+ test_status_exit_2_when_d1_drifted function function test_status_exit_2_when_d1_drifted L54–76
+ test_status_exit_2_when_marker_absent function function test_status_exit_2_when_marker_absent L79–107
+ FIXTURES import import FIXTURES L7–7
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ git_status_runner import import git_status_runner L7–7
+ run_cli import import run_cli L7–7
+ seed_governance_freshness import import seed_governance_freshness L7–7
+ test_status_exit_code_adds_no_gh_for_gfg function function test_status_exit_code_adds_no_gh_for_gfg L10–25
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ build_two_repo_constellation import import build_two_repo_constellation L10–10
+ check_next import import check_next L8–8
+ load_manifest_file import import load_manifest_file L9–9
+ time import import time L5–5
+ test_check_next_five_member_under_two_seconds function function test_check_next_five_member_under_two_seconds L13–45
+ AnchorResult import import AnchorResult L10–10
+ FIXTURES import import FIXTURES L11–11
+ HeadResult import import HeadResult L10–10
+ MagicMock import import MagicMock L7–7
+ Path import import Path L6–6
+ ReadError import import ReadError L9–9
+ StatusResult import import StatusResult L10–10
+ annotations import import annotations L3–3
+ check_governance_freshness import import check_governance_freshness L12–12
+ json import import json L5–5
+ load_fixture_config import import load_fixture_config L11–11
+ write_config import import write_config L11–11
+ test_automation_template_cannot_merge_or_push function function test_automation_template_cannot_merge_or_push L108–119
+ test_marker_and_payload_have_no_secrets function function test_marker_and_payload_have_no_secrets L15–54
+ test_muse_only_never_calls_git_or_gh function function test_muse_only_never_calls_git_or_gh L57–88
+ test_unreadable_fails_closed_not_optimistic_ok function function test_unreadable_fails_closed_not_optimistic_ok L91–105
+ Path import import Path L5–5
+ WorkspaceLoadError import import WorkspaceLoadError L13–13
+ annotations import import annotations L3–3
+ build_status_report import import build_status_report L11–11
+ build_two_repo_constellation import import build_two_repo_constellation L14–14
+ check_next import import check_next L11–11
+ load_config import import load_config L10–10
+ load_manifest_file import import load_manifest_file L12–12
+ pytest import import pytest L7–7
+ validate_manifest_dict import import validate_manifest_dict L12–12
+ write_relay_handover import import write_relay_handover L14–14
+ yaml import import yaml L8–8
+ test_differential_mutate_relay_then_fail function function test_differential_mutate_relay_then_fail L27–41
+ test_honesty_workspace_ok_false_when_relay_stale function function test_honesty_workspace_ok_false_when_relay_stale L17–24
+ test_injection_shaped_heading_opaque function function test_injection_shaped_heading_opaque L66–75
+ test_no_secrets_or_identity_in_manifest function function test_no_secrets_or_identity_in_manifest L44–63
+ test_no_tier3_surface_in_workspace_cli function function test_no_tier3_surface_in_workspace_cli L78–84
+ _minimal_lock function function _minimal_lock L60–66
+ AnchorResult import import AnchorResult L9–9
+ HeadResult import import HeadResult L9–9
+ MagicMock import import MagicMock L7–7
+ Path import import Path L6–6
+ StatusResult import import StatusResult L9–9
+ annotations import import annotations L3–3
+ check_governance_freshness import import check_governance_freshness L11–11
+ load_fixture_config import import load_fixture_config L10–10
+ time import import time L5–5
+ write_config import import write_config L10–10
+ test_large_roadmap_freshness_bounded function function test_large_roadmap_freshness_bounded L14–57
~ tests/stress/test_workspace_stress.py .py 13 symbols added
+ Path import import Path L7–7
+ annotations import import annotations L3–3
+ build_status_report import import build_status_report L12–12
+ build_two_repo_constellation import import build_two_repo_constellation L14–14
+ check_next import import check_next L12–12
+ json import import json L5–5
+ load_config import import load_config L15–15
+ load_manifest_file import import load_manifest_file L13–13
+ time import import time L6–6
+ validate_manifest_dict import import validate_manifest_dict L11–11
+ yaml import import yaml L9–9
+ test_large_manifest_bounded function function test_large_manifest_bounded L18–46
+ test_status_json_key_order_stable function function test_status_json_key_order_stable L49–54
+ _adapter function function _adapter L36–51
+ _seed_docs function function _seed_docs L26–33
+ _write_lock function function _write_lock L15–23
+ AnchorResult import import AnchorResult L9–9
+ FIXTURES import import FIXTURES L10–10
+ HeadResult import import HeadResult L9–9
+ MagicMock import import MagicMock L6–6
+ Path import import Path L5–5
+ ReadError import import ReadError L8–8
+ StatusResult import import StatusResult L9–9
+ SyncMarker import import SyncMarker L12–12
+ annotations import import annotations L3–3
+ check_governance_freshness import import check_governance_freshness L11–11
+ load_fixture_config import import load_fixture_config L10–10
+ parse_sync_marker import import parse_sync_marker L11–11
+ write_config import import write_config L10–10
+ test_d3_only_drift_does_not_force_not_ok function function test_d3_only_drift_does_not_force_not_ok L174–200
+ test_drifted_d1 function function test_drifted_d1 L92–101
+ test_drifted_d2 function function test_drifted_d2 L104–125
+ test_not_applicable_without_lock function function test_not_applicable_without_lock L68–73
+ test_ok_when_aligned_and_marker_matches function function test_ok_when_aligned_and_marker_matches L76–89
+ test_parse_enriched_and_legacy_marker function function test_parse_enriched_and_legacy_marker L54–65
+ test_stale_marker_legacy_timestamp_only function function test_stale_marker_legacy_timestamp_only L151–161
+ test_stale_marker_missing function function test_stale_marker_missing L128–135
+ test_stale_marker_r1_mismatch function function test_stale_marker_r1_mismatch L138–148
+ test_unreadable_on_r1_failure function function test_unreadable_on_r1_failure L164–171
+ _exit_code_from_conditions import import _exit_code_from_conditions L5–5
+ annotations import import annotations L3–3
+ test_exit_precedence_includes_workspace_relay function function test_exit_precedence_includes_workspace_relay L8–51
~ tests/unit/test_workspace_unit.py .py 26 symbols added
+ Path import import Path L5–5
+ WorkspaceLoadError import import WorkspaceLoadError L22–22
+ annotations import import annotations L3–3
+ board_name_violation import import board_name_violation L10–10
+ build_two_repo_constellation import import build_two_repo_constellation L23–23
+ expand_root import import expand_root L16–16
+ expected_handover_basename import import expected_handover_basename L10–10
+ extract_next_blocks import import extract_next_blocks L17–17
+ is_bare_legacy_basename import import is_bare_legacy_basename L10–10
+ legacy_forbidden_archived_headings import import legacy_forbidden_archived_headings L17–17
+ primary_fence import import primary_fence L23–23
+ pytest import import pytest L7–7
+ repo_slug import import repo_slug L10–10
+ tip_hash_hex import import tip_hash_hex L17–17
+ validate_manifest_dict import import validate_manifest_dict L16–16
+ yaml import import yaml L8–8
+ test_bare_vs_prefixed_basename_classifier class function test_bare_vs_prefixed_basename_classifier L33–47
+ test_forbidden_legacy_archived_heading function function test_forbidden_legacy_archived_heading L166–169
+ test_freshness_true_false function function test_freshness_true_false L172–184
+ test_manifest_rejects_bad_cardinality_and_secrets function function test_manifest_rejects_bad_cardinality_and_secrets L59–100
+ test_marker_parse_and_tip_hash_lf_normalize function function test_marker_parse_and_tip_hash_lf_normalize L134–163
+ test_regime_null_only_when_optional function function test_regime_null_only_when_optional L103–131
+ test_repo_slug_normalization function function test_repo_slug_normalization L26–30
+ test_root_env_and_home_expansion function function test_root_env_and_home_expansion L50–56
+ test_strict_board_names_default_true function function test_strict_board_names_default_true L187–206
+ test_workspace_config_parse function function test_workspace_config_parse L209–251
+ __all__ variable variable __all__ L9–13
+ GovernanceFreshnessReport import import GovernanceFreshnessReport L3–3
+ check_governance_freshness import import check_governance_freshness L3–3
+ parse_sync_marker import import parse_sync_marker L3–3
~ tools/governance_freshness/check.py .py 27 symbols added
+ GOVERNANCE_SYNC_MARKER variable variable GOVERNANCE_SYNC_MARKER L18–18
+ GovernanceFreshnessReport class class GovernanceFreshnessReport L37–51
+ ok method method ok L50–51
+ REMEDIATION_DRY_RUN variable variable REMEDIATION_DRY_RUN L19–22
+ REMEDIATION_RESTAMP variable variable REMEDIATION_RESTAMP L23–23
+ SyncMarker class class SyncMarker L27–33
+ _load_default_lane_docs function function _load_default_lane_docs L313–320
+ _perform_freshness_reads function function _perform_freshness_reads L257–310
+ _regime_tip function function _regime_tip L244–254
+ check_governance_freshness function function check_governance_freshness L75–241
+ CommandRunner import import CommandRunner L12–12
+ LockError import import LockError L14–14
+ OverseerConfig import import OverseerConfig L9–9
+ Path import import Path L6–6
+ ReadError import import ReadError L10–10
+ SubprocessRunner import import SubprocessRunner L12–12
+ VcsAdapter import import VcsAdapter L8–8
+ VerifiedReads import import VerifiedReads L16–16
+ annotations import import annotations L3–3
+ create_adapter import import create_adapter L11–11
+ dataclass class import dataclass L5–5
+ detect_drift import import detect_drift L15–15
+ lane_living_doc_abs import import lane_living_doc_abs L13–13
+ lock_path import import lock_path L14–14
+ read_version_lock import import read_version_lock L14–14
+ resolve_lane_docs import import resolve_lane_docs L9–9
+ parse_sync_marker function function parse_sync_marker L54–72
~ tools/workspace/__init__.py .py 23 symbols added
+ __all__ variable variable __all__ L33–56
+ CheckNextResult import import CheckNextResult L24–24
+ DoctorReport import import DoctorReport L24–24
+ EXIT_WORKSPACE_RELAY import import EXIT_WORKSPACE_RELAY L24–24
+ WorkspaceLoadError import import WorkspaceLoadError L24–24
+ WorkspaceManifest import import WorkspaceManifest L24–24
+ WorkspaceStatusReport import import WorkspaceStatusReport L24–24
+ build_status_report import import build_status_report L10–10
+ check_next import import check_next L10–10
+ discover_manifest import import discover_manifest L17–17
+ expand_root import import expand_root L17–17
+ expected_handover_basename import import expected_handover_basename L3–3
+ expected_handover_title import import expected_handover_title L3–3
+ expected_roadmap_basename import import expected_roadmap_basename L3–3
+ expected_roadmap_title import import expected_roadmap_title L3–3
+ extract_next_blocks import import extract_next_blocks L23–23
+ load_manifest_file import import load_manifest_file L17–17
+ load_manifest_for_repo import import load_manifest_for_repo L10–10
+ repo_slug import import repo_slug L3–3
+ run_doctor import import run_doctor L16–16
+ tip_hash_hex import import tip_hash_hex L23–23
+ validate_manifest_dict import import validate_manifest_dict L17–17
+ workspace_relay_footer_state import import workspace_relay_footer_state L10–10
~ tools/workspace/board_names.py .py 14 symbols added
+ Path_basename function function Path_basename L71–75
+ _BARE_HANDOVER variable variable _BARE_HANDOVER L57–57
+ _BARE_ROADMAP variable variable _BARE_ROADMAP L58–58
+ _NON_ALNUM variable variable _NON_ALNUM L7–7
+ board_name_violation function function board_name_violation L94–114
+ expected_handover_basename function function expected_handover_basename L19–24
+ expected_handover_title function function expected_handover_title L35–44
+ expected_roadmap_basename function function expected_roadmap_basename L27–32
+ expected_roadmap_title function function expected_roadmap_title L47–54
+ annotations import import annotations L3–3
+ re import import re L5–5
+ is_bare_legacy_basename function function is_bare_legacy_basename L61–68
+ matches_prefixed_pattern function function matches_prefixed_pattern L78–91
+ repo_slug function function repo_slug L10–16
~ tools/workspace/check_next.py .py 36 symbols added
+ _primary_snapshot function function _primary_snapshot L141–248
+ _read_text function function _read_text L42–43
+ build_status_report function function build_status_report L478–588
+ check_next function function check_next L251–475
+ Any import import Any L7–7
+ CheckNextResult import import CheckNextResult L27–27
+ EXIT_CONFIG import import EXIT_CONFIG L27–27
+ EXIT_OK import import EXIT_OK L27–27
+ EXIT_WORKSPACE_RELAY import import EXIT_WORKSPACE_RELAY L27–27
+ FreshnessFinding import import FreshnessFinding L27–27
+ MemberBoardPaths import import MemberBoardPaths L27–27
+ NextRole import import NextRole L27–27
+ OverseerConfig import import OverseerConfig L9–9
+ Path import import Path L6–6
+ RelayState import import RelayState L27–27
+ WorkspaceLoadError import import WorkspaceLoadError L27–27
+ WorkspaceManifest import import WorkspaceManifest L27–27
+ WorkspaceStatusReport import import WorkspaceStatusReport L27–27
+ annotations import import annotations L3–3
+ board_name_violation import import board_name_violation L11–11
+ count_next_session_headings import import count_next_session_headings L17–17
+ discover_manifest import import discover_manifest L12–12
+ extract_next_blocks import import extract_next_blocks L17–17
+ heading_role_mismatch import import heading_role_mismatch L17–17
+ legacy_forbidden_archived_headings import import legacy_forbidden_archived_headings L17–17
+ living_doc_abs import import living_doc_abs L10–10
+ load_member_config import import load_member_config L12–12
+ os import import os L5–5
+ primary_paste_hash import import primary_paste_hash L17–17
+ resolve_member_root import import resolve_member_root L12–12
+ select_live_primary import import select_live_primary L17–17
+ select_product_tip import import select_product_tip L17–17
+ with_computed_hash import import with_computed_hash L17–17
+ load_manifest_for_repo function function load_manifest_for_repo L611–624
+ resolve_member_boards function function resolve_member_boards L46–138
+ workspace_relay_footer_state function function workspace_relay_footer_state L591–608
~ tools/workspace/doctor.py .py 12 symbols added
+ DoctorFinding import import DoctorFinding L12–12
+ DoctorReport import import DoctorReport L12–12
+ OverseerConfig import import OverseerConfig L8–8
+ Path import import Path L6–6
+ WorkspaceLoadError import import WorkspaceLoadError L12–12
+ annotations import import annotations L3–3
+ discover_manifest import import discover_manifest L10–10
+ extract_next_blocks import import extract_next_blocks L11–11
+ legacy_forbidden_archived_headings import import legacy_forbidden_archived_headings L11–11
+ os import import os L5–5
+ resolve_member_boards import import resolve_member_boards L9–9
+ run_doctor function function run_doctor L15–163
~ tools/workspace/manifest.py .py 26 symbols added
+ _ENV_REF variable variable _ENV_REF L25–25
+ _SECRETISH variable variable _SECRETISH L26–29
+ _walk_forbid_identity function function _walk_forbid_identity L65–84
+ discover_manifest function function discover_manifest L312–369
+ expand_root function function expand_root L32–49
+ Any import import Any L8–8
+ ConfigError import import ConfigError L13–13
+ FORBIDDEN_IDENTITY_KEYS import import FORBIDDEN_IDENTITY_KEYS L14–14
+ ManifestSource import import ManifestSource L14–14
+ OverseerConfig import import OverseerConfig L12–12
+ Path import import Path L7–7
+ SUPPORTED_REGIMES import import SUPPORTED_REGIMES L14–14
+ WORKSPACE_ROLES import import WORKSPACE_ROLES L14–14
+ WorkspaceLaneConfig import import WorkspaceLaneConfig L14–14
+ WorkspaceLoadError import import WorkspaceLoadError L14–14
+ WorkspaceManifest import import WorkspaceManifest L14–14
+ WorkspaceMemberConfig import import WorkspaceMemberConfig L14–14
+ annotations import import annotations L3–3
+ load_config import import load_config L12–12
+ os import import os L5–5
+ re import import re L6–6
+ yaml import import yaml L10–10
+ load_manifest_file function function load_manifest_file L289–309
+ load_member_config function function load_member_config L372–378
+ resolve_member_root function function resolve_member_root L52–62
+ validate_manifest_dict function function validate_manifest_dict L87–286
~ tools/workspace/next_extract.py .py 31 symbols added
+ _AUTHORITY_RE variable variable _AUTHORITY_RE L30–30
+ _FENCE_RE variable variable _FENCE_RE L27–27
+ _HEADING_ARCHIVED variable variable _HEADING_ARCHIVED L25–25
+ _HEADING_LANE_TIP variable variable _HEADING_LANE_TIP L24–24
+ _HEADING_NEXT variable variable _HEADING_NEXT L22–22
+ _HEADING_PRODUCT_RELAY variable variable _HEADING_PRODUCT_RELAY L23–23
+ _ID_ROW_RE variable variable _ID_ROW_RE L31–33
+ _MARKER_RE variable variable _MARKER_RE L11–20
+ _MODEL_RE variable variable _MODEL_RE L29–29
+ _STEP_RE variable variable _STEP_RE L28–28
+ _ambiguous_primary_phrase function function _ambiguous_primary_phrase L95–97
+ _extract_fence_fields function function _extract_fence_fields L69–79
+ _forbidden_archived_next_title function function _forbidden_archived_next_title L91–92
+ _step_from_body function function _step_from_body L82–88
+ count_next_session_headings function function count_next_session_headings L306–312
+ extract_next_blocks function function extract_next_blocks L100–206
+ heading_role_mismatch function function heading_role_mismatch L273–303
+ NextBlock import import NextBlock L9–9
+ NextRole import import NextRole L9–9
+ annotations import import annotations L3–3
+ hashlib import import hashlib L5–5
+ re import import re L6–6
+ replace import import replace L7–7
+ legacy_forbidden_archived_headings function function legacy_forbidden_archived_headings L209–216
+ lf_normalize function function lf_normalize L36–38
+ normalize_model_display function function normalize_model_display L47–66
+ primary_paste_hash function function primary_paste_hash L266–270
+ select_live_primary function function select_live_primary L219–233
+ select_product_tip function function select_product_tip L236–263
+ tip_hash_hex function function tip_hash_hex L41–44
+ with_computed_hash function function with_computed_hash L315–319
~ tools/workspace/types.py .py 34 symbols added
+ CheckNextResult class class CheckNextResult L172–182
+ DoctorFinding class class DoctorFinding L222–228
+ DoctorReport class class DoctorReport L232–252
+ to_json method method to_json L239–252
+ EXIT_CONFIG variable variable EXIT_CONFIG L11–11
+ EXIT_OK variable variable EXIT_OK L13–13
+ EXIT_USAGE variable variable EXIT_USAGE L12–12
+ EXIT_WORKSPACE_RELAY variable variable EXIT_WORKSPACE_RELAY L10–10
+ FORBIDDEN_IDENTITY_KEYS variable variable FORBIDDEN_IDENTITY_KEYS L19–34
+ FreshnessFinding class class FreshnessFinding L162–168
+ ManifestSource variable variable ManifestSource L46–52
+ MemberBoardPaths class class MemberBoardPaths L140–158
+ NextBlock class class NextBlock L121–136
+ NextRole class class NextRole L55–60
+ RelayState variable variable RelayState L36–44
+ SUPPORTED_REGIMES variable variable SUPPORTED_REGIMES L18–18
+ WORKSPACE_ROLES variable variable WORKSPACE_ROLES L15–17
+ WorkspaceLaneConfig class class WorkspaceLaneConfig L79–84
+ WorkspaceLoadError class class WorkspaceLoadError L256–266
+ __str__ method method __str__ L263–266
+ WorkspaceManifest class class WorkspaceManifest L88–117
+ member method method member L101–105
+ primary_lane method method primary_lane L113–117
+ product_order method method product_order L107–111
+ WorkspaceMemberConfig class class WorkspaceMemberConfig L64–75
+ WorkspaceStatusReport class class WorkspaceStatusReport L186–218
+ to_json method method to_json L203–218
+ Any import import Any L8–8
+ Enum import import Enum L6–6
+ Literal import import Literal L8–8
+ Path import import Path L7–7
+ annotations import import annotations L3–3
+ dataclass class import dataclass L5–5
+ field import import field L5–5
~ .cursor/skills/governance-sync/SKILL.md .md 2 symbols added, 3 symbols modified
+ Multi-repo (when workspace: configured) section Multi-repo (when workspace: configured) L48–60
+ code[bash] variable variable code[bash] L53–56
~ .gitignore .gitignore
~ .museignore .museignore
~ AGENTS.md .md 1 symbol added, 3 symbols modified
+ Orchestrator (RULE #8) section Orchestrator (RULE #8) L22–34
~ Tests
~ adapters/config.py .py 3 symbols added, 2 symbols modified
+ WORKSPACE_KEYS variable variable WORKSPACE_KEYS L67–67
+ WorkspacePointerConfig class class WorkspacePointerConfig L208–213
+ _parse_workspace function function _parse_workspace L1065–1080
~ cli/commands/status.py .py 4 symbols added, 3 symbols modified
+ _governance_freshness_payload function function _governance_freshness_payload L46–57
+ build_status_report import import build_status_report L30–30
+ check_governance_freshness import import check_governance_freshness L25–25
+ create_adapter import import create_adapter L23–23
~ cli/config_gen.py .py 1 symbol modified
~ cli/main.py .py 1 symbol added, 3 symbols modified
+ run_workspace import import run_workspace L47–47
~ main
~ cursor/README.md .md 2 symbols modified
~ cursor/skills/governance-sync/SKILL.md .md 2 symbols added, 3 symbols modified
+ Multi-repo (when workspace: configured) section Multi-repo (when workspace: configured) L48–60
+ code[bash] variable variable code[bash] L53–56
~ docs/OVERSEER-HANDOVER.md .md 7 symbols added, 7 symbols removed, 4 symbols modified
NEXT SESSION — GFG-b governance freshness gate build (PRIMARY) section NEXT SESSION — GFG-b governance freshness gate build (PRIMARY) L10–81
Paste-ready prompt — GFG-b section Paste-ready prompt — GFG-b L40–81
code[text] variable variable code[text] L42–77
THE ONE NEXT STEP — Model: Auto section THE ONE NEXT STEP — Model: Auto L28–40
table section table L30–38
What just landed / verified section What just landed / verified L20–28
table section table L22–27
+ NEXT SESSION — Tier-3 merge GFG-b (PRIMARY) section NEXT SESSION — Tier-3 merge GFG-b (PRIMARY) L10–67
+ Paste-ready prompt — GFG-merge section Paste-ready prompt — GFG-merge L40–67
+ code[text] variable variable code[text] L42–63
+ THE ONE NEXT STEP — Model: Operator + Auto section THE ONE NEXT STEP — Model: Operator + Auto L28–40
+ table section table L30–38
+ What just landed / verified section What just landed / verified L20–28
+ table section table L22–27
~ table
~ docs/PHASE-KH1-HANDOVER-RELAY-STANDARD.md .md 2 symbols added, 2 symbols modified
~ templates/OVERSEER-HANDOVER.template.md .md 7 symbols added, 3 symbols removed, 7 symbols modified
~ table
~ table
NEXT SESSION — <title> section NEXT SESSION — <title> L9–56
Paste-ready prompt — <phase-id> section Paste-ready prompt — <phase-id> L33–56
code variable variable code L35–53
+ ARCHIVED SESSION — <prior title> section ARCHIVED SESSION — <prior title> L81–87
+ LANE TIP — <title> (LANE: security) section LANE TIP — <title> (LANE: security) L77–81
+ NEXT SESSION — <title> (PRIMARY) section NEXT SESSION — <title> (PRIMARY) L13–67
+ Paste-ready prompt — <phase-id> section Paste-ready prompt — <phase-id> L37–67
+ code variable variable code L39–62
+ NEXT SESSION — Product tip (RELAY → <memberid> <stepid> <Model>) section NEXT SESSION — Product tip (RELAY → <memberid> <stepid> <Model>) L67–72
+ PRODUCT RELAY — <memberid> <stepid> <Model> section PRODUCT RELAY — <memberid> <stepid> <Model> L72–77
~ name}}
~ tests/e2e/test_full_install_cycle.py .py 3 symbols added, 1 symbol modified
+ _OK_FRESHNESS variable variable _OK_FRESHNESS L13–15
+ GovernanceFreshnessReport import import GovernanceFreshnessReport L9–9
+ patch import import patch L10–10
~ tests/performance/test_footprint_integrity_performance.py .py 2 symbols added, 1 symbol modified
+ _OK_FRESHNESS variable variable _OK_FRESHNESS L14–18
+ GovernanceFreshnessReport import import GovernanceFreshnessReport L11–11
~ tests/performance/test_muse_sync_performance.py .py 3 symbols added, 1 symbol modified
+ _OK_FRESHNESS variable variable _OK_FRESHNESS L12–14
+ GovernanceFreshnessReport import import GovernanceFreshnessReport L9–9
+ patch import import patch L6–6
~ tests/support.py .py 1 symbol added, 3 symbols modified
+ seed_governance_freshness function function seed_governance_freshness L159–203
~ tests/unit/test_cli_argparse.py .py 1 symbol added
+ test_workspace_argparse function function test_workspace_argparse L94–107
~ tests/unit/test_skills_footprint.py .py 2 symbols added
+ test_footprint_includes_orchestrator_rule function function test_footprint_includes_orchestrator_rule L29–40
+ test_footprint_includes_workspace_authority_and_skill function function test_footprint_includes_workspace_authority_and_skill L52–56
~ tools/close_ritual/land_check.py .py 5 symbols added, 1 symbol modified
+ _freshness_gate function function _freshness_gate L286–318
+ CommandRunner import import CommandRunner L13–13
+ SubprocessRunner import import SubprocessRunner L13–13
+ check_governance_freshness import import check_governance_freshness L14–14
+ create_adapter import import create_adapter L12–12
~ tools/governance_hygiene/engine.py .py 1 symbol added, 4 symbols modified
+ workspace_relay_footer_state import import workspace_relay_footer_state L24–24

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:a5608ed4142566859a3cd4f6587a1857aabda12d2ee3e46c0d14519d6f743727 --body "your comment"