Skip to content

Follow-up: reconcile advisory routing with exact-route provenance after #348 #406

Description

@justin808

Problem

PR #348 merged a useful requested-versus-observed routing contract and the #400 routine-coordinator policy, but the resulting portable policy contains two incompatible launch rules:

  • docs/agent-workflows-model-routing.md lines 10-16 say route preferences are advisory, an unavailable/different/inherited/UNKNOWN route never alone blocks launch, and the closest route or runtime default should continue.
  • Lines 359-361 and 396-398 say the same unavailable/different/inherited/UNKNOWN exact route must stop before editing with MODEL_ROUTE_MISMATCH.

The contract test pins both statements, so green validation preserves rather than detects the contradiction. An agent can reasonably either continue or stop the same lane depending on which section it reads.

This also leaves two associated release-facing inconsistencies:

Direction

Choose and encode one portable rule:

  • advisory routing remains the default, so a route mismatch is recorded honestly and excluded from route-measurement evidence but does not by itself stop otherwise valid work; or
  • a genuinely binding exact-route experiment is a separately explicit mode with its own authority/capability preconditions, rather than being inferred merely because a prompt names a tuple.

Preserve requested-versus-observed separation, authorized-fallback provenance, no silent coordinator-pair inheritance, and explicit user-selected overrides. Do not weaken independent review, scope, security, evidence, or authority gates.

Update the measured-promotion prerequisites to require #398 usage receipts together with #333 execution-provenance receipts and the #335 evaluation runner. Align the Unreleased changelog with the resulting policy.

Acceptance criteria

Process Gap Disposition

  • Mechanism target: checklist+replay
  • Motivating miss: PR Enforce requested-versus-observed model route provenance #348 merged mutually incompatible routing launch rules while the contract test pinned both as individually required prose.
  • Replay evidence or park reason: replay the merged 84b027a guide and assert that advisory fallback cannot coexist with unconditional route-only launch blocking without an explicit binding-mode discriminator.
  • Non-goal: another broad prose-only routing instruction without a conflict-detecting contract test.

Audit ledger: not applicable (non-release audit).

Refs #348, #400, #398, #333, #335.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions