{
  "canon_meta": {
    "canon_id": "devon-canonical-matrix",
    "version": "1.0.0",
    "status": "ACTIVE",
    "matrix_mode": "deployment_order",
    "source_files": [
      "00_project_scope_canonical.yaml",
      "01_deployment_order_canonical.yaml",
      "02_panel_canonical_tree.yaml",
      "03_card_contract_minimums.yaml",
      "04_memory_canonical_architecture.yaml",
      "05_server_registry_canonical.yaml",
      "06_sandbox_environment_canonical.yaml",
      "07_subcategory_pipelines.yaml"
    ]
  },
  "matrix": [
    {
      "matrix_id": "MX-001",
      "deployment_order": 10,
      "deployment_stage": "host_readiness",
      "section_id": "S00",
      "card_id": "core-host-readiness",
      "display_name": "Host Readiness",
      "subcategory": "filesystem",
      "objective": "validate writable canonical filesystem",
      "hard_dependencies": [],
      "blockers": [
        "filesystem_unwritable"
      ],
      "evidence_expected": [
        "canonical_directories_exist",
        "canonical_directories_writable"
      ],
      "checks": [
        "path_exists_check",
        "write_probe_check"
      ],
      "pipeline_ref": "host_readiness",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "PASS"
    },
    {
      "matrix_id": "MX-002",
      "deployment_order": 10,
      "deployment_stage": "host_readiness",
      "section_id": "S00",
      "card_id": "core-host-readiness",
      "display_name": "Host Readiness",
      "subcategory": "root_context",
      "objective": "validate privileged operational context",
      "hard_dependencies": [],
      "blockers": [
        "missing_root_access_when_required"
      ],
      "evidence_expected": [
        "root_shell_access"
      ],
      "checks": [
        "whoami_check"
      ],
      "pipeline_ref": "host_readiness",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "PASS"
    },
    {
      "matrix_id": "MX-003",
      "deployment_order": 10,
      "deployment_stage": "host_readiness",
      "section_id": "S00",
      "card_id": "core-host-readiness",
      "display_name": "Host Readiness",
      "subcategory": "python_runtime",
      "objective": "validate python3 runtime presence",
      "hard_dependencies": [],
      "blockers": [
        "missing_python3"
      ],
      "evidence_expected": [
        "python3_binary",
        "python3_version_output"
      ],
      "checks": [
        "python3_version_check"
      ],
      "pipeline_ref": "host_readiness",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "PASS"
    },
    {
      "matrix_id": "MX-004",
      "deployment_order": 10,
      "deployment_stage": "host_readiness",
      "section_id": "S00",
      "card_id": "core-host-readiness",
      "display_name": "Host Readiness",
      "subcategory": "git_runtime",
      "objective": "validate git runtime presence",
      "hard_dependencies": [],
      "blockers": [
        "missing_git"
      ],
      "evidence_expected": [
        "git_binary",
        "git_version_output"
      ],
      "checks": [
        "git_version_check"
      ],
      "pipeline_ref": "host_readiness",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "PASS"
    },
    {
      "matrix_id": "MX-005",
      "deployment_order": 10,
      "deployment_stage": "host_readiness",
      "section_id": "S00",
      "card_id": "core-host-readiness",
      "display_name": "Host Readiness",
      "subcategory": "docker_runtime",
      "objective": "validate container runtime presence",
      "hard_dependencies": [],
      "blockers": [
        "missing_container_runtime"
      ],
      "evidence_expected": [
        "docker_binary",
        "docker_version_output"
      ],
      "checks": [
        "docker_version_check"
      ],
      "pipeline_ref": "host_readiness",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-010",
      "deployment_order": 20,
      "deployment_stage": "canon_control_plane",
      "section_id": "S01",
      "card_id": "project-scope",
      "display_name": "Project Scope",
      "subcategory": "mission",
      "objective": "define global project scope",
      "hard_dependencies": [
        "MX-001"
      ],
      "blockers": [
        "missing_scope_file"
      ],
      "evidence_expected": [
        "/opt/devon/canon/00_project_scope_canonical.yaml"
      ],
      "checks": [
        "file_exists_check",
        "yaml_header_check"
      ],
      "pipeline_ref": "canon_control_plane",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "PASS"
    },
    {
      "matrix_id": "MX-011",
      "deployment_order": 20,
      "deployment_stage": "canon_control_plane",
      "section_id": "S01",
      "card_id": "deployment-order",
      "display_name": "Deployment Order",
      "subcategory": "stages",
      "objective": "define official operational deployment sequence",
      "hard_dependencies": [
        "MX-010"
      ],
      "blockers": [
        "missing_deployment_order_file"
      ],
      "evidence_expected": [
        "/opt/devon/canon/01_deployment_order_canonical.yaml"
      ],
      "checks": [
        "file_exists_check",
        "stage_order_check"
      ],
      "pipeline_ref": "canon_control_plane",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "PASS"
    },
    {
      "matrix_id": "MX-012",
      "deployment_order": 20,
      "deployment_stage": "canon_control_plane",
      "section_id": "S01",
      "card_id": "card-contracts",
      "display_name": "Card Contracts",
      "subcategory": "required_blocks",
      "objective": "define minimum contract schema for every card",
      "hard_dependencies": [
        "MX-010"
      ],
      "blockers": [
        "missing_contract_schema"
      ],
      "evidence_expected": [
        "/opt/devon/canon/03_card_contract_minimums.yaml"
      ],
      "checks": [
        "file_exists_check",
        "required_blocks_check"
      ],
      "pipeline_ref": "canon_control_plane",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "PASS"
    },
    {
      "matrix_id": "MX-020",
      "deployment_order": 30,
      "deployment_stage": "server_registry",
      "section_id": "S02",
      "card_id": "server-registry",
      "display_name": "Server Registry",
      "subcategory": "control_plane",
      "objective": "register Devon as canonical control plane",
      "hard_dependencies": [
        "MX-011"
      ],
      "blockers": [
        "missing_server_registry"
      ],
      "evidence_expected": [
        "/opt/devon/canon/05_server_registry_canonical.yaml"
      ],
      "checks": [
        "file_exists_check",
        "control_plane_node_check"
      ],
      "pipeline_ref": "server_registry",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "PASS"
    },
    {
      "matrix_id": "MX-021",
      "deployment_order": 30,
      "deployment_stage": "server_registry",
      "section_id": "S02",
      "card_id": "server-registry",
      "display_name": "Server Registry",
      "subcategory": "sandbox_hosts",
      "objective": "define sandbox host model",
      "hard_dependencies": [
        "MX-020"
      ],
      "blockers": [
        "missing_sandbox_host_definition"
      ],
      "evidence_expected": [
        "dedicated_sandbox_host_hypothesis"
      ],
      "checks": [
        "future_hypothesis_check"
      ],
      "pipeline_ref": "server_registry",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "PASS"
    },
    {
      "matrix_id": "MX-030",
      "deployment_order": 40,
      "deployment_stage": "foundation_infrastructure",
      "section_id": "S03",
      "card_id": "infrastructure",
      "display_name": "Infrastructure",
      "subcategory": "containers",
      "objective": "enable base container runtime",
      "hard_dependencies": [
        "MX-020",
        "MX-005"
      ],
      "blockers": [
        "missing_container_runtime"
      ],
      "evidence_expected": [
        "docker_binary",
        "compose_runtime"
      ],
      "checks": [
        "docker_version_check",
        "docker_ps_check"
      ],
      "pipeline_ref": "foundation_infrastructure",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-031",
      "deployment_order": 50,
      "deployment_stage": "storage_state",
      "section_id": "S03",
      "card_id": "storage-state",
      "display_name": "Storage & State",
      "subcategory": "structured_state",
      "objective": "define structured persistence backend",
      "hard_dependencies": [
        "MX-030"
      ],
      "blockers": [
        "missing_structured_state_backend"
      ],
      "evidence_expected": [
        "db_runtime",
        "db_connectivity"
      ],
      "checks": [
        "backend_presence_check",
        "read_write_probe_check"
      ],
      "pipeline_ref": "storage_state",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-040",
      "deployment_order": 60,
      "deployment_stage": "memory_control_plane",
      "section_id": "S04",
      "card_id": "memory-manager",
      "display_name": "Memory Manager",
      "subcategory": "control_plane",
      "objective": "establish memory control plane",
      "hard_dependencies": [
        "MX-031"
      ],
      "blockers": [
        "missing_memory_control_plane"
      ],
      "evidence_expected": [
        "/opt/devon/canon/04_memory_canonical_architecture.yaml",
        "router_runtime",
        "partition_registry_runtime"
      ],
      "checks": [
        "file_exists_check",
        "memory_router_presence_check"
      ],
      "pipeline_ref": "memory_control_plane",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-050",
      "deployment_order": 70,
      "deployment_stage": "core_runtime",
      "section_id": "S05",
      "card_id": "core-runtime",
      "display_name": "Core Runtime",
      "subcategory": "api_runtime",
      "objective": "enable Devon application runtime",
      "hard_dependencies": [
        "MX-040"
      ],
      "blockers": [
        "missing_entrypoint",
        "invalid_env"
      ],
      "evidence_expected": [
        "app_entrypoint",
        "api_runtime_process",
        "health_endpoint"
      ],
      "checks": [
        "boot_check",
        "health_endpoint_check"
      ],
      "pipeline_ref": "core_runtime",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-060",
      "deployment_order": 80,
      "deployment_stage": "observability_audit_base",
      "section_id": "S06",
      "card_id": "observability-audit",
      "display_name": "Observability & Audit",
      "subcategory": "logs",
      "objective": "enable structured logs and evidence sinks",
      "hard_dependencies": [
        "MX-050"
      ],
      "blockers": [
        "missing_log_sink"
      ],
      "evidence_expected": [
        "log_output",
        "writable_log_path"
      ],
      "checks": [
        "log_emit_check",
        "path_write_check"
      ],
      "pipeline_ref": "observability_audit_base",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-070",
      "deployment_order": 90,
      "deployment_stage": "remote_access_orchestration",
      "section_id": "S07",
      "card_id": "remote-orchestration",
      "display_name": "Remote Orchestration",
      "subcategory": "ssh_profiles",
      "objective": "define SSH access policy for first-party nodes",
      "hard_dependencies": [
        "MX-020",
        "MX-060"
      ],
      "blockers": [
        "missing_ssh_profiles"
      ],
      "evidence_expected": [
        "ssh_profile_registry"
      ],
      "checks": [
        "ssh_profile_check"
      ],
      "pipeline_ref": "remote_access_orchestration",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-080",
      "deployment_order": 100,
      "deployment_stage": "sandbox_orchestration",
      "section_id": "S07",
      "card_id": "sandbox-environments",
      "display_name": "Sandbox Environments",
      "subcategory": "mirror_strategy",
      "objective": "define project mirroring into sandbox",
      "hard_dependencies": [
        "MX-070",
        "MX-031"
      ],
      "blockers": [
        "missing_sandbox_strategy"
      ],
      "evidence_expected": [
        "/opt/devon/canon/06_sandbox_environment_canonical.yaml",
        "mirror_strategy_definition"
      ],
      "checks": [
        "file_exists_check",
        "mirror_strategy_check"
      ],
      "pipeline_ref": "sandbox_orchestration",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "PASS"
    },
    {
      "matrix_id": "MX-090",
      "deployment_order": 110,
      "deployment_stage": "cognition_base",
      "section_id": "S08",
      "card_id": "embeddings",
      "display_name": "Embeddings",
      "subcategory": "embedding_model",
      "objective": "enable embeddings backend",
      "hard_dependencies": [
        "MX-050",
        "MX-040"
      ],
      "blockers": [
        "missing_model_registry",
        "missing_embedding_runtime"
      ],
      "evidence_expected": [
        "embedding_model",
        "embedding_inference"
      ],
      "checks": [
        "model_load_check",
        "encode_probe_check"
      ],
      "pipeline_ref": "cognition_base",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-100",
      "deployment_order": 120,
      "deployment_stage": "engineering_modules",
      "section_id": "S09",
      "card_id": "architect",
      "display_name": "Architect",
      "subcategory": "system_design",
      "objective": "enable architecture planning module",
      "hard_dependencies": [
        "MX-080",
        "MX-090"
      ],
      "blockers": [
        "missing_module_runtime",
        "missing_module_contract"
      ],
      "evidence_expected": [
        "architect_module",
        "architect_contract"
      ],
      "checks": [
        "module_presence_check",
        "contract_check"
      ],
      "pipeline_ref": "engineering_modules",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-101",
      "deployment_order": 120,
      "deployment_stage": "engineering_modules",
      "section_id": "S09",
      "card_id": "planner",
      "display_name": "Planner",
      "subcategory": "execution_plan",
      "objective": "enable execution planning module",
      "hard_dependencies": [
        "MX-100"
      ],
      "blockers": [
        "missing_module_runtime"
      ],
      "evidence_expected": [
        "planner_module",
        "planner_contract"
      ],
      "checks": [
        "module_presence_check",
        "contract_check"
      ],
      "pipeline_ref": "engineering_modules",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-102",
      "deployment_order": 120,
      "deployment_stage": "engineering_modules",
      "section_id": "S09",
      "card_id": "generator",
      "display_name": "Generator",
      "subcategory": "patch_generation",
      "objective": "enable controlled artifact generation",
      "hard_dependencies": [
        "MX-101"
      ],
      "blockers": [
        "missing_generation_runtime"
      ],
      "evidence_expected": [
        "generator_module",
        "generation_contract"
      ],
      "checks": [
        "module_presence_check",
        "generation_probe_check"
      ],
      "pipeline_ref": "engineering_modules",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-103",
      "deployment_order": 120,
      "deployment_stage": "engineering_modules",
      "section_id": "S09",
      "card_id": "canonizer",
      "display_name": "Canonizer",
      "subcategory": "structure_canon",
      "objective": "normalize outputs to canonical structure",
      "hard_dependencies": [
        "MX-102"
      ],
      "blockers": [
        "missing_canonizer_runtime"
      ],
      "evidence_expected": [
        "canonizer_module"
      ],
      "checks": [
        "module_presence_check"
      ],
      "pipeline_ref": "engineering_modules",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-104",
      "deployment_order": 120,
      "deployment_stage": "engineering_modules",
      "section_id": "S09",
      "card_id": "validator-ci",
      "display_name": "Validator / CI",
      "subcategory": "functional_validation",
      "objective": "validate generated artifacts and runtime behavior",
      "hard_dependencies": [
        "MX-103"
      ],
      "blockers": [
        "missing_validator_suite"
      ],
      "evidence_expected": [
        "validator_module",
        "validator_suite"
      ],
      "checks": [
        "suite_presence_check",
        "validation_run_check"
      ],
      "pipeline_ref": "engineering_modules",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-105",
      "deployment_order": 120,
      "deployment_stage": "engineering_modules",
      "section_id": "S09",
      "card_id": "executor",
      "display_name": "Executor",
      "subcategory": "safe_execution",
      "objective": "execute approved actions safely",
      "hard_dependencies": [
        "MX-104",
        "MX-080"
      ],
      "blockers": [
        "missing_executor_runtime",
        "missing_execution_policy"
      ],
      "evidence_expected": [
        "executor_module",
        "execution_policy"
      ],
      "checks": [
        "module_presence_check",
        "sandbox_execution_probe"
      ],
      "pipeline_ref": "engineering_modules",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-106",
      "deployment_order": 120,
      "deployment_stage": "engineering_modules",
      "section_id": "S09",
      "card_id": "artifact-canon-layer",
      "display_name": "Artifact Canon Layer",
      "subcategory": "artifact_registry",
      "objective": "register artifacts and provenance",
      "hard_dependencies": [
        "MX-102"
      ],
      "blockers": [
        "missing_artifact_registry"
      ],
      "evidence_expected": [
        "artifact_registry_runtime"
      ],
      "checks": [
        "registry_presence_check"
      ],
      "pipeline_ref": "engineering_modules",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-107",
      "deployment_order": 120,
      "deployment_stage": "engineering_modules",
      "section_id": "S09",
      "card_id": "skill-registry",
      "display_name": "Skill Registry",
      "subcategory": "skills_index",
      "objective": "index skills and eligibility rules",
      "hard_dependencies": [
        "MX-104"
      ],
      "blockers": [
        "missing_skill_registry"
      ],
      "evidence_expected": [
        "skill_registry_runtime"
      ],
      "checks": [
        "registry_presence_check"
      ],
      "pipeline_ref": "engineering_modules",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-110",
      "deployment_order": 130,
      "deployment_stage": "governance_policy",
      "section_id": "S10",
      "card_id": "policy-governance",
      "display_name": "Policy & Governance",
      "subcategory": "policy_rules",
      "objective": "enforce operational rules and scope",
      "hard_dependencies": [
        "MX-105",
        "MX-060"
      ],
      "blockers": [
        "missing_policy_engine"
      ],
      "evidence_expected": [
        "policy_ruleset",
        "policy_runtime"
      ],
      "checks": [
        "policy_load_check",
        "scope_enforcement_check"
      ],
      "pipeline_ref": "governance_policy",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-111",
      "deployment_order": 130,
      "deployment_stage": "governance_policy",
      "section_id": "S10",
      "card_id": "self-monitoring",
      "display_name": "Self-Monitoring",
      "subcategory": "state_watch",
      "objective": "watch internal state and regressions",
      "hard_dependencies": [
        "MX-110"
      ],
      "blockers": [
        "missing_monitor_runtime"
      ],
      "evidence_expected": [
        "self_monitor_runtime"
      ],
      "checks": [
        "runtime_presence_check"
      ],
      "pipeline_ref": "governance_policy",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-120",
      "deployment_order": 140,
      "deployment_stage": "benchmark_learning",
      "section_id": "S11",
      "card_id": "benchmark-runner",
      "display_name": "Benchmark Runner",
      "subcategory": "test_suites",
      "objective": "run benchmark suites and record scores",
      "hard_dependencies": [
        "MX-104",
        "MX-110"
      ],
      "blockers": [
        "missing_benchmark_harness"
      ],
      "evidence_expected": [
        "benchmark_runner_runtime",
        "baseline_registry"
      ],
      "checks": [
        "runtime_presence_check",
        "benchmark_probe_check"
      ],
      "pipeline_ref": "benchmark_learning",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-121",
      "deployment_order": 140,
      "deployment_stage": "benchmark_learning",
      "section_id": "S11",
      "card_id": "rl-engine",
      "display_name": "RL Engine",
      "subcategory": "reward_model",
      "objective": "enable reinforcement learning component",
      "hard_dependencies": [
        "MX-120"
      ],
      "blockers": [
        "missing_rl_runtime"
      ],
      "evidence_expected": [
        "rl_module",
        "reward_model"
      ],
      "checks": [
        "module_presence_check"
      ],
      "pipeline_ref": "benchmark_learning",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-122",
      "deployment_order": 140,
      "deployment_stage": "benchmark_learning",
      "section_id": "S11",
      "card_id": "learning-loop",
      "display_name": "Learning Loop",
      "subcategory": "promotion_decision",
      "objective": "compare outcomes, update memory and control promotion",
      "hard_dependencies": [
        "MX-121",
        "MX-040",
        "MX-107"
      ],
      "blockers": [
        "missing_learning_loop_runtime"
      ],
      "evidence_expected": [
        "learning_loop_module",
        "promotion_decision_log"
      ],
      "checks": [
        "runtime_presence_check",
        "decision_record_check"
      ],
      "pipeline_ref": "benchmark_learning",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-130",
      "deployment_order": 150,
      "deployment_stage": "operator_panel",
      "section_id": "S12",
      "card_id": "operator-panel",
      "display_name": "Operator Panel",
      "subcategory": "contract_explorer",
      "objective": "expose canon, contracts and evidence in UI",
      "hard_dependencies": [
        "MX-012",
        "MX-060",
        "MX-100"
      ],
      "blockers": [
        "missing_panel_runtime",
        "missing_panel_schema"
      ],
      "evidence_expected": [
        "panel_runtime",
        "contract_views",
        "evidence_drawers"
      ],
      "checks": [
        "ui_load_check",
        "contract_view_check",
        "drawer_render_check"
      ],
      "pipeline_ref": "operator_panel",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    },
    {
      "matrix_id": "MX-140",
      "deployment_order": 160,
      "deployment_stage": "promotion_rollback",
      "section_id": "S12",
      "card_id": "operator-panel",
      "display_name": "Promotion & Rollback",
      "subcategory": "promotion_gate",
      "objective": "enforce final release gate with rollback readiness",
      "hard_dependencies": [
        "MX-130",
        "MX-080",
        "MX-122"
      ],
      "blockers": [
        "missing_rollback_strategy",
        "missing_release_audit"
      ],
      "evidence_expected": [
        "release_gate_policy",
        "rollback_strategy",
        "release_audit"
      ],
      "checks": [
        "promotion_gate_check",
        "rollback_readiness_check"
      ],
      "pipeline_ref": "operator_panel",
      "contract_ref": "03_card_contract_minimums.yaml",
      "status_initial": "MISSING"
    }
  ]
}
