Accept drafted maps at the reroute gate with bounded validator feedback #881
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
Reference
jared/cc-os#881
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
ADR-0258 decisions 4 and 9 let map-router draft a map when no approved map fits. A draft that fails
Map::LoaderorMap::Validatormust reach map-router as feedback, bounded at 2 rounds (decision 4). The REROUTE block also does not show that the chosen map is a draft.Reproduce
n/a: design change, nothing to reproduce.
Approach
Validator feedback for a drafted map surfaces at
os-sdlc-implementation-map-update, per ADR-0260.Reroute::Draft#writealready refuses a map that does not load and writes no reroute row. The reroute gate does not change: it still confirms that a pending reroute row exists (Reroute::Check#report).Reroute::Blockprintsmap: NAME (drafted)when the proposed map is drafted (Map#drafted?), elsemap: NAME (selected).failedge becomes{ to: map-router, bound: 2 }inplugins/os-sdlc/maps/poodr-ticket-implementation.yaml,plugins/os-sdlc/maps/poodr-guard-implementation.yaml, andplugins/os-sdlc/tests/fixtures/maps/reroute_waiting.yaml. Thepassedge stays unchanged.Required work:
(drafted)inplugins/os-sdlc/lib/os_sdlc/presenter/reroute/block.rbto: map-router, bound: 2inplugins/os-sdlc/maps/poodr-ticket-implementation.yamlto: map-router, bound: 2inplugins/os-sdlc/maps/poodr-guard-implementation.yamlto: map-router, bound: 2inplugins/os-sdlc/tests/fixtures/maps/reroute_waiting.yamlAcceptance criteria
map: NAME (drafted); for an approved map it readsmap: NAME (selected).failedge is{ to: map-router, bound: 2 }.Owner sketch
Origin
Parent: #859
Blocked by: #880, #873, #876, #904
Work started on branch ticket-881 (os-sdlc pipeline, map poodr-ticket-implementation).
Re-scoped 2026-10-02 after implementation 10 escalation (change-auditor dispatch 75): validator feedback surfaces at map-update (Draft#write already refuses, no row); gate unchanged per ADR-0260. Remaining work: drafted label, map-router fail bound 2, pinning test.
Resolution
Done: Re-scoped after implementation 10 escalation (stale premise: gate cannot read the map-router handoff, ADR-0260). Validator feedback for a drafted map surfaces at map-update (Draft#write refuses, writes no row) and is now pinned by test. Reroute::Block prints (drafted)/(selected) via Map#drafted?. map-router fail edge loops to map-router at bound 2 in both approved maps and the reroute_waiting fixture.
Evidence: Branch ticket-881:
9bbc53ea(implementation 12), History rowf212e32a. Suite-check dispatch 106 green incl. required-work; behavior-verifier dispatch 105 pass; contract-auditor dispatch 107 pass. Implementation 10 abandoned with reason.Follow-ups: none