{
  "phase_id": "phase-02",
  "category_id": "architecture_engineering_core",
  "doc_id": "sts",
  "source_path": "/home/yeff/public_html/devon/panel/data/sts.md",
  "documentation_branch_status": "CUSTOM_BRANCH",
  "bucket_statuses_from_docs_index": {
    "Prerequisites": "ACTIVE",
    "Installation": "ACTIVE",
    "Configuration": "ACTIVE",
    "Validation": "ACTIVE",
    "Observable Evidence": "ACTIVE",
    "Failure Modes & Recovery": "ACTIVE",
    "Completion & Promotion": "ACTIVE"
  },
  "exported_at": "2026-04-28T05:56:48.644291+00:00",
  "export_rule": "docs/json export generated from real panel/data source plus docs/index.php branch evidence; no authored content invented by export patch",
  "source_payload": {
    "source_format": "markdown",
    "raw_markdown": "# STS — STATE & TRANSITION SPEC\nversion: v1.0\nstatus: ACTIVE\nparent: master_architecture_index.md\nphase: 02\nphase_name: Architecture & Engineering Canon\ndocument_role: state_and_transition_standard_for_phase_02\n\n---\n\n## 1. OBJECTIVE\n\nDefine canonical state logic for governed Devon flows.\n\n---\n\n## 2. STATE PRINCIPLE\n\nA state exists only if:\n- it is named\n- it is observable\n- it has allowed transitions\n- it has entry and exit conditions\n\nNo hidden state allowed.\n\n---\n\n## 3. MINIMUM CANONICAL STATES\n\n- initialized\n- context_resolved\n- interpreted\n- normalized\n- policy_checked\n- validated\n- execution_ready\n- executed\n- audited\n- promoted\n- failed\n- missing\n\n---\n\n## 4. TRANSITION PRINCIPLE\n\nA transition is valid only if:\n- origin state is valid\n- destination state is valid\n- transition trigger exists\n- policy allows it\n- evidence supports it where required\n\n---\n\n## 5. BLOCKING RULE\n\nTransition must stop when:\n- required evidence is missing\n- policy check fails\n- validation fails\n- execution precondition fails\n\n---\n\n## 6. FAILURE RULE\n\nFailure must resolve to:\n- FAIL when evidence exists and validation fails\n- MISSING when evidence does not exist\n\n---\n\n## 7. ACCEPTANCE CRITERIA\n\nSTS is valid only if:\n- states are explicit\n- transitions are explicit\n- blocking rules are explicit\n- failure model matches global canon\n"
  },
  "transition_status": "ACTIVE_DH_MIRROR",
  "hardening_status": "HARDENING_PARTIAL",
  "engine_grade_final": false,
  "validation_mode": "schema_backed_transition",
  "parser_readiness": "medium",
  "hardening_priority": "extract_structural_fields_from_dh_text",
  "structural_contract": {
    "hardening_status": "HARDENING_PARTIAL",
    "engine_grade_final": false,
    "transition_status": "ACTIVE_DH_MIRROR",
    "doc_id": "sts",
    "category_id": "architecture_engineering_core",
    "phase_id": "phase-02",
    "hardening_lane": "dh_text_to_structural_contract",
    "patch_type": "extract_structural_fields",
    "created_at": "2026-04-28T15:40:28.152188+00:00",
    "authority": {
      "authority_owner": "sts.md",
      "canonical_role": "state legitimacy and transition authority",
      "authority_scope": "defines which statuses and state transitions are legal before runtime status handling, counters, validation timelines or future panel promotion logic can trust state movement",
      "state_decision_domain": [
        "allowed status model",
        "transition legality",
        "invalid state rejection",
        "promotion state control",
        "PASS/FAIL/MISSING discipline"
      ],
      "not_authority_for": [
        "naming convention ownership owned by ncs.md",
        "schema field law owned by css.md",
        "runtime evidence ownership"
      ]
    },
    "required_before": [
      "runtime status handling",
      "operator counters",
      "dependency logic",
      "future panel promotion state machine"
    ],
    "hard_dependencies": [
      "css.md",
      "cgs.md"
    ],
    "feeds_operational_ui": [
      "status_badges",
      "state_rendering",
      "validation_timeline",
      "evidence_status_reconciliation",
      "future_panel_state_machine_reader"
    ],
    "bucket_contracts": {
      "Prerequisites": {
        "contract_role": "prove sts.md is materially present, phase-bound and dependency-bound before downstream consumers use it",
        "required_structural_fields": [
          "authority_owner",
          "canonical_role",
          "required_before",
          "hard_dependencies",
          "state_decision_domain"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Installation": {
        "contract_role": "make sts available as a Documentation Hub mirror with fixed technical identity and branch binding",
        "required_structural_fields": [
          "doc_id",
          "category_id",
          "phase_id",
          "documentation_branch_status",
          "source_path",
          "expected_bindings"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Configuration": {
        "contract_role": "bind sts authority scope, dependency boundaries and forbidden ownership classes into parseable structure",
        "required_structural_fields": [
          "authority_scope",
          "not_authority_for",
          "state_decision_domain",
          "boundary_rules"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Validation": {
        "contract_role": "convert sts into deterministic PASS, FAIL and MISSING checks for identity, binding, source and authority boundary",
        "required_structural_fields": [
          "validation_checks",
          "pass_criteria",
          "fail_criteria",
          "missing_criteria"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Observable Evidence": {
        "contract_role": "expose file paths, DH branch binding, source payload shape and mirror path proving sts is observable",
        "required_structural_fields": [
          "evidence_paths",
          "expected_bindings",
          "observable_checks"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Failure Modes & Recovery": {
        "contract_role": "recover missing source, wrong binding, dependency break, authority overreach and false promotion for sts",
        "required_structural_fields": [
          "failure_modes",
          "recovery_actions",
          "rollback_or_safe_state"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Completion & Promotion": {
        "contract_role": "promote sts only as hardened DH mirror input, not as final engine-grade contract",
        "required_structural_fields": [
          "done_when",
          "not_done_when",
          "promotion_gate",
          "canonization_gate"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      }
    },
    "validation_checks": [
      {
        "check_id": "sts_doc_identity",
        "type": "exact_value",
        "path": "$.doc_id",
        "expected": "sts",
        "on_fail": "FAIL"
      },
      {
        "check_id": "sts_category_binding",
        "type": "exact_value",
        "path": "$.category_id",
        "expected": "architecture_engineering_core",
        "on_fail": "FAIL"
      },
      {
        "check_id": "sts_phase_binding",
        "type": "exact_value",
        "path": "$.phase_id",
        "expected": "phase-02",
        "on_fail": "FAIL"
      },
      {
        "check_id": "sts_branch_status",
        "type": "exact_value",
        "path": "$.documentation_branch_status",
        "expected": "CUSTOM_BRANCH",
        "on_fail": "FAIL"
      },
      {
        "check_id": "sts_authority_owner_declared",
        "type": "exact_value",
        "path": "$.structural_contract.authority.authority_owner",
        "expected": "sts.md",
        "on_fail": "FAIL"
      },
      {
        "check_id": "sts_not_engine_final",
        "type": "exact_value",
        "path": "$.engine_grade_final",
        "expected": false,
        "on_fail": "FAIL"
      },
      {
        "check_id": "sts_source_markdown_present",
        "type": "non_empty_string",
        "path": "$.source_payload.raw_markdown",
        "on_missing": "MISSING",
        "on_fail": "FAIL"
      },
      {
        "check_id": "sts_depends_on_css_md",
        "type": "array_contains",
        "path": "$.structural_contract.hard_dependencies",
        "expected": "css.md",
        "on_fail": "FAIL"
      },
      {
        "check_id": "sts_depends_on_cgs_md",
        "type": "array_contains",
        "path": "$.structural_contract.hard_dependencies",
        "expected": "cgs.md",
        "on_fail": "FAIL"
      }
    ],
    "evidence_paths": [
      "/home/yeff/public_html/devon/panel/data/sts.md",
      "/home/yeff/public_html/devon/docs/index.php",
      "/home/yeff/public_html/devon/panel/data/hub_index.json",
      "/home/yeff/public_html/devon/panel/data/master_architecture_index.md",
      "/home/yeff/public_html/devon/docs/json/phase-02/sts.json",
      "/home/yeff/public_html/devon/docs/json/phase-02/_phase02_hardening_queue.json"
    ],
    "expected_bindings": [
      {
        "binding": "docs_index_custom_branch",
        "expected": "if (doc.id === \"sts\" && state.categoryId === \"architecture_engineering_core\")"
      },
      {
        "binding": "hub_index_phase",
        "expected_phase_id": "phase-02"
      },
      {
        "binding": "hub_index_category",
        "expected_category_id": "architecture_engineering_core"
      }
    ],
    "failure_modes": [
      {
        "failure_id": "sts_source_missing",
        "status": "MISSING",
        "meaning": "sts source cannot be read from declared source path",
        "recovery_action": "restore /home/yeff/public_html/devon/panel/data/sts.md or the declared mirror source before hardening can continue"
      },
      {
        "failure_id": "sts_unbound_from_phase02",
        "status": "FAIL",
        "meaning": "sts is present but not bound to phase-02 / architecture_engineering_core",
        "recovery_action": "restore hub_index and docs/index binding to the canonical Phase 02 category"
      },
      {
        "failure_id": "sts_dependency_missing",
        "status": "MISSING",
        "meaning": "sts cannot prove declared hard dependencies",
        "recovery_action": "restore declared dependencies or block promotion until dependency validation passes"
      },
      {
        "failure_id": "sts_authority_overreach",
        "status": "FAIL",
        "meaning": "sts claims authority outside its declared scope",
        "recovery_action": "revoke overreaching authority and route the claim to the owning document or contract"
      },
      {
        "failure_id": "sts_false_engine_promotion",
        "status": "FAIL",
        "meaning": "sts is promoted as engine-grade final while still in DH mirror transition",
        "recovery_action": "restore ACTIVE_DH_MIRROR / HARDENING_PARTIAL and require deterministic schema validation before final promotion"
      }
    ],
    "promotion_gates": {
      "done_when": [
        "sts source exists materially",
        "sts is registered under Phase 02",
        "sts has a custom Documentation Hub branch",
        "sts JSON mirror contains structural_contract",
        "sts exposes authority, dependencies, evidence paths, validation checks and promotion gates as parseable fields"
      ],
      "not_done_when": [
        "source payload is missing",
        "category binding is wrong",
        "declared dependency is absent",
        "authority scope is overreached",
        "engine_grade_final is set true before deterministic schema validation exists"
      ],
      "promotion_gate": "sts may move to HARDENING_PARTIAL after structural_contract exists and verifies, but must not become engine_grade_final until all decisive checks are schema-backed and deterministic.",
      "canonization_gate": "sts remains an ACTIVE_DH_MIRROR until authority, dependency, evidence, failure and promotion checks can be consumed without semantic prose interpretation."
    },
    "parser_readiness_after_patch": "medium",
    "blocked_until_engine_grade_final": [
      "all validation checks resolve from JSON key paths",
      "all required dependencies are machine-checkable",
      "all authority boundaries produce deterministic FAIL when violated",
      "future operational panel can consume the contract without reading source prose"
    ],
    "mirror_type": "markdown_mirror",
    "schema_binding": {
      "required_keys": [
        "source_payload",
        "structural_contract"
      ],
      "source_payload_key_paths": [
        "$.source_payload",
        "$.structural_contract",
        "$.bucket_statuses_from_docs_index"
      ],
      "expected_values": {
        "$.phase_id": "phase-02",
        "$.category_id": "architecture_engineering_core",
        "$.doc_id": "sts",
        "$.engine_grade_final": false,
        "$.transition_status": "ACTIVE_DH_MIRROR"
      },
      "allowed_statuses": [
        "PASS",
        "FAIL",
        "MISSING",
        "ACTIVE_DH_MIRROR",
        "HARDENING_PARTIAL"
      ],
      "deterministic_fail_modes": [
        "wrong_doc_id",
        "wrong_category_id",
        "wrong_phase_id",
        "missing_source_payload",
        "authority_overreach",
        "false_engine_promotion"
      ],
      "missing_criteria": [
        "source payload absent",
        "declared source file absent",
        "hard dependency absent where required"
      ],
      "schema_backed_validation": true
    },
    "boundary_rules": [
      {
        "rule_id": "no_fake_pass",
        "meaning": "PASS requires observable evidence and validation",
        "fail_state": "FAIL when PASS is emitted from inference"
      },
      {
        "rule_id": "missing_is_not_fail",
        "meaning": "absence of evidence is MISSING, not FAIL",
        "fail_state": "FAIL when missing evidence is converted into failed validation"
      },
      {
        "rule_id": "engine_final_requires_schema",
        "meaning": "engine_grade_final cannot be true before deterministic schema validation",
        "fail_state": "FAIL when transitional mirror is promoted as final"
      }
    ],
    "allowed_statuses": [
      "PASS",
      "FAIL",
      "MISSING",
      "PLANNED",
      "ACTIVE_DH_MIRROR",
      "HARDENING_PARTIAL"
    ],
    "state_boundary_rules": [
      {
        "rule_id": "no_fake_pass",
        "meaning": "PASS requires observable evidence and validation",
        "fail_state": "FAIL when PASS is emitted from inference"
      },
      {
        "rule_id": "missing_is_not_fail",
        "meaning": "absence of evidence is MISSING, not FAIL",
        "fail_state": "FAIL when missing evidence is converted into failed validation"
      },
      {
        "rule_id": "engine_final_requires_schema",
        "meaning": "engine_grade_final cannot be true before deterministic schema validation",
        "fail_state": "FAIL when transitional mirror is promoted as final"
      }
    ],
    "source_signal_audit": {
      "raw_markdown_contains_role_terms": true,
      "matched_role_lines_sample": [
        "# STS — STATE & TRANSITION SPEC",
        "document_role: state_and_transition_standard_for_phase_02",
        "Define canonical state logic for governed Devon flows.",
        "## 2. STATE PRINCIPLE",
        "A state exists only if:",
        "No hidden state allowed.",
        "## 3. MINIMUM CANONICAL STATES",
        "- context_resolved",
        "- origin state is valid",
        "- destination state is valid",
        "- states are explicit"
      ],
      "audit_note": "source_signal_audit is evidence support only; structural_contract remains governed by Phase 02 queue, hub binding and canonical master registration"
    }
  }
}
