← Files Adaptive Task RoutingARCHIVED FILE
skills/research-model-router/references/evidence-schema.md
5.64 KB · Sep 30, 2026 · 23:16 UTC
# Research Model Router evidence schema
This schema is internal diagnostic evidence. Do not render it in ordinary compact routing output. Read it only when the user requests diagnostics or when maintaining the router implementation.
```yaml
skill: research-model-router
phase: short description of the upcoming work phase
task_requirements:
capabilities: [phase-specific needs, not model names]
reasoning_demand: low | moderate | high
quality_and_validation: short requirement
latency_and_usage: user constraints or unspecified
discovery:
status: not_probed | available | partial | unavailable | permission_denied | error | stale | scope_mismatch
attempts: [source, outcome and limitation, without secrets]
scope: product, surface, execution host and effective context
observed_at: timestamp | unknown
missing_information: []
capability_evidence:
source: runtime description | official documentation | task evaluation | unavailable
reference: source identifier or URL | null
observed_at: timestamp | unknown
recommendation_basis: inferred | measured | insufficient
current_configuration:
model: observed model name | unknown
reasoning_effort: observed effort | unknown | unsupported
evidence: runtime metadata | user-provided settings | cached observation | unavailable
scope: matching live configuration | user-reported | unknown
model_catalog:
availability: available | unknown
source: runtime metadata | user-provided settings | cached observation | versioned fallback | unavailable
observed_at: timestamp | unknown
cache_scope: current session | host-defined short lifetime | none
applicable_to_context: verified | unverified | mismatch
assessment: suitable | change_recommended | unverified | deferred
minimum_sufficient_setting:
model: supported model name | CURRENT | null
reasoning_effort: supported effort | CURRENT | null
availability: verified | unverified | unknown
reason: why this is sufficient for the task
recommended_setting:
model: supported model name | CURRENT | null
reasoning_effort: supported effort | CURRENT | null
availability: verified | unverified | unknown
upgrade_value: low | medium | high
upgrade_reason: additional value over the minimum, or why a stronger pair would not help
switch_assessment:
effective_context: CURRENT | HANDOFF | CLEAN | null
context_basis: resolved_gate | context_off | model_only
continuity_reason: value preserved and setup or handoff cost
baseline: current_configuration
target: recommended_setting
remaining_phase: expected work and opportunity to amortize switching costs
cache_evidence:
status: observed | inferred | unknown
source: scoped usage or official host rules | unavailable
observed_at: timestamp | unknown
scope: provider, model, prefix and relevant settings | unknown
reuse: supported | at_risk | unknown
quality_floor: met | unmet | unknown
switching_cost: low | medium | high | unknown
switch_value: low | medium | high | unknown
decision: retain | change | defer
reason: net next-phase benefit versus retaining, with material uncertainty
confidence: 0.00-1.00
reason: one concise phase-specific explanation
mode: off | ask | auto
disposition: skipped | awaiting_user_confirmation | awaiting_user_action | applied | kept_current
interaction:
presentation: compact | detailed
continuation: authorized | not_authorized | blocked
material_blocker: null | concise quality or destination blocker
confirmation_required: true | false
revisit_at: meaningful next stage transition | null
runtime_capabilities:
surface: identified surface or unknown
switch_current_model: agent | orchestrator | user_only | unavailable | unknown
set_model_for_new_run: agent | orchestrator | user_only | unavailable | unknown
set_reasoning_effort: agent | orchestrator | user_only | unavailable | unknown
evidence: runtime metadata | user-provided settings | cached observation | unavailable
observed_at: timestamp | unknown
confidence: 0.00-1.00
execution:
requested_owner: agent | orchestrator | user | none
effective_owner: agent | orchestrator | user | none
status: skipped | awaiting_user_confirmation | awaiting_user_action | applied | retained_current | blocked
reason: concise explanation
manual_action: null | surface-specific instruction
```
In `ask`, record `awaiting_user_confirmation` only for a pending justified change or a material blocker. Retain and nonblocking defer record `kept_current` / `retained_current`; `interaction.continuation` separately records whether work is authorized. A plan-only completion is not a pending routing confirmation. `manual_action` holds a control only for a justified change or explicit target. In `auto`, when switching is
unavailable but downstream work remains authorized, record `disposition: kept_current`
and `execution.status: retained_current` while continuing with the current setting.
`upgrade_value` compares the two task-based settings; `switch_value` compares the
observed current pair with the recommended target. Unknown baseline means unknown
switch value and `decision: defer`. Cost uncertainty may coexist with `change` only
when a clear quality deficit justifies the tradeoff. An already matching pair means
`retain` with low switch value. Context-off and model-only use the current conversation
without claiming a context suitability assessment. Keep cache observations scoped and
session-local; never log activity or start paid probes. In `auto`, `retain` and `defer`
mean `execution.status: retained_current`; only `change` can proceed to independently
verified application. An unresolved destination still uses `assessment: deferred`
and null model fields under the existing contract, rather than inventing a context.
SHA-256: bff1647526e3832354ec245e8e3d9b4f1bd879a71665e6fb52b4c7b3b0242a02