Skip to content

feat(model-routing): enforce model-routing lane decisions in agent execution artifacts#292

Open
mdheller wants to merge 5 commits into
mainfrom
feat/model-routing-lane-enforcement
Open

feat(model-routing): enforce model-routing lane decisions in agent execution artifacts#292
mdheller wants to merge 5 commits into
mainfrom
feat/model-routing-lane-enforcement

Conversation

@mdheller

Copy link
Copy Markdown
Member

Summary

  • ModelRoutingLaneDecisionReceipt schema: first-class execution evidence for every model-backed stage — chain_stage, task_class, requested_lane/selected_lane (5 lanes: no_model→lightweight→standard→high_end→pro), lane_decision_outcome, cost_class, prompt_evidence_policy (hash_only default, raw prompts never stored), context_tool_posture, verification_mode
  • High-end/pro gate: selected_lane=high_end|pro requires escalation_receipt_ref + de_escalation_required_after_stage=true (schema conditional); denied outcome must de-escalate to no_model
  • Verification default: verification chain stage must use mechanical_tools_only + no_model lane; model_primary blocked

Test plan

  • make validate-model-routing-lane-receipts — PASS (4 valid, 2 reject)
  • Valid standard lane_selected: planning stage, tools_governed, hash_only prompt
  • Valid escalated high_end: escalation_receipt_ref present, de_escalation_required_after_stage=true
  • Valid verification no_model: mechanical_tools_only, tools_read_only, minimal cost
  • Valid denied high_end: no escalation receipt → denied, de-escalated to no_model
  • Reject: high_end without escalation_receipt_ref (schema conditional violation)
  • Reject: wrong kind const

Closes #119
Integration: model-router (AgentExecutionModelRoutingPolicy), guardrail-fabric

