{
  "schema_version": "ancientos-inference-roles-v1",
  "doctrine": [
    "inference_is_advisory_only",
    "providers_are_replaceable_implementation_surfaces",
    "local_first_when_ready",
    "frontier_escalation_requires_underlord_bounds",
    "silent_paid_fallback_is_forbidden",
    "model_output_is_not_execution_authority"
  ],
  "providers": [
    "local_ollama",
    "openai_compatible",
    "anthropic_compatible",
    "disabled"
  ],
  "canonical_roles": [
    "architecture_evidence_embedding",
    "architecture_summary",
    "bounded_reasoning",
    "conversational_reply",
    "coordination_analysis",
    "draft_generation",
    "memory_fact_extraction",
    "operational_narration",
    "oracle_synthesis",
    "retrieval_query_embedding",
    "route_explanation"
  ],
  "compatibility_roles": [
    "embedding_generation",
    "memory_fact_embedding",
    "operational_clarification",
    "task_intent_classification"
  ],
  "replay_record_fields": [
    "role",
    "selected_provider",
    "fallback_chain",
    "policy_decision",
    "cost_class",
    "approval_requirement",
    "replay_hash",
    "degraded_state",
    "structured_output",
    "advisory_only",
    "model_usage_lineage"
  ],
  "forbidden_uses": [
    "approve_execution",
    "mutate_state",
    "bypass_governance",
    "override_deterministic_routing",
    "expand_provider_authority",
    "become_source_of_truth"
  ]
}
