{
  "schema_version": "fasttool-website-migration-benchmark-results/v1",
  "benchmark_version": "website-migration-benchmark-20260717",
  "engine": {
    "path": "app/js/renderers/website-migration-evidence-compiler-20260709a.js",
    "version": "20260709a",
    "sha256": "3f08e9ba6b24fb9a32843e6b81015da3c77154113a266882a54fc96f5d6cd805"
  },
  "fixture": {
    "path": "fixtures/website-migration-benchmark-20260717/scenarios.json",
    "sha256": "b6119f07bea5376a009f57eac48826f0472cd8d5dda637c1abc82a8d1c71aa17"
  },
  "result_policy": "Engine scenarios pass only when expectations, receipt-core verification, artifact hash parity and adapter exclusion checks all pass. Rollback capability gaps remain INDETERMINATE.",
  "scenario_count": 26,
  "engine_run_count": 24,
  "capability_boundary_count": 2,
  "passed_count": 26,
  "blocker_count": 0,
  "scenarios": [
    {
      "id": "exact-one-to-one",
      "category": "mapping",
      "title_en": "Exact one-to-one paths",
      "title_tr": "Tam bire bir yollar",
      "method": "engine_run",
      "expected_decision": "ready_for_staged_redirect_qa",
      "actual_decision": "ready_for_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 4,
      "new_url_count": 4,
      "deployable_count": 4,
      "review_count": 0,
      "risk_codes": [],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "prefix-directory-move",
      "category": "mapping",
      "title_en": "Prefix directory move is not assumed",
      "title_tr": "Dizin öneki taşıması varsayılmıyor",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "medium_confidence_review"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "ambiguous-near-tie",
      "category": "ambiguity",
      "title_en": "Two near-tie destinations",
      "title_tr": "Birbirine yakın iki hedef",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 6,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "candidate_collision",
        "medium_confidence_review"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "automatic-target-collision",
      "category": "collision",
      "title_en": "Two sources compete for one target",
      "title_tr": "İki kaynak tek hedef için yarışıyor",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 6,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 2,
      "risk_codes": [
        "duplicate_target",
        "target_already_assigned"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "manual-duplicate-target",
      "category": "collision",
      "title_en": "Manual many-to-one collision",
      "title_tr": "Manuel çoktan bire çakışma",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 6,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 2,
      "risk_codes": [
        "duplicate_target"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "redirect-chain",
      "category": "graph",
      "title_en": "Two-hop redirect chain",
      "title_tr": "İki adımlı yönlendirme zinciri",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 6,
      "new_url_count": 5,
      "deployable_count": 5,
      "review_count": 1,
      "risk_codes": [
        "redirect_chain",
        "target_not_in_new_inventory"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "redirect-loop",
      "category": "graph",
      "title_en": "Closed redirect loop",
      "title_tr": "Kapalı yönlendirme döngüsü",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 6,
      "new_url_count": 4,
      "deployable_count": 4,
      "review_count": 2,
      "risk_codes": [
        "redirect_loop",
        "target_not_in_new_inventory"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "meaningful-query-loss",
      "category": "query",
      "title_en": "Meaningful query key is lost",
      "title_tr": "Anlamlı sorgu anahtarı kayboluyor",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "query_parameter_loss",
        "query_specific_redirect_review"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "query-preserved-still-reviewed",
      "category": "query",
      "title_en": "Preserved query still needs policy review",
      "title_tr": "Korunan sorgu yine politika incelemesi istiyor",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "query_specific_redirect_review"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "tracking-query-normalization",
      "category": "query",
      "title_en": "Tracking parameter is removed only for matching",
      "title_tr": "İzleme parametresi yalnız eşleme için kaldırılıyor",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "query_specific_redirect_review"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "path-case-change",
      "category": "normalization",
      "title_en": "Path case change",
      "title_tr": "Yol harf büyüklüğü değişimi",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "medium_confidence_review"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "trailing-slash-preserved",
      "category": "normalization",
      "title_en": "Exact trailing slash is preserved",
      "title_tr": "Tam trailing slash korunuyor",
      "method": "engine_run",
      "expected_decision": "ready_for_staged_redirect_qa",
      "actual_decision": "ready_for_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 5,
      "review_count": 0,
      "risk_codes": [],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "double-slash-blocked",
      "category": "normalization",
      "title_en": "Double slash remains visible and blocked",
      "title_tr": "Çift slash görünür kalıyor ve engelleniyor",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "unsupported_double_slash_path"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "excluded-removed-url",
      "category": "coverage",
      "title_en": "Removed URL receives no fabricated destination",
      "title_tr": "Kaldırılan URL için hedef uydurulmuyor",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 4,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "orphan_source"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "excluded-override-source",
      "category": "coverage",
      "title_en": "Override source excluded from inventory",
      "title_tr": "Envanter dışı override kaynağı",
      "method": "engine_run",
      "expected_decision": "ready_for_staged_redirect_qa",
      "actual_decision": "ready_for_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 4,
      "new_url_count": 4,
      "deployable_count": 4,
      "review_count": 0,
      "risk_codes": [],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "no-destination",
      "category": "coverage",
      "title_en": "No destination candidate",
      "title_tr": "Hedef adayı yok",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "orphan_source"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "unexpected-cross-domain",
      "category": "origin",
      "title_en": "Unexpected cross-domain handoff",
      "title_tr": "Beklenmeyen alanlar arası geçiş",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "target_not_in_new_inventory",
        "unexpected_cross_domain_target"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "same-origin-target-not-in-inventory",
      "category": "coverage",
      "title_en": "Manual target absent from the new inventory",
      "title_tr": "Manuel hedef yeni envanterde yok",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 4,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "target_not_in_new_inventory"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "target-is-redirect",
      "category": "runtime-evidence",
      "title_en": "Target crawl row is another redirect",
      "title_tr": "Hedef crawl satırı başka bir yönlendirme",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "target_redirect_status"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "target-is-error",
      "category": "runtime-evidence",
      "title_en": "Target crawl row is an HTTP error",
      "title_tr": "Hedef crawl satırı HTTP hatası",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "target_http_error_status"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "invalid-override-status",
      "category": "input-validation",
      "title_en": "Invalid override status is rejected",
      "title_tr": "Geçersiz override durumu reddediliyor",
      "method": "engine_run",
      "expected_decision": "ready_for_staged_redirect_qa",
      "actual_decision": "ready_for_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 5,
      "review_count": 0,
      "risk_codes": [],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "normalized-override-ambiguity",
      "category": "ambiguity",
      "title_en": "Tracking-only source variants make an override ambiguous",
      "title_tr": "Yalnız izleme parametresi farklı kaynaklar override'ı belirsizleştiriyor",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 6,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 2,
      "risk_codes": [
        "duplicate_target",
        "query_specific_redirect_review",
        "target_already_assigned"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "unsafe-config-metacharacters",
      "category": "security",
      "title_en": "Server-config metacharacters",
      "title_tr": "Sunucu config metakarakterleri",
      "method": "engine_run",
      "expected_decision": "review_risky_rows_before_staged_redirect_qa",
      "actual_decision": "review_risky_rows_before_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 4,
      "review_count": 1,
      "risk_codes": [
        "target_not_in_new_inventory",
        "unsupported_config_metacharacter"
      ],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "non-301-adapter-boundary",
      "category": "adapter",
      "title_en": "308 is preserved in status-aware exports and excluded from Webflow",
      "title_tr": "308 durum duyarlı çıktılarda korunup Webflow'dan çıkarılıyor",
      "method": "engine_run",
      "expected_decision": "ready_for_staged_redirect_qa",
      "actual_decision": "ready_for_staged_redirect_qa",
      "passed": true,
      "failures": [],
      "old_url_count": 5,
      "new_url_count": 5,
      "deployable_count": 5,
      "review_count": 0,
      "risk_codes": [],
      "receipt_core_valid": true,
      "artifact_hash_parity": true,
      "generated_artifact_count": 10
    },
    {
      "id": "rollback-baseline-missing",
      "category": "rollback",
      "title_en": "No previous redirect configuration is supplied",
      "title_tr": "Önceki yönlendirme yapılandırması sağlanmıyor",
      "method": "capability_boundary",
      "expected_decision": "INDETERMINATE",
      "actual_decision": "INDETERMINATE",
      "passed": true,
      "failures": [],
      "old_url_count": null,
      "new_url_count": null,
      "deployable_count": null,
      "review_count": null,
      "risk_codes": [
        "rollback_not_evaluated"
      ],
      "receipt_core_valid": null,
      "artifact_hash_parity": null,
      "generated_artifact_count": 10,
      "boundary": "The engine has no rollback-baseline input, so it cannot prove rollback coverage."
    },
    {
      "id": "rollback-artifact-not-generated",
      "category": "rollback",
      "title_en": "No rollback artifact is generated",
      "title_tr": "Rollback artifact'ı üretilmiyor",
      "method": "capability_boundary",
      "expected_decision": "INDETERMINATE",
      "actual_decision": "INDETERMINATE",
      "passed": true,
      "failures": [],
      "old_url_count": null,
      "new_url_count": null,
      "deployable_count": null,
      "review_count": null,
      "risk_codes": [
        "rollback_not_evaluated"
      ],
      "receipt_core_valid": null,
      "artifact_hash_parity": null,
      "generated_artifact_count": 10,
      "boundary": "The engine runbook asks the operator to retain the prior configuration, but the packet does not capture or hash that external rollback artifact."
    }
  ]
}
