Enforce escalate routes in Map::Validator; add them to coding.yaml #513

Closed
opened 2026-08-26 13:30:40 +00:00 by jared · 2 comments
Owner

Context

Since ADR-0152 every implementation carries a never-opt-out DispatchBudget (DEFAULT_CAP 60, map dispatch_cap override); at the cap RoutingApplier routes the current position's escalate edge. poodr-implementation.yaml carries these edges; maps/coding.yaml does not, so a capped run on it raises Router::UnroutableVerdict — surfaced at the CLI boundary as a generic exit-3 error, indistinguishable from other routing failures — instead of the escalation payload.

Ticket-skeptic verdict: CREATE (root = validator: loaded maps can silently violate a cap invariant that is never opt-out; keep this ticket to drive validator enforcement, not just the coding.yaml patch).

Tasks

  • Map::Validator requires every map to route the escalate verdict from each agent node to a terminal with outcome escalation (load-time, alongside the existing termination checks)
  • Add escalate: edges + needs-orchestrator terminal to maps/coding.yaml, mirroring poodr-implementation.yaml

Acceptance criteria

  • Loading a map without an escalate route fails validation with a named error, not UnroutableVerdict at cap time
  • coding.yaml loads clean under the new validation

Origin

  • Trigger: #511 implementation round 4 (branch 511-progress-based-bound, merged 85d5326) — agent follow-up report
  • Improvised this session: none (poodr map got the edges; coding.yaml left as found)
  • Chain: mislabeled exit-3 at cap ← missing escalate route in coding.yaml ← validator does not enforce the route the always-on cap assumes ← DESIGN (ADR-0152; Map::Validator TERMINAL_OUTCOMES change only)
  • Root candidate: this ticket
## Context Since ADR-0152 every implementation carries a never-opt-out DispatchBudget (DEFAULT_CAP 60, map dispatch_cap override); at the cap RoutingApplier routes the current position's escalate edge. poodr-implementation.yaml carries these edges; maps/coding.yaml does not, so a capped run on it raises Router::UnroutableVerdict — surfaced at the CLI boundary as a generic exit-3 error, indistinguishable from other routing failures — instead of the escalation payload. Ticket-skeptic verdict: CREATE (root = validator: loaded maps can silently violate a cap invariant that is never opt-out; keep this ticket to drive validator enforcement, not just the coding.yaml patch). ## Tasks - [ ] Map::Validator requires every map to route the escalate verdict from each agent node to a terminal with outcome escalation (load-time, alongside the existing termination checks) - [ ] Add escalate: edges + needs-orchestrator terminal to maps/coding.yaml, mirroring poodr-implementation.yaml ## Acceptance criteria - [ ] Loading a map without an escalate route fails validation with a named error, not UnroutableVerdict at cap time - [ ] coding.yaml loads clean under the new validation ## Origin - Trigger: #511 implementation round 4 (branch 511-progress-based-bound, merged 85d5326) — agent follow-up report - Improvised this session: none (poodr map got the edges; coding.yaml left as found) - Chain: mislabeled exit-3 at cap ← missing escalate route in coding.yaml ← validator does not enforce the route the always-on cap assumes ← DESIGN (ADR-0152; Map::Validator TERMINAL_OUTCOMES change only) - Root candidate: this ticket
Author
Owner

Work started on branch 513-escalate-route-validation (TDD)

Work started on branch 513-escalate-route-validation (TDD)
Author
Owner

Resolution

Done: Validator check_escalate_route! enforces an escalate route from every agent node to an escalation terminal at map load; coding.yaml wired with escalate edges and needs-orchestrator terminal; named InvalidMapError(:missing_escalate_route) replaces cap-time UnroutableVerdict/exit-3 for this gap.

Evidence: Commit 8e3d836, merged to main 992e80a 2026-08-26; suite 1140 runs, 0 failures (baseline 1137); 3 new validator tests + 7 fixture maps wired.

Follow-ups: Two agent suggestions dropped as speculative without evidence: (1) grep sweep for other production maps — none exist today; (2) revisit agent:null exemption predicate for hypothetical future node types. No follow-ups captured.

## Resolution **Done:** Validator check_escalate_route! enforces an escalate route from every agent node to an escalation terminal at map load; coding.yaml wired with escalate edges and needs-orchestrator terminal; named InvalidMapError(:missing_escalate_route) replaces cap-time UnroutableVerdict/exit-3 for this gap. **Evidence:** Commit 8e3d836, merged to main 992e80a 2026-08-26; suite 1140 runs, 0 failures (baseline 1137); 3 new validator tests + 7 fixture maps wired. **Follow-ups:** Two agent suggestions dropped as speculative without evidence: (1) grep sweep for other production maps — none exist today; (2) revisit agent:null exemption predicate for hypothetical future node types. No follow-ups captured.
jared closed this issue 2026-08-26 14:53:27 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#513
No description provided.