mdheller added 5 commits June 11, 2026 20:43
…del civic architecture (#154)

- CivicStackRunCapsule schema: run_id, actor_ref, oql_plan_id, artifact_manifest_id,
  policy_decision_id, tool_grants, action_dispatch_records, oql_plan_acceptance,
  oac_compiler_invocation, subagent_delegations, attestation_events, rationalgrl_trace,
  hellgraph_evidence_refs, delivery_excellence_signal_ref, provenance_refs, timestamps
- RationalGRL trace: goals_addressed (goal/softgoal), tasks_executed, dependencies_blocked
  with defeater_reason on blocked tasks and denied goals
- OQL plan acceptance with OQL-to-agent-task mappings
- OAC compiler invocation with artifact emission refs
- Policy gates: deny outcome enforces empty tool_grants + all dispatches blocked;
  blocked dispatches require defeater_reason; oac failure forbids artifact_emission_refs
- 2 valid fixtures (allow + deny/policy-blocked) + 3 reject fixtures
- validate-civic-stack-runtime-evidence wired into Makefile aggregate validate target
- Upstream anchors: ontogenesis#80, #81, policy-fabric#72, sociosphere#323, delivery-excellence#28
…sational services (#149)

- ConversationalActionEvidence schema: binds conversation session/turn to AgentPlane
  execution artifact — action_type (8-value enum), policy_decision_ref, execution_artifact_ref,
  replay_linkage (eligible/verified/divergence_detected/scope), hellgraph_evidence_refs
- ConversationalReplayRecord schema: replay artifact for conversational triggers — status
  (completed/failed/diverged/pending), replay_scope (turn/session/execution_artifact),
  divergence_record (conditional required when status=diverged) with divergence_type
  and resolution_status enums, non_claims required
- Policy gates: approval_denial forces deny/escalate outcome; replay_divergence_detected
  requires replay_divergence_ref; diverged status requires divergence_record
- 4 valid fixtures (trigger-execution, approval-denial, replay-completed, replay-diverged)
  + 2 reject fixtures
- validate-conversational-evidence wired into Makefile aggregate validate target
…cybernetic oversteer controls (#136)

- docs/doctrine/tensegrity-runtime-contract.md: compression members (agent/tool/service/model/repo/host)
  vs tension members (policy/identity/provenance/tests/signatures/audits/ledgers/capability_grants/replay/revocation)
  and five tensegrity invariants: policy always required, closed chain, revocation dissolves immediately,
  replay seals the loop, oversteer is a governance obligation
- docs/specs/agent-action-tension-members-v0.md: tension member obligations matrix by action type;
  structural rules (policy always required, replay for mutation actions, audit for blocked/intervention,
  revocation path at R2+, provenance must include upstream anchor)
- docs/specs/capability-radius-v0.md: R0 observe-local through R5 deployment-host-mutation;
  radius/tool-grant contract; rapid_radius_escalation oversteer indicator
- docs/specs/cybernetic-oversteer-v0.md: 10 oversteer indicators with tension member under strain mapping;
  detection contract (HellGraph emission, delivery_excellence degraded, escalate elevation, RationalGRL softgoal);
  oversteer vs. error distinction
- examples/tensegrity/agent-action-tension-members.example.json: full tension member declaration for R3 write
- examples/reachability/agent-capability-radius.example.json: R3 actor profile with conditional R4 gate
- examples/governance/oversteer-indicators.example.json: policy_flip_flops + repeated_failed_validations
  simultaneous firing → escalate elevation + delivery excellence degraded signal
…with replay semantics (#134)

- ConceptToArtifactLineageReceipt schema: concept_kind (10-value enum: term/definition/geometry_relation/
  projection_relation/scenario/prototype/artifact/commons_impact_claim/dymaxion_metric_claim/cross_reference),
  source_anchor (type/confidence/assumptions), geometry_projection with mandatory distortion_assumptions,
  artifact_linkage with lineage_chain_refs, commons_impact with evidence_basis enum,
  dymaxion_metric with required assumptions
- extraction_mode 4-value enum: deterministic_extraction → exact replay; model_assisted → near_equivalent;
  human_review → indicative_only; non_replayable_interpretive_judgment → not_replayable
- Policy gates: non_replayable mode forces is_replayable=false + non_replayable_reason required;
  distortion_assumptions and dymaxion_metric.assumptions must be non-empty; asserted_without_evidence
  commons claims cannot be peer_reviewed; non_claims required on all receipts
- 3 valid fixtures: Dymaxion artifact lineage (model_assisted), geodesic projection claim (human_review),
  interpretive judgment (non_replayable) + 2 reject fixtures
- validate-concept-to-artifact-lineage wired into Makefile aggregate validate target
- Integration targets: ontogenesis#61, gaia-world-model#21, sherlock-search#42, sociosphere#291
…ecution artifacts (#119)

- ModelRoutingLaneDecisionReceipt schema: run_ref, chain_stage (planning/execution/verification/
  reflection/synthesis), task_class (8 values), requested_lane, selected_lane (5 lanes: no_model through pro),
  lane_decision_outcome (lane_selected/downgraded/escalated/denied/deferred), cost_class, prompt_evidence_policy
  (hash_only default — raw prompts never stored), context_tool_posture, verification_mode
- High-end/pro conditional: selected_lane=high_end or pro requires escalation_receipt_ref +
  de_escalation_required_after_stage (schema conditional allOf)
- Policy gates: denied outcome must de-escalate to no_model; verification stage must not use
  model_primary; high-end without escalation_receipt → denied; no raw prompts enforced
- 4 valid fixtures: standard lane_selected, escalated high_end with receipt+de-escalation, verification
  no_model mechanical_tools_only, denied high_end without escalation de-escalated to no_model
- 2 reject fixtures
- validate-model-routing-lane-receipts wired into Makefile aggregate validate target
- Consumers: model-router (AgentExecutionModelRoutingPolicy), guardrail-fabric integration
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enforce model-routing lane decisions in agent execution artifacts

1 participant