docs BREAKING P-cost main #23 / 31
aaronrene · 52 days ago · Jul 13, 2026 · Diff

docs(P-cost): freeze cost-awareness surface (Thinking, reviewed → pass P-cost-r2)

sha256:e9f8f7370caf41bee4b1860162ce7f80e2c60d227a48b00eb458f1473e343287 sha
+272 ~16 −7 symbols
sha256:fbb6119160b42a04c22eb26cfb66334c0914214c113575d4fbed686db381beb7 snapshot
+272
symbols added
~16
symbols modified
−7
symbols removed
0
dead code introduced
Semantic Changes 295 symbols
~ cli/commands/route.py .py 24 symbols added
+ _resolve_policy_path function function _resolve_policy_path L19–21
+ _run_resolve function function _run_resolve L95–127
+ _run_validate function function _run_validate L69–92
+ CliContext import import CliContext L10–10
+ ConfigError import import ConfigError L9–9
+ Namespace import import Namespace L5–5
+ OverseerConfig import import OverseerConfig L8–8
+ Path import import Path L6–6
+ PathEscapeError import import PathEscapeError L11–11
+ RouteSelector import import RouteSelector L16–16
+ RoutingPolicyError import import RoutingPolicyError L13–13
+ annotations import import annotations L3–3
+ config_exit_code import import config_exit_code L12–12
+ confine_path import import confine_path L11–11
+ 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_routing_policy import import load_routing_policy L14–14
+ resolve_config_path import import resolve_config_path L11–11
+ resolve_repo_root import import resolve_repo_root L11–11
+ resolve_route import import resolve_route L15–15
+ validate_routing_policy import import validate_routing_policy L14–14
+ routing_policy_status function function routing_policy_status L130–149
+ run_route_command function function run_route_command L24–66
+ Phase Track P / P-cost — Cost-awareness surface (Thinking freeze) section Phase Track P / P-cost — Cost-awareness surface (Thinking freeze) L1–468
+ code[yaml] variable variable code[yaml] L8–44
+ table section table L54–58
+ 0 — Simple summary section §PC.0 — Simple summary L61–92
+ 1 — Scope section §PC.1 — Scope L92–133
+ 10 — Shared-contract note for consumer runtimes (informative) section §PC.10 — Shared-contract note for consumer runtimes (informative) L437–458
+ 11 — Close-out (execute only when P-cost freeze marked DONE) section §PC.11 — Close-out (execute only when P-cost freeze marked DONE) L458–468
+ 2 — What exists now (verified, do not redesign) section §PC.2 — What exists now (verified, do not redesign) L133–158
+ table section table L135–150
+ 3 — cost_class extension for model_tiers (frozen schema) class section §PC.3 — cost_class extension for model_tiers (frozen schema) L158–217
+ code[yaml] variable variable code[yaml] L164–194
+ 4 — paid_step_before_spend derivation (frozen, deterministic) section §PC.4 — paid_step_before_spend derivation (frozen, deterministic) L217–241
+ 5 — overseer route cost annotation (frozen, additive) section §PC.5 — overseer route cost annotation (frozen, additive) L241–274
+ code[json] variable variable code[json] L250–261
+ 6 — Config block & regime interaction (frozen) section §PC.6 — Config block & regime interaction (frozen) L274–309
+ code[yaml] variable variable code[yaml] L279–284
+ table section table L285–289
+ 7 — Spend-awareness surface & exit code (frozen) section §PC.7 — Spend-awareness surface & exit code (frozen) L309–390
+ code[json] variable variable code[json] L339–358
+ table section table L368–372
+ 8 — Boundary & capability table (frozen) section §PC.8 — Boundary & capability table (frozen) L390–421
+ table@L396 section table@L396 L396–406
+ table@L409 section table@L409 L409–415
+ 9 — Seven-tier test matrix (P-cost Auto build must satisfy) section §PC.9 — Seven-tier test matrix (P-cost Auto build must satisfy) L421–437
+ table section table L425–434
+ RouteSelector import import RouteSelector L11–11
+ annotations import import annotations L3–3
+ git_status_runner import import git_status_runner L8–8
+ kit_root import import kit_root L6–6
+ resolve_footprint import import resolve_footprint L5–5
+ resolve_route import import resolve_route L10–10
+ run_cli import import run_cli L8–8
+ seed_routing_repo import import seed_routing_repo L7–7
+ validate_routing_policy import import validate_routing_policy L9–9
+ test_resolution_idempotent function function test_resolution_idempotent L14–20
+ test_routing_policy_in_footprint function function test_routing_policy_in_footprint L30–33
+ test_validate_deterministic function function test_validate_deterministic L23–27
+ test_validate_does_not_mutate_policy_file function function test_validate_does_not_mutate_policy_file L36–46
~ tests/e2e/test_model_routing_e2e.py .py 15 symbols added
+ _seed_lock function function _seed_lock L14–20
+ FIXTURES import import FIXTURES L11–11
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ 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_fixture_config import import load_fixture_config L11–11
+ resolve_footprint import import resolve_footprint L8–8
+ run_cli import import run_cli L11–11
+ seed_routing_repo import import seed_routing_repo L10–10
+ test_e2e_identical_under_git_only_and_muse_regime function function test_e2e_identical_under_git_only_and_muse_regime L44–58
+ test_e2e_resolve_cycle function function test_e2e_resolve_cycle L23–41
+ test_e2e_status_routing_validity_only_when_enabled function function test_e2e_status_routing_validity_only_when_enabled L61–89
+ test_footprint_includes_model_routing_policy function function test_footprint_includes_model_routing_policy L92–94
+ ROUTING_FIXTURES variable variable ROUTING_FIXTURES L57–57
+ copy_default_routing_policy function function copy_default_routing_policy L13–20
+ FIXTURES import import FIXTURES L10–10
+ Path import import Path L5–5
+ annotations import import annotations L3–3
+ kit_root import import kit_root L9–9
+ write_config import import write_config L10–10
+ yaml import import yaml L7–7
+ minimal_valid_policy_yaml function function minimal_valid_policy_yaml L53–54
+ seed_routing_repo function function seed_routing_repo L23–42
+ write_routing_policy function function write_routing_policy L45–50
+ ConfigError import import ConfigError L12–12
+ FIXTURES import import FIXTURES L15–15
+ Path import import Path L6–6
+ annotations import import annotations L3–3
+ git_status_runner import import git_status_runner L15–15
+ json import import json L5–5
+ kit_root import import kit_root L13–13
+ load_config import import load_config L11–11
+ pytest import import pytest L8–8
+ run_cli import import run_cli L15–15
+ seed_routing_repo import import seed_routing_repo L14–14
+ write_config import import write_config L15–15
+ write_routing_policy import import write_routing_policy L14–14
+ yaml import import yaml L9–9
+ test_config_model_routing_defaults function function test_config_model_routing_defaults L174–177
+ test_model_routing_enabled_false_status_unchanged function function test_model_routing_enabled_false_status_unchanged L116–133
+ test_model_routing_enabled_true_shows_validity function function test_model_routing_enabled_true_shows_validity L136–154
+ test_model_routing_policy_path_escape_exit_4 function function test_model_routing_policy_path_escape_exit_4 L157–171
+ test_route_json_payload function function test_route_json_payload L30–43
+ test_route_malformed_policy_exit_30 function function test_route_malformed_policy_exit_30 L94–113
+ test_route_missing_policy_exit_31 function function test_route_missing_policy_exit_31 L81–91
+ test_route_resolves_representative_triple function function test_route_resolves_representative_triple L18–27
+ test_route_validate_reports_first_violation function function test_route_validate_reports_first_violation L59–78
+ test_route_validate_valid function function test_route_validate_valid L46–56
+ BOUND_MS variable variable BOUND_MS L13–13
+ annotations import import annotations L3–3
+ git_status_runner import import git_status_runner L10–10
+ kit_root import import kit_root L8–8
+ patch import import patch L6–6
+ run_cli import import run_cli L10–10
+ seed_routing_repo import import seed_routing_repo L9–9
+ time import import time L5–5
+ validate_routing_policy import import validate_routing_policy L11–11
+ test_route_does_not_scan_vcs function function test_route_does_not_scan_vcs L39–49
+ test_route_resolve_bounded function function test_route_resolve_bounded L16–27
+ test_route_validate_bounded function function test_route_validate_bounded L30–36
+ _SocketBlockedError class class _SocketBlockedError L20–21
+ block_network function function block_network L25–32
+ Path import import Path L8–8
+ annotations import import annotations L3–3
+ git_status_runner import import git_status_runner L15–15
+ inspect import import inspect L5–5
+ json import import json L6–6
+ kit_root import import kit_root L13–13
+ patch import import patch L9–9
+ pytest import import pytest L11–11
+ routing_policy_module import import routing_policy_module L16–16
+ routing_resolve_module import import routing_resolve_module L17–17
+ run_cli import import run_cli L15–15
+ seed_routing_repo import import seed_routing_repo L14–14
+ socket import import socket L7–7
+ write_routing_policy import import write_routing_policy L14–14
+ test_injection_shaped_selector_strings_are_opaque function function test_injection_shaped_selector_strings_are_opaque L47–60
+ test_malformed_policy_exit_30_missing_human_terminal function function test_malformed_policy_exit_30_missing_human_terminal L77–96
+ test_missing_policy_exit_31 function function test_missing_policy_exit_31 L99–111
+ test_route_makes_no_network_connections function function test_route_makes_no_network_connections L35–44
+ test_route_output_has_no_vendor_slugs function function test_route_output_has_no_vendor_slugs L63–74
+ test_routing_modules_avoid_http_clients function function test_routing_modules_avoid_http_clients L114–122
+ BOUND_MS variable variable BOUND_MS L14–14
+ _large_policy_yaml function function _large_policy_yaml L17–42
+ RouteSelector import import RouteSelector L12–12
+ annotations import import annotations L3–3
+ kit_root import import kit_root L9–9
+ load_routing_policy_text import import load_routing_policy_text L10–10
+ parse_routing_policy import import parse_routing_policy L10–10
+ resolve_route import import resolve_route L11–11
+ time import import time L5–5
+ yaml import import yaml L7–7
+ test_large_policy_resolves_within_bound function function test_large_policy_resolves_within_bound L45–57
+ test_large_policy_validate_within_bound function function test_large_policy_validate_within_bound L60–66
+ test_match_result_order_independent_under_fixed_policy function function test_match_result_order_independent_under_fixed_policy L69–75
~ tests/unit/test_model_routing_unit.py .py 30 symbols added
+ ConfigError import import ConfigError L10–10
+ Path import import Path L5–5
+ RouteSelector import import RouteSelector L20–20
+ RoutingPolicyError import import RoutingPolicyError L18–18
+ annotations import import annotations L3–3
+ kit_root import import kit_root L11–11
+ load_model_tier_ids import import load_model_tier_ids L13–13
+ load_routing_policy_text import import load_routing_policy_text L18–18
+ minimal_valid_policy_yaml import import minimal_valid_policy_yaml L12–12
+ parse_routing_policy import import parse_routing_policy L18–18
+ pytest import import pytest L7–7
+ resolve_route import import resolve_route L19–19
+ selector_matches import import selector_matches L19–19
+ validate_model_tier_entry import import validate_model_tier_entry L13–13
+ validate_model_tiers_document import import validate_model_tiers_document L13–13
+ write_routing_policy import import write_routing_policy L12–12
+ yaml import import yaml L8–8
+ test_defaults_fallthrough function function test_defaults_fallthrough L144–153
+ test_kit_model_tiers_load function function test_kit_model_tiers_load L48–50
+ test_model_tiers_reject_vendor_slug_id function function test_model_tiers_reject_vendor_slug_id L39–45
+ test_model_tiers_required_fields function function test_model_tiers_required_fields L23–25
+ test_model_tiers_unique_kebab_ids function function test_model_tiers_unique_kebab_ids L28–36
+ test_resolution_is_pure_no_io function function test_resolution_is_pure_no_io L156–171
+ test_routing_policy_duplicate_route_id function function test_routing_policy_duplicate_route_id L108–125
+ test_routing_policy_fallback_must_end_with_human function function test_routing_policy_fallback_must_end_with_human L86–94
+ test_routing_policy_fallback_must_start_with_model_tier function function test_routing_policy_fallback_must_start_with_model_tier L75–83
+ test_routing_policy_rejects_unknown_model_tier function function test_routing_policy_rejects_unknown_model_tier L97–105
+ test_routing_policy_rejects_unknown_when_key function function test_routing_policy_rejects_unknown_when_key L59–72
+ test_routing_policy_requires_defaults function function test_routing_policy_requires_defaults L53–56
+ test_selector_wildcard_and_first_match function function test_selector_wildcard_and_first_match L128–141
~ tools/model_routing/__init__.py .py 11 symbols added
+ __all__ variable variable __all__ L16–27
+ PolicyValidationResult import import PolicyValidationResult L14–14
+ RouteDecision import import RouteDecision L14–14
+ RouteSelector import import RouteSelector L14–14
+ RoutingPolicyError import import RoutingPolicyError L8–8
+ load_model_tier_ids import import load_model_tier_ids L3–3
+ load_routing_policy import import load_routing_policy L8–8
+ resolve_route import import resolve_route L13–13
+ validate_model_tier_entry import import validate_model_tier_entry L3–3
+ validate_model_tiers_document import import validate_model_tiers_document L3–3
+ validate_routing_policy import import validate_routing_policy L8–8
~ tools/model_routing/labels.py .py 16 symbols added
+ HUMAN_TIER variable variable HUMAN_TIER L16–16
+ KEBAB_ID_RE variable variable KEBAB_ID_RE L14–14
+ MODEL_TIER_ENTRY_KEYS variable variable MODEL_TIER_ENTRY_KEYS L15–15
+ RoutingPolicyError class class RoutingPolicyError L19–26
+ __init__ method method __init__ L22–26
+ allowed_model_tier_ids function function allowed_model_tier_ids L96–98
+ ConfigError import import ConfigError L11–11
+ Path import import Path L7–7
+ annotations import import annotations L3–3
+ is_vendor_slug import import is_vendor_slug L12–12
+ lru_cache import import lru_cache L6–6
+ re import import re L5–5
+ yaml import import yaml L9–9
+ load_model_tier_ids function function load_model_tier_ids L30–47
+ validate_model_tier_entry function function validate_model_tier_entry L50–78
+ validate_model_tiers_document function function validate_model_tiers_document L81–93
~ tools/model_routing/policy.py .py 28 symbols added
+ DEFAULTS_KEYS variable variable DEFAULTS_KEYS L16–16
+ KIT_GATE_VALUES variable variable KIT_GATE_VALUES L19–19
+ ROUTE_KEYS variable variable ROUTE_KEYS L17–17
+ ROUTING_POLICY_VERSION variable variable ROUTING_POLICY_VERSION L14–14
+ TOP_LEVEL_KEYS variable variable TOP_LEVEL_KEYS L15–15
+ WHEN_KEYS variable variable WHEN_KEYS L18–18
+ _format_violation function function _format_violation L144–147
+ _optional_selector_value function function _optional_selector_value L172–184
+ _parse_route_target function function _parse_route_target L187–245
+ _parse_when function function _parse_when L150–169
+ _reject_vendor_slug function function _reject_vendor_slug L248–250
+ _scan_strings_for_vendor_slugs function function _scan_strings_for_vendor_slugs L253–266
+ Any import import Any L6–6
+ HUMAN_TIER import import HUMAN_TIER L11–11
+ Path import import Path L5–5
+ PolicyValidationResult import import PolicyValidationResult L12–12
+ RouteEntry import import RouteEntry L12–12
+ RouteSelector import import RouteSelector L12–12
+ RoutingPolicy import import RoutingPolicy L12–12
+ RoutingPolicyError import import RoutingPolicyError L11–11
+ allowed_model_tier_ids import import allowed_model_tier_ids L11–11
+ annotations import import annotations L3–3
+ is_vendor_slug import import is_vendor_slug L10–10
+ yaml import import yaml L8–8
+ load_routing_policy function function load_routing_policy L34–51
+ load_routing_policy_text function function load_routing_policy_text L22–31
+ parse_routing_policy function function parse_routing_policy L54–132
+ validate_routing_policy function function validate_routing_policy L135–141
~ tools/model_routing/resolve.py .py 8 symbols added
+ find_matching_route function function find_matching_route L41–46
+ RouteDecision import import RouteDecision L5–5
+ RouteEntry import import RouteEntry L5–5
+ RouteSelector import import RouteSelector L5–5
+ RoutingPolicy import import RoutingPolicy L5–5
+ annotations import import annotations L3–3
+ resolve_route function function resolve_route L25–38
+ selector_matches function function selector_matches L8–22
~ tools/model_routing/types.py .py 7 symbols added
+ PolicyValidationResult class class PolicyValidationResult L47–51
+ RouteDecision class class RouteDecision L38–43
+ RouteEntry class class RouteEntry L18–24
+ RouteSelector class class RouteSelector L9–14
+ RoutingPolicy class class RoutingPolicy L28–34
+ annotations import import annotations L3–3
+ dataclass class import dataclass L5–5
~ adapters/config.py .py 4 symbols added, 2 symbols modified
+ DEFAULT_MODEL_ROUTING_POLICY variable variable DEFAULT_MODEL_ROUTING_POLICY L62–62
+ MODEL_ROUTING_KEYS variable variable MODEL_ROUTING_KEYS L61–61
+ ModelRoutingConfig class class ModelRoutingConfig L183–187
+ _parse_model_routing function function _parse_model_routing L865–883
~ cli/commands/status.py .py 1 symbol added, 1 symbol modified
+ routing_policy_status import import routing_policy_status L20–20
~ cli/main.py .py 1 symbol added, 3 symbols modified
+ run_route_command import import run_route_command L19–19
~ main
~ docs/OVERSEER-HANDOVER.md .md 7 symbols added, 7 symbols removed, 6 symbols modified
NEXT SESSION — Track P / P-route Auto build (▶ NEXT) section NEXT SESSION — Track P / P-route Auto build (▶ NEXT) L9–77
Paste-ready prompt — Track P / P-route Auto build section Paste-ready prompt — Track P / P-route Auto build L42–77
code variable variable code L44–73
THE ONE NEXT STEP — Model: Auto (Track P / P-route Auto build) section THE ONE NEXT STEP — Model: Auto (Track P / P-route Auto build) L29–42
table section table L33–40
What just landed section What just landed L17–29
table section table L19–27
+ NEXT SESSION — Track P / P-cost Auto build (▶ NEXT) section NEXT SESSION — Track P / P-cost Auto build (▶ NEXT) L9–90
+ Paste-ready prompt — Track P / P-cost Auto build section Paste-ready prompt — Track P / P-cost Auto build L48–90
+ code variable variable code L50–86
+ THE ONE NEXT STEP — Model: Auto (Track P / P-cost build) section THE ONE NEXT STEP — Model: Auto (Track P / P-cost build) L31–48
+ table section table L39–46
+ What just landed section What just landed L17–31
+ table section table L19–29
~ table
~ table

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