feat(model-routing): enforce model-routing lane decisions in agent execution artifacts#292
Open
mdheller wants to merge 5 commits into
Open
feat(model-routing): enforce model-routing lane decisions in agent execution artifacts#292mdheller wants to merge 5 commits into
mdheller wants to merge 5 commits into
Conversation
…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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ModelRoutingLaneDecisionReceiptschema: 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_modeselected_lane=high_end|prorequiresescalation_receipt_ref+de_escalation_required_after_stage=true(schema conditional); denied outcome must de-escalate to no_modelmechanical_tools_only+no_modellane;model_primaryblockedTest plan
make validate-model-routing-lane-receipts— PASS (4 valid, 2 reject)Closes #119
Integration: model-router (AgentExecutionModelRoutingPolicy), guardrail-fabric